transformers-lift-0.2.0.2: Ad-hoc type classes for lifting

Safe HaskellSafe
LanguageHaskell2010

Control.Monad.Trans.Lift.Pass

Description

Lifting the pass operation.

Synopsis

Documentation

class MonadTrans t => LiftPass t where Source #

The class of monad transformers capable of lifting pass.

Methods

liftPass :: Monad m => Pass w m (StT t a) -> Pass w (t m) a Source #

Lift the pass operation. Should satisfy the uniformity property

Instances
LiftPass MaybeT Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT MaybeT a) -> Pass w (MaybeT m) a Source #

Monoid w' => LiftPass (WriterT w') Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (WriterT w') a) -> Pass w (WriterT w' m) a Source #

Monoid w' => LiftPass (AccumT w') Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (AccumT w') a) -> Pass w (AccumT w' m) a Source #

Monoid w' => LiftPass (WriterT w') Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (WriterT w') a) -> Pass w (WriterT w' m) a Source #

LiftPass (StateT s) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (StateT s) a) -> Pass w (StateT s m) a Source #

LiftPass (StateT s) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (StateT s) a) -> Pass w (StateT s m) a Source #

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

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT IdentityT a) -> Pass w (IdentityT m) a Source #

LiftPass (ExceptT e) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (ExceptT e) a) -> Pass w (ExceptT e m) a Source #

Monoid w' => LiftPass (WriterT w') Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (WriterT w') a) -> Pass w (WriterT w' m) a Source #

LiftPass (ReaderT r :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (ReaderT r) a) -> Pass w (ReaderT r m) a Source #

Monoid w' => LiftPass (RWST r w' s) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (RWST r w' s) a) -> Pass w (RWST r w' s m) a Source #

Monoid w' => LiftPass (RWST r w' s) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (RWST r w' s) a) -> Pass w (RWST r w' s m) a Source #

Monoid w' => LiftPass (RWST r w' s) Source # 
Instance details

Defined in Control.Monad.Trans.Lift.Pass

Methods

liftPass :: Monad m => Pass w m (StT (RWST r w' s) a) -> Pass w (RWST r w' s m) a Source #

type Pass w (m :: Type -> Type) a = m (a, w -> w) -> m a #

Signature of the pass operation, introduced in Control.Monad.Trans.Writer. Any lifting function liftPass should satisfy

  • lift . liftPass = liftPass . lift

defaultLiftPass Source #

Arguments

:: (Monad m, LiftPass n) 
=> (forall x. n m x -> t m x)

Monad constructor

-> (forall o x. t o x -> n o x)

Monad deconstructor

-> Pass w m (StT n a) 
-> Pass w (t m) a 

Default definition for the liftPass method.