monadology-0.1
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.General.Trans.Hoist

Synopsis

Documentation

class (MonadTrans t, TransConstraint Monad t) => MonadTransHoist t where Source #

Monad transformers for which monads can be hoisted.

Methods

hoist :: forall m1 m2. (Monad m1, Monad m2) => (m1 --> m2) -> t m1 --> t m2 Source #

Instances

Instances details
MonadTransHoist MaybeT Source # 
Instance details

Defined in Control.Monad.Ology.Specific.MaybeT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> MaybeT m1 --> MaybeT m2 Source #

MonadInner inner => MonadTransHoist (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> ComposeInner inner m1 --> ComposeInner inner m2 Source #

MonadOuter outer => MonadTransHoist (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> ComposeOuter outer m1 --> ComposeOuter outer m2 Source #

MonadTransHoist (LifecycleT :: (Type -> Type) -> Type -> TYPE LiftedRep) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.LifecycleT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> LifecycleT m1 --> LifecycleT m2 Source #

MonadTransStackTunnel tt => MonadTransHoist (StackT tt) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StackT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> StackT tt m1 --> StackT tt m2 Source #

Functor f => MonadTransHoist (StepT f) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> StepT f m1 --> StepT f m2 Source #

MonadTransHoist (ExceptT e) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ExceptT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> ExceptT e m1 --> ExceptT e m2 Source #

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

Defined in Control.Monad.Ology.Specific.IdentityT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> IdentityT m1 --> IdentityT m2 Source #

MonadTransHoist (ReaderT r) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ReaderT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> ReaderT r m1 --> ReaderT r m2 Source #

MonadTransHoist (StateT s) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StateT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> StateT s m1 --> StateT s m2 Source #

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

Defined in Control.Monad.Ology.Specific.WriterT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> WriterT w m1 --> WriterT w m2 Source #

(MonadTransHoist outerT, MonadTransHoist innerT) => MonadTransHoist (ComposeT outerT innerT) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> ComposeT outerT innerT m1 --> ComposeT outerT innerT m2 Source #

hoistTransform :: (MonadTransHoist t, Monad m1, Monad m2) => (m1 --> m2) -> WRaised (t m2) --> WRaised (t m1) Source #

class MonadIO m => MonadHoistIO m where Source #

Methods

hoistIO :: (IO --> IO) -> m --> m Source #

Instances

Instances details
MonadHoistIO IO Source # 
Instance details

Defined in Control.Monad.Ology.General.Trans.Hoist

Methods

hoistIO :: (IO --> IO) -> IO --> IO Source #

(MonadTransHoist t, TransConstraint MonadIO t) => TransConstraint MonadHoistIO t Source # 
Instance details

Defined in Control.Monad.Ology.General.Trans.Hoist

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadHoistIO m => Dict (MonadHoistIO (t m)) Source #

(MonadTransHoist t, MonadHoistIO m, MonadIO (t m)) => MonadHoistIO (t m) Source # 
Instance details

Defined in Control.Monad.Ology.General.Trans.Hoist

Methods

hoistIO :: (IO --> IO) -> t m --> t m Source #