Copyright | (c) Ross Paterson 2012 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | R.Paterson@city.ac.uk |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell98 |
Signatures for monad operations that require specialized lifting. Each signature has a uniformity property that the lifting should satisfy.
Documentation
type CallCC m a b = ((a -> m b) -> m a) -> m a Source #
Signature of the
callCC
operation,
introduced in
Control.Monad.Trans.Cont
.
Any lifting function
liftCallCC
should satisfy
-
lift
(f k) = f' (lift
. k) =>lift
(cf f) = liftCallCC cf f'
type Catch e m a = m a -> (e -> m a) -> m a Source #
Signature of the
catchE
operation,
introduced in
Control.Monad.Trans.Except
.
Any lifting function
liftCatch
should satisfy
-
lift
(cf m f) = liftCatch (lift
. cf) (lift
f)
type Listen w m a = m a -> m (a, w) Source #
Signature of the
listen
operation,
introduced in
Control.Monad.Trans.Writer
.
Any lifting function
liftListen
should satisfy
-
lift
. liftListen = liftListen .lift
type Pass w m a = m (a, w -> w) -> m a Source #
Signature of the
pass
operation,
introduced in
Control.Monad.Trans.Writer
.
Any lifting function
liftPass
should satisfy
-
lift
. liftPass = liftPass .lift