Control.Monad.Reader
data Reader r a
mapReader
withReader
data ReaderT r m a
mapReaderT
withReaderT
local
ReaderT