An ActivationRecord is an environment in which one new name is
bound to some value, while all other names retain the values they
have in some pre-existing outer environment, accessed via a nesting
link.
An Application is an expression that when evaluated
applies a function (found by evaluating the operator)
to some argument value (found by evaluating the operand).
A Closure is a function defined by code being interpreted (either a
function definition or a lambda expression), rather than being one
of the built-in functions such as +.