Module do_maybe

The Maybe Monad.

Behaviours: do_applicative, do_functor, do_monad.

Description

The Maybe Monad.

Data Types

either()

either(A, B) = {error, A} | {ok, B}

fn()

fn(A, B) = fun((A) -> B)

fn()

fn(A) = fun(() -> A)

map()

map(A) = #{term() := A}

maybe()

maybe(A) = {ok, A} | error

monad()

monad(A) = [A] | either(term(), A) | maybe(A)

traversable()

traversable(A) = [A] | map(A)

Function Index

bind/2
do/2
fmap/2
is_instance/1
lift/1
liftA2/2
liftm/2
liftmz/2
pure/1
sequence/1
then/2

Function Details

bind/2

bind(Maybe::maybe(A), F::fn(A, maybe(B))) -> maybe(B)

do/2

do(Maybe::maybe(A), Fs::[fn(A, maybe(B)) | fn(maybe(B))]) -> maybe(B)

fmap/2

fmap(F::fn(A, B), X2::maybe(A)) -> maybe(B)

is_instance/1

is_instance(X1::term()) -> boolean()

lift/1

lift(F::fn(A, B)) -> fn(monad(A), monad(B))

liftA2/2

liftA2(X1::maybe(fn(A, B)), Maybe::maybe(A)) -> maybe(B)

liftm/2

liftm(F::function(), Maybes::[maybe(A)]) -> maybe(A)

liftmz/2

liftmz(F::function(), Maybes::[fn(maybe(A))]) -> maybe(A)

pure/1

pure(A) -> maybe(A)

sequence/1

sequence(Maybes::traversable(maybe(A))) -> maybe(traversable(A))

then/2

then(Maybe::maybe(term()), F::fn(maybe(A))) -> maybe(A)


Generated by EDoc