Because procedures are first-class, the evaluation of a lambda expression yields a closure consisting of the procedure's code and the environment in which the expression was evaluated.
The code pointer in the closure does not need to be referenced if the operator always evaluates to procedures built from the same lambda expression.
First, the lambda expression (lambda (a) a) has no free variables, and its value can therefore be constructed at compile time.
Finally, lambda expressions are tagged with elements from a set Tags, and a halt expression is introduced into the language.
The domains Vars and Tags are program dependent and thus finite, since a given program contains only a finite number of variables and lambda expressions.
They ate predicative remarks like 'T[lambda]Hd' and 'F[lambda]Hd', with 'T' and 'F' 'is true', and 'is false', where the lambda expressions
obey the propositional truth schema: T[lambda]p [equivalent to] p.