I guess I wasn&#x27;t clear in my post.<p>Usually when people say &quot;you can do X in Lisp&quot;, they mean that you can integrate a feature into the language.<p>Don&#x27;t have list comprehensions? Write a macro.<p>Don&#x27;t have &quot;thrush&quot; syntax? Write a macro.<p>Don&#x27;t have lazy evaluation? Write a... err. You can&#x27;t write a macro[1]. You can&#x27;t write something which completely changes the entire calling semantics of the language. What you can do is make a little sub-language which uses different values and objects from Lisp, but you can&#x27;t magically make the standard library support lazy evaluation.<p>Same with types and type inference (a la Haskell).<p>Same with many other things.<p>Of course, <i>obviously</i>, you can write a compiler that compiles to Common Lisp, or C, or Scheme, or COBOL. But writing a compiler -- while Lisp is good at that -- isn&#x27;t really taking advantage of what it usually means for Lisp to be extensible.<p>[1] For those who are ready to call out the many &quot;lazy&quot; libraries in Common Lisp, perhaps even my own, you&#x27;re missing the point. You can make a new version of DEFUN and a new version of FUNCALL. But that doesn&#x27;t make REMOVE-IF, SUBSEQ, MAPCAR, LIST, CONS, etc. lazy. As such, many, if not most, of the benefits that laziness brings, don&#x27;t get applied to the language at large.