outcome |
giving d |
escaping with d |
binding |
failing |
committing |
diverging
outcome: a sort of auxiliary entities, used
for specifying sorts of actions. Sort union O1 | O2
combines outcomes. (The various outcomes below are disjoint, so there is no use for specifying their intersections.)
giving d: allows normal termination
that always gives transients included in the data sort d.
completingcompletingcompleting abbreviates giving ( ),
where ( ) is the empty tuple of data.
escaping with d: allows
abnormal termination that always gives transients included in the data sort
d.
escaping: abbreviates escaping with
data.
binding: allows normal termination that
optionally produces some bindings. The union outcome
giving d | binding allows normal
termination that always gives transients of sort d and optionally
produces some bindings. The use of binding alone implies
completing.
failing: ignored. (Most compound actions
that use information fail when that information is not made available to their
performance.)
committing: allows commitment,
independently of termination. Included in storing, communicating,
and redirecting, which are analogous.
diverging: allows nontermination. Actions
without this sort of outcome are guaranteed to terminate, whereas those with
this outcome might or might not terminate. Actions that contain any occurrence
of unfolding or enact Y have this sort of outcome, unless
they are equivalent to other actions that do not have it.
OBS:These outcomes are not implemented by the action interpreter.
|