Skip to content

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.

Trait implementations

impl Minilib.Monad.Reader::ReaderT e : Minilib.Monad.Trans::MonadTrans

impl [m : Minilib.Monad.Error::MonadError] Minilib.Monad.Reader::ReaderT e m : Minilib.Monad.Error::MonadErrorIF

impl [m : Minilib.Monad.IO::MonadIOFail] Minilib.Monad.Reader::ReaderT e m : Minilib.Monad.IO::MonadIOFailIF

impl [m : Minilib.Monad.IO::MonadIO] Minilib.Monad.Reader::ReaderT e m : Minilib.Monad.IO::MonadIOIF

impl [m : Std::Monad] Minilib.Monad.Reader::ReaderT e m : Minilib.Monad.Reader::MonadReaderIF

impl [m : Std::Monad] Minilib.Monad.Reader::ReaderT e m : Std::Functor

impl [m : Std::Monad] Minilib.Monad.Reader::ReaderT e m : Std::Monad