either(A, B) = {error, A} | {ok, B}
fn(A, B) = fun((A) -> B)
fn(A) = fun(() -> A)
maybe(A) = {ok, A} | error
monad(A) = [A] | either(term(), A) | maybe(A)
bind/2 | |
do/2 | |
get_monads/0 | |
pure/1 | |
register_monad/1 | |
then/2 |
get_monads() -> [atom()]
pure(A) -> monad(A) | A
register_monad(Mod::atom()) -> either(duplicate_monad, ok)
Generated by EDoc