monadology-0.3: The best ideas in monad-related classes and types.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.General.Trans.Unlift

Documentation

class (MonadTransTunnel t, TransConstraint MonadFail t, TransConstraint MonadIO t, TransConstraint MonadFix t, TransConstraint Monad t, MonadExtract (Tunnel t)) => MonadTransUnlift t where Source #

Minimal complete definition

liftWithUnlift

Methods

liftWithUnlift :: forall m r. MonadIO m => (Unlift MonadTunnelIO t -> m r) -> t m r Source #

Lift with an unlifting function that accounts for the transformer's effects (using MVars where necessary).

getDiscardingUnlift :: forall m. Monad m => t m (WUnlift MonadTunnelIO t) Source #

Return an unlifting function that discards the transformer's effects (such as state change or output).

Instances

Instances details
MonadOuter outer => MonadTransUnlift (ComposeOuter outer) Source # 
Instance details

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

Methods

liftWithUnlift :: MonadIO m => (Unlift MonadTunnelIO (ComposeOuter outer) -> m r) -> ComposeOuter outer m r Source #

getDiscardingUnlift :: forall (m :: Type -> Type). Monad m => ComposeOuter outer m (WUnlift MonadTunnelIO (ComposeOuter outer)) Source #

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

Defined in Control.Monad.Ology.Specific.LifecycleT

MonadTransStackUnlift tt => MonadTransUnlift (StackT tt) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StackT

Methods

liftWithUnlift :: MonadIO m => (Unlift MonadTunnelIO (StackT tt) -> m r) -> StackT tt m r Source #

getDiscardingUnlift :: forall (m :: Type -> Type). Monad m => StackT tt m (WUnlift MonadTunnelIO (StackT tt)) Source #

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

Defined in Control.Monad.Ology.Specific.IdentityT

MonadTransUnlift (ReaderT r) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ReaderT

Methods

liftWithUnlift :: MonadIO m => (Unlift MonadTunnelIO (ReaderT r) -> m r0) -> ReaderT r m r0 Source #

getDiscardingUnlift :: forall (m :: Type -> Type). Monad m => ReaderT r m (WUnlift MonadTunnelIO (ReaderT r)) Source #

MonadTransUnlift (StateT s) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StateT

Methods

liftWithUnlift :: MonadIO m => (Unlift MonadTunnelIO (StateT s) -> m r) -> StateT s m r Source #

getDiscardingUnlift :: forall (m :: Type -> Type). Monad m => StateT s m (WUnlift MonadTunnelIO (StateT s)) Source #

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

Defined in Control.Monad.Ology.Specific.WriterT

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

Defined in Control.Monad.Ology.Specific.ComposeT

Methods

liftWithUnlift :: MonadIO m => (Unlift MonadTunnelIO (ComposeT outerT innerT) -> m r) -> ComposeT outerT innerT m r Source #

getDiscardingUnlift :: forall (m :: Type -> Type). Monad m => ComposeT outerT innerT m (WUnlift MonadTunnelIO (ComposeT outerT innerT)) Source #

class (MonadFail m, MonadIO m, MonadFix m, MonadTunnelIO m, MonadExtract (TunnelIO m)) => MonadUnliftIO m where Source #

Minimal complete definition

liftIOWithUnlift

Methods

liftIOWithUnlift :: IO -/-> m Source #

Lift with an unlifting function that accounts for the effects over IO.

getDiscardingIOUnlift :: m (WRaised m IO) Source #

Return an unlifting function that discards the effects over IO.

monoHoist :: forall (t :: TransKind) ma mb a b. (MonadTransUnlift t, MonadTunnelIO ma, MonadIO mb) => (ma a -> mb b) -> t ma a -> t mb b Source #