Monad protocol
Monads are structures that represent computations as sequences of steps. –Wikipedia
Monads are also able to encapsulate side-effects, such as IO and failure.
Monads have two primary functions: bind
and return
. This protocol does not
contain a return
function due to the limitations of Elixir protocols.
However, return
can be found in Monad.Behaviour
.
Summary↑
bind(value, fun) | Takes a monad value and a function that takes a value and returns a monad |
Types ↑
t :: term
Functions
Specs:
Takes a monad value and a function that takes a value and returns a monad.
In Haskell types: (>>=) :: m a -> (a -> m b) -> m b