foundation-0.0.15: Alternative prelude with batteries and no dependencies

Safe HaskellNone
LanguageHaskell2010

Foundation.Monad.Reader

Contents

Description

The Reader monad transformer.

This is useful to keep a non-modifiable value in a context

Synopsis

MonadReader

class Monad m => MonadReader m where #

Minimal complete definition

ask

Associated Types

type ReaderContext m #

Methods

ask :: m (ReaderContext m) #

Instances

Monad m => MonadReader (ReaderT r m) # 

Associated Types

type ReaderContext (ReaderT r m :: * -> *) :: * #

Methods

ask :: ReaderT r m (ReaderContext (ReaderT r m)) #

ReaderT

data ReaderT r m a #

Reader Transformer

Instances

MonadTrans (ReaderT r) # 

Methods

lift :: Monad m => m a -> ReaderT r m a #

Monad m => Monad (ReaderT r m) # 

Methods

(>>=) :: ReaderT r m a -> (a -> ReaderT r m b) -> ReaderT r m b #

(>>) :: ReaderT r m a -> ReaderT r m b -> ReaderT r m b #

return :: a -> ReaderT r m a #

fail :: String -> ReaderT r m a #

Functor m => Functor (ReaderT r m) # 

Methods

fmap :: (a -> b) -> ReaderT r m a -> ReaderT r m b #

(<$) :: a -> ReaderT r m b -> ReaderT r m a #

Applicative m => Applicative (ReaderT r m) # 

Methods

pure :: a -> ReaderT r m a #

(<*>) :: ReaderT r m (a -> b) -> ReaderT r m a -> ReaderT r m b #

(*>) :: ReaderT r m a -> ReaderT r m b -> ReaderT r m b #

(<*) :: ReaderT r m a -> ReaderT r m b -> ReaderT r m a #

MonadIO m => MonadIO (ReaderT r m) # 

Methods

liftIO :: IO a -> ReaderT r m a #

MonadFailure m => MonadFailure (ReaderT r m) # 

Associated Types

type Failure (ReaderT r m :: * -> *) :: * #

Methods

mFail :: Failure (ReaderT r m) -> ReaderT r m () #

MonadCatch m => MonadCatch (ReaderT r m) # 

Methods

catch :: Exception e => ReaderT r m a -> (e -> ReaderT r m a) -> ReaderT r m a #

MonadThrow m => MonadThrow (ReaderT r m) # 

Methods

throw :: Exception e => e -> ReaderT r m a #

Monad m => MonadReader (ReaderT r m) # 

Associated Types

type ReaderContext (ReaderT r m :: * -> *) :: * #

Methods

ask :: ReaderT r m (ReaderContext (ReaderT r m)) #

type Failure (ReaderT r m) # 
type Failure (ReaderT r m) = Failure m
type ReaderContext (ReaderT r m) # 
type ReaderContext (ReaderT r m) = r

runReaderT :: ReaderT r m a -> r -> m a #