Copyright | (c) Ross Paterson 2012 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | [email protected] |
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.
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
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.8.3/docs/html/libraries/transformers-0.5.6.2/Control-Monad-Signatures.html