Reputation:
I have seen quasi-function symbols $effmask_all
and $effmask_ref
many times in the ATS library code. What is the meaning of these symbols? When should they be called?
Upvotes: 4
Views: 53
Reputation: 31
ATS can track some effects (e.g., non-termination (ntm), reference (ref), write (wrt)). Sometimes, you may want the typechecker to ignore the effects that can potentially be generated from the evaluation of an expression. To do so, you can use $effmask_all
to mask out all the effects and $effmask_ref
to mask out only the reference-effect. There is also $effmask_wrt
for masking out the write-effect.
Upvotes: 3