Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- acquireAndUse :: Acquire env -> Use env err res -> IO (Either err res)
- newtype Acquire env = Acquire (IO (env, IO ()))
- newtype Use env err res = Use (ReaderT env (ExceptT err IO) res)
- mapEnv :: (b -> a) -> Use a err res -> Use b err res
- mapErr :: (a -> b) -> Use env a res -> Use env b res
- mapEnvAndErr :: (envB -> envA) -> (errA -> errB) -> Use envA errA res -> Use envB errB res
IO
acquireAndUse :: Acquire env -> Use env err res -> IO (Either err res) Source #
Execute an action, which uses a resource, having a resource provider.
Acquire
Resource provider. Abstracts over resource acquisition and releasing.
Composes well, allowing you to merge multiple providers into one.
Implementation of http://www.haskellforall.com/2013/06/the-resource-applicative.html
Use
newtype Use env err res Source #
Resource handler, which has a notion of pure errors.
mapEnv :: (b -> a) -> Use a err res -> Use b err res Source #
Map the environment of a resource handler.
mapEnvAndErr :: (envB -> envA) -> (errA -> errB) -> Use envA errA res -> Use envB errB res Source #
Map both the environment and the error of a resource handler.