&gt; The assumption of equality between 2 + 2 and 4, which is true in classical math but false in computation<p>Using Lisp syntax, you are wrongly conflating `(+ 2 2)`, which <i>is</i> equal to `4`, with `(quote (+ 2 2))`, which is obviously different from `(quote 4)`. Obviously, a term rewriting approach to computation involves replacing syntax objects with <i>syntactically</i> different ones, but in a pure language, they will <i>semantically</i> denote the same value.<p>Incidentally:<p>0. This conflation between object and meta language rôles is an eternal source of confusion and pain in Lisp.<p>1. Types help clarify the distinction. `(+ 2 2)` has type `integer`, but `(quote (+ 2 2))` has type `abstract-syntax-tree`.<p>&gt; very impressive software<p>For its lack of conceptual clarity. And for its bugs. I&#x27;m reduced to being a <i>very</i> conservative user of software. I wouldn&#x27;t dare try any program&#x27;s most advanced options, for fear of having to deal with complex functionality implemented wrong.