Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type PrimMonadTransInvariants t m = (MonadTransInvariants t m, PrimState m ~ PrimState (t m))
- type MonadTransInvariants t m = (Monad m, Monad (t m), MonadTrans t)
- type family MonadTranses (ts :: [(* -> *) -> * -> *]) :: Constraint where ...
- lift2 :: (Monad (t1 m), Monad m, MonadTranses '[t1, t2]) => m a -> t2 (t1 m) a
- _lift2_ :: (Monad (t1 m), Monad m, MonadTranses '[t1, t2]) => m a -> t2 (t1 m) a
- lift3 :: (Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3]) => m a -> t3 (t2 (t1 m)) a
- _lift3_ :: (Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3]) => m a -> t3 (t2 (t1 m)) a
- lift4 :: (Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4]) => m a -> t4 (t3 (t2 (t1 m))) a
- _lift4_ :: (Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4]) => m a -> t4 (t3 (t2 (t1 m))) a
- lift5 :: (Monad (t4 (t3 (t2 (t1 m)))), Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4, t5]) => m a -> t5 (t4 (t3 (t2 (t1 m)))) a
- _lift5_ :: (Monad (t4 (t3 (t2 (t1 m)))), Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4, t5]) => m a -> t5 (t4 (t3 (t2 (t1 m)))) a
- class MonadTrans (t :: (* -> *) -> * -> *) where
Documentation
type PrimMonadTransInvariants t m = (MonadTransInvariants t m, PrimState m ~ PrimState (t m)) Source #
type MonadTransInvariants t m = (Monad m, Monad (t m), MonadTrans t) Source #
type family MonadTranses (ts :: [(* -> *) -> * -> *]) :: Constraint where ... Source #
MonadTranses '[] = () | |
MonadTranses (t ': ts) = (MonadTrans t, MonadTranses ts) |
lift3 :: (Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3]) => m a -> t3 (t2 (t1 m)) a Source #
_lift3_ :: (Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3]) => m a -> t3 (t2 (t1 m)) a Source #
lift4 :: (Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4]) => m a -> t4 (t3 (t2 (t1 m))) a Source #
_lift4_ :: (Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4]) => m a -> t4 (t3 (t2 (t1 m))) a Source #
lift5 :: (Monad (t4 (t3 (t2 (t1 m)))), Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4, t5]) => m a -> t5 (t4 (t3 (t2 (t1 m)))) a Source #
_lift5_ :: (Monad (t4 (t3 (t2 (t1 m)))), Monad (t3 (t2 (t1 m))), Monad (t2 (t1 m)), Monad (t1 m), Monad m, MonadTranses '[t1, t2, t3, t4, t5]) => m a -> t5 (t4 (t3 (t2 (t1 m)))) a Source #
class MonadTrans (t :: (* -> *) -> * -> *) where #
The class of monad transformers. Instances should satisfy the
following laws, which state that lift
is a monad transformation:
lift :: Monad m => m a -> t m a #
Lift a computation from the argument monad to the constructed monad.
Instances
MonadTrans MaybeT | |
Defined in Control.Monad.Trans.Maybe | |
MonadTrans Free | This is not a true monad transformer. It is only a monad transformer "up to |
Defined in Control.Monad.Free | |
MonadTrans Yoneda | |
Defined in Data.Functor.Yoneda | |
MonadTrans (IdentityT :: (* -> *) -> * -> *) | |
Defined in Control.Monad.Trans.Identity | |
MonadTrans (ExceptT e) | |
Defined in Control.Monad.Trans.Except | |
MonadTrans (FreeT f) | |
Defined in Control.Monad.Trans.Free | |
Alternative f => MonadTrans (CofreeT f) | |
Defined in Control.Comonad.Trans.Cofree | |
MonadTrans (ErrorT e) | |
Defined in Control.Monad.Trans.Error |