This is not the curse of LISP; it&#x27;s the curse of compile-time macros. Any language extensible at compile time has this problem.  C++ has it. (See Boost). Rust seems headed there.  You can even do this with C macros.<p>There was, around 1990, a fad for &quot;extensible languages&quot;.[1]  It died, because the resulting code was so hard to read, with program-specific syntax for each program. Don&#x27;t go back there.<p>[1] <a href="http:&#x2F;&#x2F;www.cas.mcmaster.ca&#x2F;sqrl&#x2F;papers&#x2F;SQRLreport47.pdf" rel="nofollow">http:&#x2F;&#x2F;www.cas.mcmaster.ca&#x2F;sqrl&#x2F;papers&#x2F;SQRLreport47.pdf</a>