ether-0.3.0.0: Monad transformers and classes

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Ether.Reader

Contents

Description

Synopsis

The Reader monad

type Reader tag r = ReaderT tag r Identity Source

The parameterizable reader monad.

Computations are functions of a shared environment.

The return function ignores the environment, while >>= passes the inherited environment to both subcomputations.

reader :: Monad m => proxy tag -> (r -> a) -> ReaderT tag r m a Source

Constructor for computations in the reader monad (the inverse of runReader).

runReader :: proxy tag -> Reader tag r a -> r -> a Source

Runs a ReaderT with the given environment and returns the vinal value.

The ReaderT monad transformer

data ReaderT tag r m a Source

The reader monad transformer, which adds a read-only environment to the given monad.

The return function ignores the environment, while >>= passes the inherited environment to both subcomputations.

Instances

Monad m => MonadReader tag r (ReaderT tag r m) 
MonadState tag s m => MonadState tag s (ReaderT tag' r m) 
MonadBase b m => MonadBase b (ReaderT tag r m) 
MonadBaseControl b m => MonadBaseControl b (ReaderT tag r m) 
MonadError e m => MonadError e (ReaderT tag r m) 
MonadReader r' m => MonadReader r' (ReaderT tag r m) 
MonadState s m => MonadState s (ReaderT tag r m) 
MonadWriter w m => MonadWriter w (ReaderT tag r m) 
MFunctor (ReaderT tag r) 
MMonad (ReaderT tag r) 
MonadTrans (ReaderT tag r) 
MonadTransControl (ReaderT tag r) 
LiftLocal (ReaderT tag r) 
LiftCallCC (ReaderT tag r) 
LiftPass (ReaderT tag r) 
LiftListen (ReaderT tag r) 
LiftCatch (ReaderT tag r) 
Alternative m => Alternative (ReaderT tag r m) 
Monad m => Monad (ReaderT tag r m) 
Functor m => Functor (ReaderT tag r m) 
MonadFix m => MonadFix (ReaderT tag r m) 
MonadPlus m => MonadPlus (ReaderT tag r m) 
Applicative m => Applicative (ReaderT tag r m) 
MonadIO m => MonadIO (ReaderT tag r m) 
MonadCont m => MonadCont (ReaderT tag r m) 
Taggable (ReaderT tag r m) 
Tagged (ReaderT tag r m) tag 
Generic (ReaderT tag r m a) 
Newtype (ReaderT tag r m a) 
type StT (ReaderT tag r) a = StT (ReaderT r) a 
type StT (ReaderT tag r) a = StT (ReaderT tag r) a 
type Untagged (ReaderT tag r m) = ReaderT r m 
type Tag (ReaderT tag r m) = Just * tag 
type Inner (ReaderT tag r m) = Just (* -> *) m 
type StM (ReaderT tag r m) a = ComposeSt (ReaderT tag r) m a 
type Rep (ReaderT tag r m a) 
type O (ReaderT tag r m a) = GO (Rep (ReaderT tag r m a)) 

readerT :: proxy tag -> (r -> m a) -> ReaderT tag r m a Source

Constructor for computations in the reader monad transformer.

runReaderT :: proxy tag -> ReaderT tag r m a -> r -> m a Source

Runs a ReaderT with the given environment and returns the vinal value.

Reader operations

ask :: Monad m => proxy tag -> ReaderT tag r m r Source

Fetch the value of the environment.

local Source

Arguments

:: proxy tag 
-> (r -> r)

The function to modify the environment.

-> ReaderT tag r m a

Computation to run in the modified environment.

-> ReaderT tag r m a 

Execute a computation in a modified environment (a specialization of withReaderT).