From f6cdb4e31b815d0d9dc8505173e2ccba269da478 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Fri, 25 Sep 2026 09:54:05 +0700 Subject: [PATCH] A quasiquote is to nest, counting depth as SBCL's backquote does --- TODO.org | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TODO.org b/TODO.org index a6b687a6..6cc47b28 100644 --- a/TODO.org +++ b/TODO.org @@ -81,7 +81,8 @@ back after. It counts across every module a compiler process loads — each roun the program's module, and every expansion in a session. Rules out a counter per module, seeded or not. -** TODO A quasiquote inside a quasiquote is refused +** NEXT A quasiquote inside a quasiquote is refused +Decided 2026-09-25: nest the way SBCL and Clojure both do. The desugaring counts depth, an unquote belongs to the innermost quasiquote, and =~~x= reaches out two levels — SBCL's =*backquote-depth*= in =src/code/backq.lisp=. The reader stays as it is. Nothing counts nesting levels — not the reader, deliberately, and not the desugaring. Only a macro that writes a macro wants one.