ghc-managed
A monad for managed values
In Haskell you very often acquire values using the 'with...' idiom using functions of type '(a ->IO r) ->IO r'. This idiom forms a 'Monad', which is a special case of the 'ContT' monad (from 'transformers') or the 'Codensity' monad (from 'kan-extensions'). The main purpose behind this package is to provide a restricted form of these monads specialized to this unusually common case. The reason this package defines a specialized version of these types is to: * be more beginner-friendly, * simplify inferredtypes and error messages, and: * provide some additional type class instances that would otherwise be orphan instances.
BSD-3-Clause