effect-stack-0.3.0.1: Reducing the pain of transformer stacks with duplicated effects
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Stack.Reader

Documentation

class Monad m => ReaderStack (m :: Type -> Type) where Source #

Associated Types

type PopReader (m :: Type -> Type) :: Type -> Type Source #

Methods

liftReader :: PopReader m a -> m a Source #

Instances

Instances details
ReaderStack m => ReaderStack (MaybeT m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (MaybeT m) 
Instance details

Defined in Control.Monad.Stack.Reader

Methods

liftReader :: PopReader (MaybeT m) a -> MaybeT m a Source #

(ReaderStack m, Monoid w) => ReaderStack (AccumT w m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (AccumT w m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (AccumT w m) = PopReader m

Methods

liftReader :: PopReader (AccumT w m) a -> AccumT w m a Source #

Monad m => ReaderStack (ExceptT e m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (ExceptT e m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (ExceptT e m) = m

Methods

liftReader :: PopReader (ExceptT e m) a -> ExceptT e m a Source #

ReaderStack m => ReaderStack (IdentityT m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (IdentityT m) 
Instance details

Defined in Control.Monad.Stack.Reader

Monad m => ReaderStack (ReaderT r m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (ReaderT r m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (ReaderT r m) = m

Methods

liftReader :: PopReader (ReaderT r m) a -> ReaderT r m a Source #

ReaderStack m => ReaderStack (SelectT r m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (SelectT r m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (SelectT r m) = PopReader m

Methods

liftReader :: PopReader (SelectT r m) a -> SelectT r m a Source #

ReaderStack m => ReaderStack (StateT s m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (StateT s m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (StateT s m) = PopReader m

Methods

liftReader :: PopReader (StateT s m) a -> StateT s m a Source #

ReaderStack m => ReaderStack (StateT s m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (StateT s m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (StateT s m) = PopReader m

Methods

liftReader :: PopReader (StateT s m) a -> StateT s m a Source #

(ReaderStack m, Monoid w) => ReaderStack (WriterT w m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (WriterT w m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (WriterT w m) = PopReader m

Methods

liftReader :: PopReader (WriterT w m) a -> WriterT w m a Source #

(ReaderStack m, Monoid w) => ReaderStack (WriterT w m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (WriterT w m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (WriterT w m) = PopReader m

Methods

liftReader :: PopReader (WriterT w m) a -> WriterT w m a Source #

(ReaderStack m, Monoid w) => ReaderStack (WriterT w m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (WriterT w m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (WriterT w m) = PopReader m

Methods

liftReader :: PopReader (WriterT w m) a -> WriterT w m a Source #

ReaderStack m => ReaderStack (ContT r m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (ContT r m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (ContT r m) = PopReader m

Methods

liftReader :: PopReader (ContT r m) a -> ContT r m a Source #

(Monad m, Monoid w) => ReaderStack (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (RWST r w s m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (RWST r w s m) = m

Methods

liftReader :: PopReader (RWST r w s m) a -> RWST r w s m a Source #

(Monad m, Monoid w) => ReaderStack (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (RWST r w s m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (RWST r w s m) = m

Methods

liftReader :: PopReader (RWST r w s m) a -> RWST r w s m a Source #

(Monad m, Monoid w) => ReaderStack (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.Stack.Reader

Associated Types

type PopReader (RWST r w s m) 
Instance details

Defined in Control.Monad.Stack.Reader

type PopReader (RWST r w s m) = m

Methods

liftReader :: PopReader (RWST r w s m) a -> RWST r w s m a Source #

type ReaderDepth (n :: Nat) (m :: Type -> Type) = IteratePop n ReaderT m Source #

type MonadReaderDepth (n :: Nat) (m :: Type -> Type) r = (ReaderConstraints n m, MonadReader r (ReaderDepth n m)) Source #

depthReader :: forall (n :: Nat) m a. ReaderConstraints n m => ReaderDepth n m a -> m a Source #