| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Control.Proxy.Trans
Contents
Description
You can define your own extensions to the Proxy type by writing your own
"proxy transformers". Proxy transformers are monad transformers that
correctly lift Proxy composition from the base monad. Stack multiple
proxy transformers to chain features together.
- class ProxyTrans t where
Proxy Transformers
class ProxyTrans t where Source #
mapP defines a functor that preserves Proxy composition and Kleisli
composition.
Laws:
- Functor between
Proxycategories
mapP (f <-< g) = mapP f <-< mapP g mapP idT = idT
- Functor between Kleisli categories
mapP (f <=< g) = mapP f <=< mapP g mapP return = return
Minimal complete definition: mapP or liftP. Defining liftP is more
efficient.
Methods
liftP :: (Monad (p b c d e m), Channel p) => p b c d e m r -> t p b c d e m r Source #
mapP :: (Monad (p b c d e m), Channel p) => (a -> p b c d e m r) -> a -> t p b c d e m r Source #
Instances
| ProxyTrans IdentityP Source # | |
| ProxyTrans MaybeP Source # | |
| ProxyTrans (EitherP e) Source # | |
| ProxyTrans (ReaderP i) Source # | |
| ProxyTrans (StateP s) Source # | |
| Monoid w => ProxyTrans (WriterP w) Source # | |