ignoring free identifiers list in sintactic closures
The following code is expected to output (12 2)
, and it does so in both MIT and Chibi schemes. But it Unsyntax 0.0.3.23-b7aa it outputs (2 2)
.
(import (scheme base)
(scheme cxr)
(scheme write)
(srfi 211 syntactic-closures))
(define-syntax macro
(sc-macro-transformer
(lambda (form env)
(let ((p1 (make-syntactic-closure env '() (cadr form)))
(p2 (make-syntactic-closure env '(internal) (caddr form))))
`(let ((internal 1))
(list ,p1 ,p2))))))
(let ((internal 11))
(display (macro (+ internal 1) (+ internal 1))))
(newline)