Behaviours: do_applicative, do_foldable, do_functor, do_monad, do_monoid, do_semigroup, do_traversable.
applicative(A) = [A] | fn(term(), A) | either(term(), A) | maybe(A)
either(A, B) = {error, A} | {ok, B}
fn(A, B, C) = fun((A, B) -> C)
fn(A) = fun(() -> A)
fn(A, B) = fun((A) -> B)
maybe(A) = {just, A} | nothing
monad(A) = [A] | either(term(), A) | maybe(A)
append/2 | |
bind/2 | |
do/2 | |
fmap/2 | |
foldr/3 | |
lift/1 | |
liftA2/2 | |
liftm/2 | |
mempty/0 | |
pure/1 | |
sequence/1 | |
sequencez/1 | |
then/2 | |
traverse/2 |
append(List1::[A], List2::[A]) -> [A]
bind(List::[A], F::fn(A, [B])) -> [B]
fmap(F::fn(A, B), List::[A]) -> [B]
foldr(F::fn(A, B, B), B, List::[A]) -> B
liftA2(List1::[fn(A, B)], List2::[A]) -> [B]
liftm(F::function(), Lists::[list()] | [fn(list())]) -> list()
mempty() -> list()
pure(A) -> [A]
sequence(List::[applicative(A)]) -> applicative([A])
sequencez(List::[fn(applicative(A))]) -> applicative([A])
then(List::list(), F::fn([A])) -> [A]
traverse(F::fn(A, applicative(B)), List::[A]) -> applicative([B])
Generated by EDoc