From c78587bfc39e1edf4281af904a613adeb008a84b Mon Sep 17 00:00:00 2001 From: Yogthos Date: Mon, 8 Jun 2026 17:48:19 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20phase-5.md=20=E2=80=94=20jolt-r81=20roo?= =?UTF-8?q?t-fixed=20(lazy-seq=20moved=20to=20early=20tier),=20not=20letfn?= =?UTF-8?q?-worked-around?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- phase-5.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/phase-5.md b/phase-5.md index 53afb05..1c117c2 100644 --- a/phase-5.md +++ b/phase-5.md @@ -286,9 +286,11 @@ lacked**, and it works — all gates green (conformance 246×3, lazy-infinite - Transformers always route concrete input through `lazy-from` + the lazy step machinery (dropping the eager `(if (jvec? coll) (make-vec …))` branch). -All transformers are lazy in interpret/compile/self-host. `interleave`, -`reductions`, and `tree-seq` use **letfn-bound** recursion to avoid the -compile-mode self-recursive-lazy-seq overlay bug (jolt-r81). +All transformers are lazy in interpret/compile/self-host, using canonical +recursive Clojure forms. (jolt-r81 — a compile-mode leak where lazy overlay fns +returned the `lazy-seq` macro expansion as data — was root-fixed by moving +`lazy-seq`/`lazy-cat` to the 00-syntax tier so they're registered before the +seq/coll tiers that use them compile.) ---