ether-0.4.0.2: Monad transformers and classes

Safe HaskellNone
LanguageHaskell2010

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.

Synopsis

Documentation

newtype TaggedTrans tag trans m a Source

Tagged monad transformer.

Constructors

TaggedTrans (trans m a) 

Instances

(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.