`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.
/*
`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.