| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Monad.Trans.Ether.Tagged
Description
This module defines the core data type of Ether, TaggedTrans,
and a bunch of instances for it. TaggedTrans attaches a tag to
an existing monad transformer.
- newtype TaggedTrans tag trans m a = TaggedTrans (trans m a)
- pack :: trans m a -> TaggedTrans tag trans m a
- unpack :: TaggedTrans tag trans m a -> trans m a
Documentation
newtype TaggedTrans tag trans m a Source #
Tagged monad transformer.
Constructors
| TaggedTrans (trans m a) |
Instances
| (Monad m, (~) * e e') => MonadExcept k tag e (ExceptT k tag e' m) Source # | |
| (Monad m, (~) * r r') => MonadReader k tag r (ReaderT k tag r' m) Source # | |
| (Monad m, (~) * s s') => MonadState k tag s (StateT k tag s' m) Source # | |
| (Monad m, (~) * s s') => MonadState k tag s (StateT k tag s' m) Source # | |
| (Monoid w, Monad m, (~) * w w') => MonadWriter k tag w (WriterT k tag w' m) Source # | |
| (MonadBase b m, MonadTrans trans, MonadApplicative (trans m)) => MonadBase b (TaggedTrans * k tag trans m) Source # | |
| (MonadBaseControl b m, MonadTransControl trans, MonadApplicative (trans m)) => MonadBaseControl b (TaggedTrans * k tag trans m) Source # | |
| (MonadError e m, LiftCatch trans, Monad (trans m)) => MonadError e (TaggedTrans * k tag trans m) Source # | |
| (MonadReader r m, LiftLocal trans, Monad (trans m)) => MonadReader r (TaggedTrans * k tag trans m) Source # | |
| (MonadState s m, MonadTrans trans, Monad (trans m)) => MonadState s (TaggedTrans * k tag trans m) Source # | |
| (MonadWriter w m, LiftListen trans, LiftPass trans, Monad (trans m)) => MonadWriter w (TaggedTrans * k tag trans m) Source # | |
| MFunctor trans => MFunctor (TaggedTrans * k tag trans) Source # | |
| MMonad trans => MMonad (TaggedTrans * k tag trans) Source # | |
| MonadTrans trans => MonadTrans (TaggedTrans * k tag trans) Source # | |
| MonadTransControl trans => MonadTransControl (TaggedTrans * k tag trans) Source # | |
| LiftCallCC trans => LiftCallCC (TaggedTrans * k tag trans) Source # | |
| LiftCatch trans => LiftCatch (TaggedTrans * k tag trans) Source # | |
| LiftListen trans => LiftListen (TaggedTrans * k tag trans) Source # | |
| LiftLocal trans => LiftLocal (TaggedTrans * k tag trans) Source # | |
| LiftPass trans => LiftPass (TaggedTrans * k tag trans) Source # | |
| Monad (trans m) => Monad (TaggedTrans * k tag trans m) Source # | |
| Functor (trans m) => Functor (TaggedTrans * k tag trans m) Source # | |
| MonadFix (trans m) => MonadFix (TaggedTrans * k tag trans m) Source # | |
| Applicative (trans m) => Applicative (TaggedTrans * k tag trans m) Source # | |
| MonadIO (trans m) => MonadIO (TaggedTrans * k tag trans m) Source # | |
| Alternative (trans m) => Alternative (TaggedTrans * k tag trans m) Source # | |
| MonadPlus (trans m) => MonadPlus (TaggedTrans * k tag trans m) Source # | |
| MonadThrow (trans m) => MonadThrow (TaggedTrans * k tag trans m) Source # | |
| MonadCatch (trans m) => MonadCatch (TaggedTrans * k tag trans m) Source # | |
| MonadMask (trans m) => MonadMask (TaggedTrans * k tag trans m) Source # | |
| (MonadCont m, LiftCallCC trans, Monad (trans m)) => MonadCont (TaggedTrans * k tag trans m) Source # | |
| Generic (TaggedTrans k1 k tag trans m a) Source # | |
| type StT (TaggedTrans * k tag trans) a Source # | |
| type StT (TaggedTrans * k tag trans) a Source # | |
| type StM (TaggedTrans * k tag trans m) a Source # | |
| type Rep (TaggedTrans k1 k tag trans m a) Source # | |
pack :: trans m a -> TaggedTrans tag trans m a Source #
Type-restricted coerce.
unpack :: TaggedTrans tag trans m a -> trans m a Source #
Type-restricted coerce.