MonadEx v1.1.0 Monad protocol

Monads are structures that represent computations as sequences of steps. –[Wikipedia](https://en.wikipedia.org/wiki/Monad_(functional_programming)

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

Functions

Takes a monad value and a function that takes a value and returns a monad

Types

t()
t :: term

Functions

bind(value, fun)
bind(t, (term -> t)) :: t

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