--- layout: default title: "Generic" parent: Abstraction ancestor: Funcons-beta --- [Funcons-beta] : [Generic.cbs] ----------------------------- ### Generic abstractions
[
  Type   abstractions
  Funcon abstraction
  Funcon closure
  Funcon enact
]
Meta-variables
  T <: values
  T? <: values?
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
____ From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...] [Generic.cbs]: Generic.cbs "CBS SOURCE FILE" [Funcons-beta]: /CBS-beta/docs/Funcons-beta "FUNCONS-BETA" [Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta "UNSTABLE-FUNCONS-BETA" [Languages-beta]: /CBS-beta/docs/Languages-beta "LANGUAGES-BETA" [Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta "UNSTABLE-LANGUAGES-BETA" [CBS-beta]: /CBS-beta "CBS-BETA" [PLanCompS Project]: https://plancomps.github.io "PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE" [CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues "CBS-BETA ISSUE REPORTS ON GITHUB" [Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Abstraction/Generic/Generic.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A "GENERATE AN EMAIL TEMPLATE"