Funcons-beta : Generic.cbs | PRETTY | PDF
Generic abstractions
[
Type abstractions
Funcon abstraction
Funcon closure
Funcon enact
]
Type
abstractions(_:computation-types)
Funcon
abstraction(_:T?=>T) : abstractions(T?=>T)
The funcon abstraction(X)
forms abstraction values from computations.
References to bindings of identifiers in X
are dynamic.
The funcon closure(X)
forms abstractions with static bindings.
Funcon
closure(_:T?=>T) : =>abstractions(T?=>T)
closure(X)
computes a closed abstraction from the computation X
.
In contrast to abstraction(X)
, references to bindings of identifiers
in X
are static. Moreover, closure(X)
is not a value constructor,
so it cannot be used in pattern terms in rules.
Rule
environment(Rho) |- closure(X) ---> abstraction(closed(scope(Rho, X)))
Funcon
enact(_:abstractions(T?=>T)) : T?=>T
enact(A)
executes the computation of the abstraction A
,
with access to all the current entities.
Rule
enact(abstraction(X)) ~> X