Deterministic operations are marked by wrapping the result type
of top-level operations with the type synonym Prelude.DET.
This module defines the operation checkDetUse
which detects
unintended uses of this type synonym.
See program DetOpts.curry
in the package directory examples
for some examples.
Author: Michael Hanus
Version: February 2023
containsDetOperations
:: CurryProg -> Bool Does a Curr program contains operations with DET
annotations?
Since DET
is a type synonym which will be removed by the front end,
the AbstractCurry program must be an untyped
AbstractCurry program.
|
checkDetUse
:: CurryProg -> [((String,String),String)] Returns messages about unintended uses of type synonym DET
in a Curry program.
|
|
Does a Curr program contains operations with |
|
Returns messages about unintended uses of type synonym |