Minilib.Monad.Writer
Defined in minilib-monad@0.11.5
Writer monad.
For details, see blog post: The Reader and Writer Monads and Comonads.
Values
namespace Minilib.Monad.Writer
get_env
Type: Minilib.Monad.Writer::Writer e a -> e
Gets the envirionment from a writer monad.
get_env_t
Type: [m : Std::Monad] Minilib.Monad.Writer::WriterT e m a -> m e
Gets the envirionment from a generic writer monad.
get_value
Type: Minilib.Monad.Writer::Writer e a -> a
Gets the value from a writer monad.
get_value_t
Type: [m : Std::Monad] Minilib.Monad.Writer::WriterT e m a -> m a
Gets the value from a generic writer monad.
map_writer_t
Type: [m : Std::Monad, n : Std::Monad] (m (e, a) -> n (e1, b)) -> Minilib.Monad.Writer::WriterT e m a -> Minilib.Monad.Writer::WriterT e1 n b
Maps an underlying monad and a value using the specified function.
run_writer
Type: Minilib.Monad.Writer::Writer e a -> (e, a)
Runs a writer monad to get an enviroment and a value.
run_writer_t
Type: [m : Std::Monad] Minilib.Monad.Writer::WriterT e m a -> m (e, a)
Runs a generic writer monad to get an enviroment and a value.
write
Deprecated: Use MonadWriterIF::tell instead.
Type: [e : Minilib.Trait.Monoid::Monoid, m : Std::Monad] e -> Minilib.Monad.Writer::WriterT e m ()
Creates a writer monad that appends to the environment.
writer
Type: e -> a -> Minilib.Monad.Writer::Writer e a
Creates a writer monad from an enviroment and a value.
writer_t
Type: [m : Std::Monad] m (e, a) -> Minilib.Monad.Writer::WriterT e m a
Creates a generic writer monad from an enviroment and a value.
namespace Minilib.Monad.Writer::MonadWriterIF
listen
Type: [wm : Minilib.Monad.Writer::MonadWriterIF] wm a -> wm (Minilib.Monad.Writer::MonadWriterIF::EnvType wm, a)
Trait member of Minilib.Monad.Writer::MonadWriterIF
Listens the internal environment.
pass
Type: [wm : Minilib.Monad.Writer::MonadWriterIF] wm (Minilib.Monad.Writer::MonadWriterIF::EnvType wm -> Minilib.Monad.Writer::MonadWriterIF::EnvType wm, a) -> wm a
Trait member of Minilib.Monad.Writer::MonadWriterIF
Provide a writer transformer which changes internals of the written object.
tell
Type: [wm : Minilib.Monad.Writer::MonadWriterIF] Minilib.Monad.Writer::MonadWriterIF::EnvType wm -> wm ()
Trait member of Minilib.Monad.Writer::MonadWriterIF
Tells specified value to the internal environment.
Types and aliases
namespace Minilib.Monad.Writer
Writer
Defined as: type Writer e = Minilib.Monad.Writer::WriterT e Minilib.Monad.Iden::Iden
WriterT
Defined as: type [m : *->*] WriterT e m a = unbox struct { ...fields... }
Writer monad wraps a pair of an environment and 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: m (e, a)
Traits and aliases
namespace Minilib.Monad.Writer
trait MonadWriter = Std::Monad + Minilib.Monad.Writer::MonadWriterIF
Kind: *->*
A trait for the interface of generic writer monads.
trait [wm : *->*] wm : MonadWriterIF
A trait for generic writer monads that manages the internal environment.
type EnvType
Defined as: EnvType wm
The type of the environment.
method tell
Type: Minilib.Monad.Writer::MonadWriterIF::EnvType wm -> wm ()
Tells specified value to the internal environment.
method listen
Type: wm a -> wm (Minilib.Monad.Writer::MonadWriterIF::EnvType wm, a)
Listens the internal environment.
method pass
Type: wm (Minilib.Monad.Writer::MonadWriterIF::EnvType wm -> Minilib.Monad.Writer::MonadWriterIF::EnvType wm, a) -> wm a
Provide a writer transformer which changes internals of the written object.