View Source Funx.Monad.Identity (funx v0.1.0)
The Funx.Monad.Identity
module represents the identity monad, where values are simply wrapped in a structure
and operations are applied directly to those values.
This module implements the following protocols:
Funx.Monad
: Implements thebind/2
,map/2
, andap/2
functions for monadic operations.Funx.Eq
: Defines equality checks forIdentity
values.Funx.Ord
: Defines ordering logic forIdentity
values.String.Chars
: Converts anIdentity
value into a string representation.
Summary
Functions
Extracts the value from an Identity
.
Creates a new Identity
value by wrapping a given value.
Types
@type t(value) :: %Funx.Monad.Identity{value: value}
Functions
Extracts the value from an Identity
.
Examples
iex> Funx.Monad.Identity.extract(Funx.Monad.Identity.pure(5))
5
@spec lift_eq(Funx.Eq.Utils.eq_map()) :: Funx.Eq.Utils.eq_map()
@spec lift_ord(Funx.Ord.Utils.ord_map()) :: Funx.Ord.Utils.ord_map()
Creates a new Identity
value by wrapping a given value.
Examples
iex> Funx.Monad.Identity.pure(5)
%Funx.Monad.Identity{value: 5}