type Reader r = ReaderT r Identity { } #
newtype ReaderT r m a { } #
ReaderT { runReaderT :: r -> m a }
The reader monad transformer.
class Monad m => MonadReader r m { } #

Methods

askM :: m r
localM :: (r -> r) -> (m a) -> m a
readerM :: (r -> a) -> m a
Class for monads with a readable environment.
runReader :: (Reader r a) -> r -> a { } #
O(1). Run a Reader computation with the given environment.
mapReader :: (a -> b) -> (Reader r a) -> Reader r b { } #
O(1). Map the return value of a Reader.
withReader :: (r' -> r) -> (Reader r a) -> Reader r' a { } #
O(1). Execute a Reader with a modified environment.
<*> :: { } #
>>= :: { } #
mapReaderT :: ((m a) -> n b) -> (ReaderT r m a) -> ReaderT r n b { } #
Map the inner computation.
withReaderT :: (r' -> r) -> (ReaderT r m a) -> ReaderT r' m a { } #
Transform the environment.
ask :: (Monad m) => ReaderT r m r { } #
O(1). Retrieve the entire environment.
local :: (r -> r) -> (ReaderT r m a) -> ReaderT r m a { } #
O(1). Execute a computation with a modified environment.
asks :: (Monad m) => (r -> a) -> ReaderT r m a { } #
O(1). Retrieve a function of the environment.
reader :: (Monad m) => (r -> a) -> ReaderT r m a { } #
O(1). Embed a simple reader action into the monad.
instance Functor m => Functor (ReaderT r m) { }
instance MonadTrans (ReaderT r) { }
instance MonadIO m => MonadIO (ReaderT r m) { }
instance Monad m => MonadReader r (ReaderT r m) { }