Minilib.Monad.Reader
Defined in minilib-monad@0.5.1
Reader monad.
For details, see blog post: The Reader and Writer Monads and Comonads.
Values
namespace Minilib.Monad.Reader
map_reader_t
Type: [m : Std::Monad, n : Std::Monad] (m a -> n b) -> Minilib.Monad.Reader::ReaderT e m a -> Minilib.Monad.Reader::ReaderT e n b
Maps an underlying monad and a value using the specified function.
read
Type: [m : Std::Monad] Minilib.Monad.Reader::ReaderT e m e
A reader monad that returns the environment as a value.
reader
Type: (e -> a) -> Minilib.Monad.Reader::Reader e a
Creates a reader monad from a function.
reader_t
Type: [m : Std::Monad] (e -> m a) -> Minilib.Monad.Reader::ReaderT e m a
Creates a generic reader monad from a function.
run_reader
Type: e -> Minilib.Monad.Reader::Reader e a -> a
Runs a reader monad with the supplied environment.
run_reader_t
Type: [m : Std::Monad] e -> Minilib.Monad.Reader::ReaderT e m a -> m a
Runs a generic reader monad with the supplied environment.
with_reader_t
Type: [m : Std::Monad] (e1 -> e) -> Minilib.Monad.Reader::ReaderT e m a -> Minilib.Monad.Reader::ReaderT e1 m a
Creates a reader monad with the modified environment.
namespace Minilib.Monad.Reader::MonadReaderIF
ask
Type: [rm : Minilib.Monad.Reader::MonadReaderIF] rm (Minilib.Monad.Reader::MonadReaderIF::EnvType rm)
A monad that returns the internal environment as a value.
local
Type: [rm : Minilib.Monad.Reader::MonadReaderIF] (Minilib.Monad.Reader::MonadReaderIF::EnvType rm -> Minilib.Monad.Reader::MonadReaderIF::EnvType rm) -> rm a -> rm a
rm.local(f)
creates a reader monad with an environment modified by f
.
Types and aliases
namespace Minilib.Monad.Reader
Reader
Defined as: type Reader e = Minilib.Monad.Reader::ReaderT e Minilib.Monad.Identity::Identity
ReaderT
Defined as: type [m : *->*] ReaderT e m a = unbox struct { ...fields... }
Reader monad wraps a function from an environment to a value.
e
is a type of an environment.
m
is a type of an underlyind monad.
a
is a type of a value.
field data
Type: e -> m a
Traits and aliases
namespace Minilib.Monad.Reader
trait [rm : *->*] rm : MonadReaderIF
A trait for generic reader monads that manages the internal environment.
type EnvType
Defined as: EnvType rm
The type of the internal environment.
method ask
Type: rm (Minilib.Monad.Reader::MonadReaderIF::EnvType rm)
A monad that returns the internal environment as a value.
method local
Type: (Minilib.Monad.Reader::MonadReaderIF::EnvType rm -> Minilib.Monad.Reader::MonadReaderIF::EnvType rm) -> rm a -> rm a
rm.local(f)
creates a reader monad with an environment modified by f
.