pl/special-ops
In CL there are many special-ops like (let ((x (...))))
having the same form of (fun x y ..)
but that are not a function call. Also macro are a form of special-op. With this approach all CL code use a common AST, and so it can be managed by macro. It is a form of abuse of notation.