init commit again

This commit is contained in:
Peter
2023-11-01 09:29:33 +01:00
parent 448147e7da
commit d6c745207b
250 changed files with 15552 additions and 1 deletions

View File

@@ -0,0 +1,30 @@
### Thunks
[
Datatype thunks
Funcon thunk
Funcon force
]
Meta-variables
T <: values
Datatype
thunks(T) ::= thunk(_:abstractions(()=>T))
/*
`thunks(T)` consists of abstractions whose bodies do not depend on
a given value, and whose executions normally compute values of type `T`.
`thunk(abstraction(X))` evaluates to a thunk with dynamic bindings,
`thunk(closure(X))` computes a thunk with static bindings.
*/
Funcon
force(_:thunks(T)) : =>T
/*
`force(H)` enacts the abstraction of the thunk `H`.
*/
Rule
force(thunk(abstraction(X))) ~> no-given(X)