This package contains the library `Control.AllValues`

which define operations to encapsulate non-deterministic computations so that they can be embedded in purely functional computations, e.g., in I/O computations. The operations returns all values of an expression in a list structure or single value in a `Maybe`

container.

The Curry implementations PAKCS and KiCS2 use an incomplete depth-first search strategy to encapsulate non-determinism, but KiCS2 provides more operators to select the search strategy (see package `searchtree`

). The Curry implementation Curry2Go uses a complete (parallel) search strategy.

The library implements **strong encapsulation** as discussed in this paper.

The current implementation uses the package `searchtree`

so that it summarizes the most useful operations of that package in a single library.