> On Jun 11, 2017, at 5:08 AM, Adam <adam.mlmb@gmail.com> wrote:
>
> Possibly the "macro-force-vars", which is used all over the runtime and compiler, would have something to do with this, but I don't find its definition anywhere.
>
In _gambit#.scm:
(macro-define-syntax macro-force-vars
(lambda (stx)
(syntax-case stx ()
((_ vars expr)
(if (let* ((co
(##global-var-ref
(##make-global-var '##compilation-options)))
(comp-opts
(if (##unbound? co) '() co)))
(assq 'force comp-opts))
(syntax-case (datum->syntax
#'vars
(map (lambda (x) `(,x (##force ,x)))
(syntax->list #'vars)))
()
(bindings #'(let bindings expr)))
#'expr)))))