diff --git a/scheme/last-revision b/scheme/last-revision index 2a95aac..d84bb29 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1148 +1149 diff --git a/scheme/psyntax.expander.ss b/scheme/psyntax.expander.ss index 884c053..0ae025c 100644 --- a/scheme/psyntax.expander.ss +++ b/scheme/psyntax.expander.ss @@ -2550,8 +2550,9 @@ r mr '() '() '() '() rib #f))) (when (null? e*) (stx-error e* "no expression in body")) - (let ((rhs* (chi-rhs* rhs* r mr)) - (init* (chi-expr* (append (apply append (reverse mod**)) e*) r mr))) + (let* ((init* + (chi-expr* (append (apply append (reverse mod**)) e*) r mr)) + (rhs* (chi-rhs* rhs* r mr))) (build-letrec* no-source (reverse lex*) (reverse rhs*) (build-sequence no-source init*))))))) @@ -3114,6 +3115,7 @@ (values (append (apply append (reverse mod**)) e*) r mr (reverse lex*) (reverse rhs*))))) + (define library-body-expander (lambda (exp* imp* b* top?) (define itc (make-collector)) @@ -3129,11 +3131,11 @@ (let-values (((init* r mr lex* rhs*) (chi-library-internal b* rib top?))) (seal-rib! rib) - (let ((rhs* (chi-rhs* rhs* r mr)) - (loc* (map gen-global lex*)) - (init* (chi-expr* init* r mr))) + (let* ((init* (chi-expr* init* r mr)) + (rhs* (chi-rhs* rhs* r mr))) (unseal-rib! rib) - (let ((export-subst (make-export-subst exp-int* exp-ext* rib))) + (let ((loc* (map gen-global lex*)) + (export-subst (make-export-subst exp-int* exp-ext* rib))) (define errstr "attempt to export mutated variable") (let-values (((export-env global* macro*)