This part of AN2 corresponds to the 'Reflective' part of AN1. Action, the sort of actions, is a subsort of Data in AN2. Thus all action combinators (and the data operation provide) are automatically represented by elements of the sort DataOp, and can be used to compute actions, for instance, given actions A1 and A2 as data, performing the action give then computes A1 then A2. In AN1, actions occurring in data had to be embedded as 'abstractions', and abstraction combinators corresponding to action combinators were needed. The action enact has essentially the same interpretation in AN2 as in AN1, except that the action to be enacted is given to it as data, rather than as an explicit argument. The abstractionforming data operations provision d and production d of AN1 were mainly used to define applications and closures of abstractions. The Kernel AN2 action provide d corresponds to provision d in AN1; the treatment of produced bindings as data in AN2 has allowed produce d to be eliminated altogether. |