CurryInfo: allvalues-4.0.0

categories:
Logic Programming Control
dependencies:
[Dependency "base" [[VGte "3.0.0",VLt "4.0.0"]],Dependency "searchtree" [[VGte "3.0.0",VLt "4.0.0"]]]
documentation:
allvalues: Encapsulate non-deterministic computations
=====================================================

This package contains the library `Control.AllValues`
which defines 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 a 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 the
[JFLP'04 paper](http://danae.uni-muenster.de/lehre/kuchen/JFLP/articles/2004/S04-01/A2004-06/JFLP-A2004-06.pdf).

Note that the functionality of this package is largely contained
in the modules `Control.Search/...` of the
[base package](https://cpm.curry-lang.org/pkgs/base.html)
since version 3.3.0, which is part of newer Curry distributions.

--------------------------------------------------------------------------
exportedmodules:
Control.AllValues
modules:
Control.AllValues
version:
4.0.0