Module do

The Do Module.

Description

The Do Module.

Data Types

applicative()

applicative(A) = [A] | fn(term(), A) | either(term(), A) | maybe(A)

either()

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

fn()

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

fn()

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

functor()

functor(A) = [A] | map(A) | fn(term(), A) | either(term(), A) | maybe(A)

map()

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

maybe()

maybe(A) = {just, A} | nothing

monad()

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

Function Index

bind/2
do/2
fmap/2
liftA2/2
pure/1
then/2

Function Details

bind/2

bind(Monad::monad(A), F::fn(A, monad(B))) -> monad(B)

do/2

do(Monad::monad(A), Fs::[fn(A, monad(B)) | fn(monad(B))]) -> monad(B)

fmap/2

fmap(F::fn(A, B), Functor::functor(A)) -> functor(B)

liftA2/2

liftA2(A1::applicative(fn(A, B)), A2::applicative(A)) -> applicative(B)

pure/1

pure(A) -> monad(A) | A

then/2

then(Monad::monad(term()), F::fn(monad(B))) -> monad(B)


Generated by EDoc