Named let creates a loop continuation but set! inside the loop body does not mutate bindings in the enclosing let scope. Affects both the WASM kernel and native OCaml CEK evaluator. 6 failing Node tests cover: - set! counter (simplest case) - set! counter with named let params - set! list accumulator via append - append! + set! counter combo - set! string concatenation - nested named let set! 3 baselines pass: plain let set!, functional named let, plain append! Also adds spec/tests/test-named-let-set.sx (7 assertions, first fails and aborts — confirms bug exists in spec test suite too). This is the root cause of empty source code blocks on all example pages: tokenize-sx uses set! in named let → empty tokens → highlight returns "(<> )" → empty <code> blocks. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB