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 |