The type system of ATS can currently track the following list of effects
that a program may incur during its execution:
-
The exn (exception) effect is incurred if a program raises an
exception during its execution. This covers the case where the execution of
a program is terminated abnormally, for instance, by calling exit.
-
The ntm (nontermination) effect refers to potential nonterminating
excecution of a program.
-
The ref (reference) effect essentially means that a program may
potentially update the content of some shared memory.
The code used for illustration is available here.