Copyright | (c) 2007 Magnus Therning |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | ross@soi.city.ac.uk |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
The identity monad transformer.
This is useful for functions parameterized by a monad transformer.
- newtype IdentityT m a = IdentityT {
- runIdentityT :: m a
- mapIdentityT :: (m a -> n b) -> IdentityT m a -> IdentityT n b
- liftCatch :: (m a -> (e -> m a) -> m a) -> IdentityT m a -> (e -> IdentityT m a) -> IdentityT m a
- liftCallCC :: (((a -> m b) -> m a) -> m a) -> ((a -> IdentityT m b) -> IdentityT m a) -> IdentityT m a
The identity monad transformer
The trivial monad transformer, which maps a monad to an equivalent monad.
IdentityT | |
|
MonadTrans IdentityT | |
Alternative m => Alternative (IdentityT m) | |
Monad m => Monad (IdentityT m) | |
Functor m => Functor (IdentityT m) | |
MonadFix m => MonadFix (IdentityT m) | |
MonadPlus m => MonadPlus (IdentityT m) | |
Applicative m => Applicative (IdentityT m) | |
Foldable f => Foldable (IdentityT f) | |
Traversable f => Traversable (IdentityT f) | |
MonadIO m => MonadIO (IdentityT m) |
mapIdentityT :: (m a -> n b) -> IdentityT m a -> IdentityT n b Source
Lift a unary operation to the new monad.
Lifting other operations
liftCatch :: (m a -> (e -> m a) -> m a) -> IdentityT m a -> (e -> IdentityT m a) -> IdentityT m a Source
Lift a catchError
operation to the new monad.
liftCallCC :: (((a -> m b) -> m a) -> m a) -> ((a -> IdentityT m b) -> IdentityT m a) -> IdentityT m a Source
Lift a callCC
operation to the new monad.