View Source monad behaviour (erlandono v3.1.3)

Summary

Types

-type monad() :: module() | {module(), monad()}.
-type monadic(_M, _A) :: any().

Callbacks

-callback '>>='(monadic(M, A), fun((A) -> monadic(M, B))) -> monadic(M, B) when M :: monad().
-callback fail(any()) -> monadic(M, _A) when M :: monad().
-callback return(A) -> monadic(M, A) when M :: monad().

Functions

-spec join(M, monadic(M, monadic(M, A))) -> monadic(M, A).
-spec sequence(M, [monadic(M, A)]) -> monadic(M, [A]).