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.

Source

Summary

bind(value, fun)

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

Types

t :: term

Functions

bind(value, fun)

Specs:

  • 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

Source