Safe Haskell | None |
---|---|
Language | Haskell2010 |
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.
TaggedTrans (trans m a) |
(Monoid w, Monad m, (~) * w w') => MonadWriter k tag w (WriterT k tag w' 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 | |
(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 | |
(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 | |
LiftLocal trans => LiftLocal (TaggedTrans k * tag trans) Source | |
LiftCallCC trans => LiftCallCC (TaggedTrans k * tag trans) Source | |
LiftPass trans => LiftPass (TaggedTrans k * tag trans) Source | |
LiftListen trans => LiftListen (TaggedTrans k * tag trans) Source | |
LiftCatch trans => LiftCatch (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 | |
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 | |
MonadIO (trans m) => MonadIO (TaggedTrans k * tag trans m) Source | |
(MonadCont m, LiftCallCC trans, Monad (trans m)) => MonadCont (TaggedTrans k * tag trans m) Source | |
Generic (TaggedTrans k k tag trans m a) Source | |
type StT (TaggedTrans k * tag trans) a = StT trans a Source | |
type StT (TaggedTrans k * tag trans) a = StT trans a Source | |
type StM (TaggedTrans k * tag trans m) a = ComposeSt trans m a Source | |
type Rep (TaggedTrans k k1 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
.