reader package:mtl-prelude

Retrieves a function of the current environment.
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.
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.
See examples in Control.Monad.Reader. Note, the partially applied function type (->) r is a simple reader monad. See the instance declaration below.
Transform the value returned by a Reader.
Transform the computation inside a ReaderT.
Runs a Reader and extracts the final value from it. (The inverse of reader.)
Execute a computation in a modified environment (a specialization of withReaderT).
Execute a computation in a modified environment (a more general version of local).