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, C) = fun((A, B) -> C)

fn()

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

fn()

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

foldable()

foldable(A) = [A] | maybe(A) | either(term(), 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)

semigroup()

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

traversable()

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

Function Index

append/2
bind/2
do/2
fmap/2
foldr/3
liftA2/2
liftm/2
liftmz/2
mod/1
pure/1
sequence/1
then/2
traverse/2

Function Details

append/2

append(S1::semigroup(A), S2::semigroup(A)) -> semigroup(A)

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)

foldr/3

foldr(F::fn(A, B, B), B, Foldable::foldable(A)) -> B

liftA2/2

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

liftm/2

liftm(F::function(), Monads::[monad(term())]) -> monad(term())

liftmz/2

liftmz(F::function(), Monads::[fn(monad(term()))]) -> monad(term())

mod/1

mod(Type::term()) -> atom()

pure/1

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

sequence/1

sequence(Traversable::traversable(applicative(A))) -> applicative(traversable(A))

then/2

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

traverse/2

traverse(F::fn(A, applicative(B)), Traversable::traversable(A)) -> applicative(traversable(B))


Generated by EDoc