This analysis checks whether a function does not residuate and yields, if it successfully evaluates to some value, a ground value provided that the function is called with some ground values as arguments.
To bemore precise, the analysis associates to each function one of the following results:
NoResiduateIf xs
(does not residuate if arguments xs
are ground):
xs
are ground values (where arguments are numbered from 1),
then the evaluation does not residuate and yields a ground value.
For instance, the operation
NoResiduateIf [1]
, and the
list concatenation ++
has the residuation behavior NoResiduateIf [1,2]
.
MayResiduate
(possible residuation or non-ground result):
NoResInfo
(unknown residuation behavior):
let
s are involved.