curry-source: Libraries to check Curry source programs

This package contains libraries to deal with the source code level of Curry programs.

Source code checks

The following package libraries provide operations to check the intended usage of some Curry features.

Source code classification

The following package libraries provide operations to classify the source code of Curry modules into various classes of entities.

Auxiliary libraries for matching AbstractCurry/FlatCurry expressions

In addition to the libraries listed above, this package contains also the libraries AbstractCurry.Match and FlatCurry.Match which defines operations intended to be used as functional patterns in order to match subexpressions in AbstractCurry or FlatCurry programs at arbitrary depth. They are used in the module Language.Curry.CheckOperations.

Examples

The directory examples of this package contains example programs showing unintended uses of Curry features which are detected by the Check libraries of this package. Note that these libraries are integrated in CurryCheck so that these unintended uses are detected when processing these examples with CurryCheck.