Reader +Control.Monad.Trans -transformers
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.
Runs a Reader and extracts the final value from it. (The inverse of reader.)