monadology-0.1
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.General.Trans.Coerce

Synopsis

Documentation

class MonadTrans t => MonadTransCoerce t where Source #

A monad transformer for which coercibility is transitive.

Methods

transCoerce :: forall m1 m2. Coercible m1 m2 => Dict (Coercible (t m1) (t m2)) Source #

Instances

Instances details
MonadTransCoerce MaybeT Source # 
Instance details

Defined in Control.Monad.Ology.Specific.MaybeT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (MaybeT m1) (MaybeT m2)) Source #

MonadTransCoerce (ExceptT e) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ExceptT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (ExceptT e m1) (ExceptT e m2)) Source #

MonadTransCoerce (IdentityT :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.IdentityT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (IdentityT m1) (IdentityT m2)) Source #

MonadTransCoerce (ReaderT r) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ReaderT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (ReaderT r m1) (ReaderT r m2)) Source #

MonadTransCoerce (StateT a) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StateT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (StateT a m1) (StateT a m2)) Source #

Monoid w => MonadTransCoerce (WriterT w) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.WriterT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (WriterT w m1) (WriterT w m2)) Source #

(MonadTransCoerce outerT, MonadTransCoerce innerT, TransConstraint Monad innerT) => MonadTransCoerce (ComposeT outerT innerT) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (ComposeT outerT innerT m1) (ComposeT outerT innerT m2)) Source #

MonadTransCoerce (ContT r) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ContT

Methods

transCoerce :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). Coercible m1 m2 => Dict (Coercible (ContT r m1) (ContT r m2)) Source #