There's no need to capture free variables in a set, because that's only necessary for compiled languages. Since the lambda expressions are interpreted on the fly, they capture the surrounding context correctly.
It follows that there's no need to parse both forms of the lambda, and that only the basic [H|T]>>Lambda form is necessary.
Macro expansion is not necessary because lambdas simply return the result of invoking call/* directly.
Still, built-in resolution was improved to make sure that it's possible to return a term to be recursively resolved as another built-in, rather than just returning a term that is then going to be evaluated as a goal.
Creating an abstract type for lambdas turned out to be rather pointless, because there's never really a need to access their abstract form; also it created some parsing issues with comma expressions, so it wasn't included.
Lambda
that parses the forms{Free}/[List]>>Lambda
and[List]>>Lambda
.call
.