Index of values

($$) [Choice]
Shortcut for
(++) [Choice]
Infix version of Choice.mplus
(<|>) [Choice]
Infix version of Choice.interleave
(>>-) [Choice]
Infix version of Choice.fair_bind
(>>=) [Choice]
Infix version of Choice.bind

app [Choice]
Applicative instance

bind [Choice]
Monadic bind.

combinations [Choice.Array]
combinations [Choice.List]
Combinations of n elements of the list
cons [Choice.Enum]
Add an element at the head of the list
cons [Choice]
cons x c is a shortcut for return x ++ c
cons1 [Choice.Enum]
deterministic cons
count [Choice.Enum]
Number of distincts enumerations
count [Choice]
Number of solutions

delay [Choice]
Delay the computation (the closure will be called in each branch that uses the choice point

empty [Choice.Enum]
Empty iterator
exists [Choice]

fail [Choice]
Fail to yield a solution.
fair_bind [Choice]
Fair version of Choice.bind.
filter [Choice]
Only keep the solutions that satisfy the given predicate.
fmap [Choice]
Special case of Choice.bind, with only zero or one possible output choices for each input choice.
fold [Choice]
Fold over all solutions
forall [Choice]
from_fun [Choice]
Call the function to get alternative choices.

interleave [Choice]
Same as Choice.mplus, but fair, ie it enumerates solutions alternatively from its first and second arguments.
is_empty [Choice]
return true iff the alternative stream is empty (failure)
ite [Choice]
ite cond th el enumerates the choices of cond.
iter [Choice]
Enumerate solutions, until none remains, or the callback returns false to signal it has had enough solutions

lift [Choice]
lift2 [Choice]
liftFair [Choice]
liftFair2 [Choice]

map [Choice]
Map solutions to other solutions
mplus [Choice]
mplus a b enumerates choices from a, then choices from b.

next [Choice.Enum]
choose the next element

of_list [Choice.Enum]
Simply enumerate the elements of the list
of_list [Choice]
Multiple returns.
once [Choice]
Retain at most one solution (drop alternatives).

permutations [Choice.Array]
permutations [Choice.List]
Enumerate the items of the list in any order
product [Choice]
Cartesian product of two choices
pure [Choice]

return [Choice]
Return a value, and succeed
run_all [Choice]
All the solutions (in reverse order)
run_n [Choice]
The n first solutions, in reverse order.
run_one [Choice]
Run until we get one answer (or a failure)

suffixes [Choice.List]
Suffixes of the list

take [Choice]
Retain at most n solutions
to_list [Choice]
All the solutions (in correct order)
to_list_list [Choice.Enum]
Conversion to a list of possibilies
to_lists [Choice.Enum]
Conversion to a choice of lists

zip [Choice.Enum]
Combine every element of the first enumeration with every element at the same position in the second enumeration.