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)))))