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

Control.Monad.Stack.Select

Documentation

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

Associated Types

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

Methods

liftSelect :: PopSelect m a -> m a Source #

Instances

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (MaybeT m) 
Instance details

Defined in Control.Monad.Stack.Select

Methods

liftSelect :: PopSelect (MaybeT m) a -> MaybeT m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (AccumT w m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (AccumT w m) = PopSelect m

Methods

liftSelect :: PopSelect (AccumT w m) a -> AccumT w m a Source #

SelectStack m => SelectStack (ExceptT e m) Source # 
Instance details

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (ExceptT e m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (ExceptT e m) = PopSelect m

Methods

liftSelect :: PopSelect (ExceptT e m) a -> ExceptT e m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (IdentityT m) 
Instance details

Defined in Control.Monad.Stack.Select

SelectStack m => SelectStack (ReaderT r m) Source # 
Instance details

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (ReaderT r m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (ReaderT r m) = PopSelect m

Methods

liftSelect :: PopSelect (ReaderT r m) a -> ReaderT r m a Source #

Monad m => SelectStack (SelectT r m) Source # 
Instance details

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (SelectT r m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (SelectT r m) = m

Methods

liftSelect :: PopSelect (SelectT r m) a -> SelectT r m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (StateT s m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (StateT s m) = PopSelect m

Methods

liftSelect :: PopSelect (StateT s m) a -> StateT s m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (StateT s m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (StateT s m) = PopSelect m

Methods

liftSelect :: PopSelect (StateT s m) a -> StateT s m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (WriterT w m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (WriterT w m) = PopSelect m

Methods

liftSelect :: PopSelect (WriterT w m) a -> WriterT w m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (WriterT w m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (WriterT w m) = PopSelect m

Methods

liftSelect :: PopSelect (WriterT w m) a -> WriterT w m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (WriterT w m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (WriterT w m) = PopSelect m

Methods

liftSelect :: PopSelect (WriterT w m) a -> WriterT w m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (ContT r m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (ContT r m) = PopSelect m

Methods

liftSelect :: PopSelect (ContT r m) a -> ContT r m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (RWST r w s m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (RWST r w s m) = PopSelect m

Methods

liftSelect :: PopSelect (RWST r w s m) a -> RWST r w s m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (RWST r w s m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (RWST r w s m) = PopSelect m

Methods

liftSelect :: PopSelect (RWST r w s m) a -> RWST r w s m a Source #

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

Defined in Control.Monad.Stack.Select

Associated Types

type PopSelect (RWST r w s m) 
Instance details

Defined in Control.Monad.Stack.Select

type PopSelect (RWST r w s m) = PopSelect m

Methods

liftSelect :: PopSelect (RWST r w s m) a -> RWST r w s m a Source #

type SelectDepth (n :: Nat) (m :: Type -> Type) = IteratePop n SelectT m Source #

depthSelect :: forall (n :: Nat) m a. SelectConstraints n m => SelectDepth n m a -> m a Source #