What are macros if not custom compiler extensions?<p>Sure, Shen is enough of a compiler extension to be its own language, but I can call Common Lisp code from Shen and call Shen code from Common Lisp. Doing either isn&#x27;t very different from calling a native function (calling Shen from Shen is similar to calling CL from Shen).<p>As far as [1], I don&#x27;t really see this as an issue with CL. CL has not made the effort to rewrite its core in terms of generic functions. If this were to be done, drastically changing CL&#x27;s behavior for random new types would be relatively painless. But the way that the current CL standard chose for its library and core functionality isn&#x27;t to use generic functions everywhere. As such, it is expected that if you drastically change implementation, you end up with separate functions. I think this is a huge draw of something like Clojure&#x2F;JVM with its interfaces&#x2F;protocols as a base level over a far more mature system like CL&#x2F;SBCL.