diff --git a/pkgs/base/info.rkt b/pkgs/base/info.rkt index fbdad36318..bd59847a90 100644 --- a/pkgs/base/info.rkt +++ b/pkgs/base/info.rkt @@ -12,7 +12,7 @@ (define collection 'multi) -(define version "7.5.0.11") +(define version "7.5.0.12") (define deps `("racket-lib" ["racket" #:version ,version])) diff --git a/pkgs/racket-test-core/tests/racket/expobs-regression.rktd b/pkgs/racket-test-core/tests/racket/expobs-regression.rktd index 211fe04543..9efd2c61c5 100644 --- a/pkgs/racket-test-core/tests/racket/expobs-regression.rktd +++ b/pkgs/racket-test-core/tests/racket/expobs-regression.rktd @@ -2,22 +2,1583 @@ . ((start-top . #f) (visit . #s(stx-boundary (s0 s1))) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1))) - (prim-#%expression . #f) + (prim-#%expression . #s(stx-boundary (s0 s1))) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (exit-prim . #s(stx-boundary (s0 (s1 . s2)))) - (return . #s(stx-boundary (s0 (s1 . s2)))))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 (s1 . s2)))))) + ((begin0 '3 '5) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) + (visit . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) + (visit . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) + (prim-#%expression . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) + (visit . #s(stx-boundary (s0 (s1 3) (s1 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 3) (s1 5)))) + (prim-begin0 . #s(stx-boundary (s0 (s1 3) (s1 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 3))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 3))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 3))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 5))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 (s1 3) (s1 5)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))))) + ((quote-syntax (stx-quoted)) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 (s2))))) + (visit . #s(stx-boundary (s0 (s1 (s2))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2))))) + (visit . #s(stx-boundary (s0 (s1 (s2))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 (s2))))) + (prim-#%expression . #s(stx-boundary (s0 (s1 (s2))))) + (visit . #s(stx-boundary (s0 (s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1)))) + (prim-quote-syntax . #s(stx-boundary (s0 (s1)))) + (exit-prim/return . #s(stx-boundary (s0 (s1)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 (s2))))))) + ((#%variable-reference __z) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-#%variable-reference . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2)))))) + ((let () (define (ok x) '8) (ok 5)) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (macro-pre-x . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (macro-post-x + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) + . + #s(stx-boundary (s5 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (prim-let-values . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1 5))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1 5))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 8))) #s(stx-boundary (s1 5))) + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1 s3) (s4 8)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s5 s1 (s2 (s3) (s4 8))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 8)))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 5))) + (block->letrec + ((#s(stx-boundary s0))) + (#s(stx-boundary (s1 (s2) (s3 8)))) + #s(stx-boundary (s0 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 8))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (enter-list #s(stx-boundary (s0 5))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s1 5))) + (enter-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (macro-pre-x . #s(stx-boundary (s0 s1 5))) + (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (exit-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (visit . #s(stx-boundary (s0 s1 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 5))) + (prim-#%app . #s(stx-boundary (s0 s1 5))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 5)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) + (enter-prim . #s(stx-boundary (s0 . 5))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-list #s(stx-boundary (s0 s1 (s2 5)))) + (finish-block + #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) (s5 s1 (s4 5))))) + (exit-prim/return + . + #s(stx-boundary + (s0 () (s0 (((s1) (s2 (s3) (s4 8)))) (s5 s1 (s4 5)))))) + (exit-prim/return + . + #s(stx-boundary + (s0 (s1 () (s1 (((s2) (s3 (s4) (s5 8)))) (s6 s2 (s5 5))))))))) + ((lambda (x) (define y (+ x x)) y) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) + (visit . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) + (visit . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) + (visit . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3)) + . + #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3)) + . + #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3)) + . + #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (visit . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) + (lambda-renames + #s(stx-boundary (s0)) + #s(stx-boundary (s1 s2 (s3 s0 s0))) + #s(stx-boundary s2)) + (enter-block #s(stx-boundary (s0 s1 (s2 s3 s3))) #s(stx-boundary s1)) + (block-renames + (#s(stx-boundary (s0 s1 (s2 s3 s3))) #s(stx-boundary s1)) + #s(stx-boundary (s0 s1 (s2 s3 s3))) + #s(stx-boundary s1)) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 s3 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 s3 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3 s3)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 s3 s3))) + . + #s(stx-boundary (s4 s1 (s2 s3 s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 s3 s3))) + . + #s(stx-boundary (s0 (s1) (s2 s3 s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 s3 s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 s3 s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 s3 s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 s2 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->letrec + ((#s(stx-boundary s0))) + (#s(stx-boundary (s1 s2 s2))) + #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 s1 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2 s2)) . #s(stx-boundary (s1 s2 s2))) + (enter-macro + #s(stx-boundary (s0 s1 s2 s2)) + . + #s(stx-boundary (s0 s1 s2 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2 s2)) + . + #s(stx-boundary (s0 s1 s2 s2))) + (exit-macro + #s(stx-boundary (s0 s1 s2 s2)) + . + #s(stx-boundary (s0 s1 s2 s2))) + (visit . #s(stx-boundary (s0 s1 s2 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2 s2))) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (finish-block #s(stx-boundary (s0 (((s1) (s2 s3 s4 s4))) s1))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1) (s2 (((s3) (s4 s5 s1 s1))) s3)))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 (s2) (s3 (((s4) (s5 s6 s2 s2))) s4))))))) + ((with-continuation-mark __x __y __z) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (visit . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (visit . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (visit . #s(stx-boundary (s0 s1 s2 s3))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2 s3))) + (prim-with-continuation-mark . #s(stx-boundary (s0 s1 s2 s3))) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 . s2) (s1 . s3) (s1 . s4)))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 (s2 . s3) (s2 . s4) (s2 . s5))))))) + ((let () + (define-syntax (ok stx) + (define-values + (exp opaque) + (syntax-local-expand-expression (cadr (syntax-e stx)))) + opaque) + (#%expression (ok 9))) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) + (s0 (s3 9)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) + (s0 (s3 9)))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) + (s0 (s3 9)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) + (s0 (s3 9)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) + (s0 (s3 9)))))) + (prim-#%expression + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) + (s0 (s3 9)))))) + (visit + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9)))) + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (macro-pre-x + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (macro-post-x + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9)))) + . + #s(stx-boundary + (s11 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (exit-macro + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9)))) + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (visit + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (prim-let-values + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) + (s10 (s2 9))))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)) + #s(stx-boundary (s9 (s1 9)))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)) + #s(stx-boundary (s9 (s1 9)))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)) + #s(stx-boundary (s9 (s1 9)))) + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)) + #s(stx-boundary (s9 (s1 9)))) + (next . #f) + (visit + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) + (macro-pre-x + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) + . + #s(stx-boundary (s10 (s1 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) + . + #s(stx-boundary + (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) + (visit + . + #s(stx-boundary + (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) + (prim-define-syntaxes + . + #s(stx-boundary + (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) + (rename-one + (#s(stx-boundary s0)) + #s(stx-boundary (s1 (s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4)) + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (macro-pre-x + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4)) + . + #s(stx-boundary (s8 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4)) + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (prim-lambda + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) + (lambda-renames + #s(stx-boundary (s0)) + #s(stx-boundary (s1 (s2 s3) (s4 (s5 (s6 s0))))) + #s(stx-boundary s3)) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6))))) + #s(stx-boundary s2)) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6))))) #s(stx-boundary s2)) + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6))))) + #s(stx-boundary s2)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6)))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6)))))) + (prim-define-values . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6)))))) + (rename-one + (#s(stx-boundary s0) #s(stx-boundary s1)) + #s(stx-boundary (s2 (s3 (s4 s5))))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->letrec + ((#s(stx-boundary s0) #s(stx-boundary s1))) + (#s(stx-boundary (s2 (s3 (s4 s5))))) + #s(stx-boundary s1)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 s3))))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 + #s(stx-boundary (s0 s1 (s2 (s3 s4)))) + . + #s(stx-boundary (s1 (s2 (s3 s4))))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3 s4)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 (s2 s3))) . #s(stx-boundary (s1 (s2 s3)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 s3)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 s3)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2)) + . + #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 s3)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4))))) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (finish-block + #s(stx-boundary (s0 (((s1 s2) (s3 s4 (s3 s5 (s3 s6 s7))))) s2))) + (exit-prim/return + . + #s(stx-boundary + (s0 (s1) (s2 (((s3 s4) (s5 s6 (s5 s7 (s5 s8 s1))))) s4)))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 9)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 9)))) + (block->letrec () () #s(stx-boundary (s0 (s1 9)))) + (enter-list #s(stx-boundary (s0 (s1 9)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 9)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 9)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 9)))) + (visit . #s(stx-boundary (s0 9))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 9)) . #s(stx-boundary (s0 9))) + (macro-pre-x . #s(stx-boundary (s0 9))) + (enter-local . #s(stx-boundary 9)) + (local-pre . #s(stx-boundary 9)) + (start . #f) + (visit . #s(stx-boundary 9)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 9)) . #s(stx-boundary 9)) + (enter-prim . #s(stx-boundary (s0 . 9))) + (prim-#%datum . #s(stx-boundary (s0 . 9))) + (exit-prim/return . #s(stx-boundary (s0 9))) + (local-post . #s(stx-boundary (s0 9))) + (opaque-expr . #s(stx-boundary #:opaque)) + (exit-local . #s(stx-boundary (s0 9))) + (macro-post-x #s(stx-boundary #:opaque) . #s(stx-boundary (s0 9))) + (exit-macro #s(stx-boundary #:opaque) . #s(stx-boundary #:opaque)) + (visit . #s(stx-boundary #:opaque)) + (opaque-expr . #s(stx-boundary (s0 9))) + (tag . #s(stx-boundary (s0 9))) + (exit-prim/return . #s(stx-boundary (s0 9))) + (exit-list #s(stx-boundary (s0 9))) + (finish-block #s(stx-boundary (s0 () (s1 9)))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () (s1 9))))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () (s2 9)))))))) + ((let-values (((x) __y) ((y z) __w)) __x) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (visit . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) + (prim-let-values . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) + (letX-renames + () + () + ((#s(stx-boundary s0)) (#s(stx-boundary s1) #s(stx-boundary s2))) + (#s(stx-boundary s3) #s(stx-boundary s4)) + #s(stx-boundary s5)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (exit-list #s(stx-boundary (s0 . s1))) + (exit-prim/return + . + #s(stx-boundary + (s0 (((s1) (s2 . s3)) ((s4 s5) (s2 . s6))) (s2 . s7)))) + (exit-prim/return + . + #s(stx-boundary + (s0 (s1 (((s2) (s3 . s4)) ((s5 s6) (s3 . s7))) (s3 . s8))))))) + ((let () + (define-syntax (ok stx) (quote-syntax 8)) + (define-syntax (second stx) (quote-syntax (ok 6))) + (define (ident x) x) + (define (second-ident y) y) + (ident (second-ident (second)))) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 8)) + (s2 (s6 s4) (s5 (s3 6))) + (s7 (s8 s9) s9) + (s7 (s10 s11) s11) + (s8 (s10 (s6))))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 8)) + (s2 (s6 s4) (s5 (s3 6))) + (s7 (s8 s9) s9) + (s7 (s10 s11) s11) + (s8 (s10 (s6))))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 8)) + (s2 (s6 s4) (s5 (s3 6))) + (s7 (s8 s9) s9) + (s7 (s10 s11) s11) + (s8 (s10 (s6))))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 8)) + (s2 (s6 s4) (s5 (s3 6))) + (s7 (s8 s9) s9) + (s7 (s10 s11) s11) + (s8 (s10 (s6))))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 8)) + (s2 (s6 s4) (s5 (s3 6))) + (s7 (s8 s9) s9) + (s7 (s10 s11) s11) + (s8 (s10 (s6))))))) + (prim-#%expression + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) (s5 8)) + (s2 (s6 s4) (s5 (s3 6))) + (s7 (s8 s9) s9) + (s7 (s10 s11) s11) + (s8 (s10 (s6))))))) + (visit + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5))))) + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (macro-pre-x + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (macro-post-x + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5))))) + . + #s(stx-boundary + (s11 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (exit-macro + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5))))) + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (visit + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (prim-let-values + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) (s4 8)) + (s1 (s5 s3) (s4 (s2 6))) + (s6 (s7 s8) s8) + (s6 (s9 s10) s10) + (s7 (s9 (s5)))))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s5 (s6 s7) s7)) + #s(stx-boundary (s5 (s8 s9) s9)) + #s(stx-boundary (s6 (s8 (s4))))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s5 (s6 s7) s7)) + #s(stx-boundary (s5 (s8 s9) s9)) + #s(stx-boundary (s6 (s8 (s4))))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s5 (s6 s7) s7)) + #s(stx-boundary (s5 (s8 s9) s9)) + #s(stx-boundary (s6 (s8 (s4))))) + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s5 (s6 s7) s7)) + #s(stx-boundary (s5 (s8 s9) s9)) + #s(stx-boundary (s6 (s8 (s4))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s5 (s1 s3) (s4 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-syntaxes . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 8)))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s3 (s1) (s2 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 8))) + (prim-quote-syntax . #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 6)))) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6))))) + . + #s(stx-boundary (s6 (s1 s3) (s4 (s5 6))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6))))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (prim-define-syntaxes + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (rename-one + (#s(stx-boundary s0)) + #s(stx-boundary (s1 (s2) (s3 (s4 6))))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3 6)))) + . + #s(stx-boundary (s4 (s1) (s2 (s3 6))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 (s2 6)))) + (enter-block #s(stx-boundary (s0 (s1 6)))) + (block-renames + (#s(stx-boundary (s0 (s1 6)))) + #s(stx-boundary (s0 (s1 6)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 6)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 6)))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 6)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 6)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 6)))) + (prim-quote-syntax . #s(stx-boundary (s0 (s1 6)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 6)))) + (exit-list #s(stx-boundary (s0 (s1 6)))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) s2))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1 s3) s3))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s4 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) s2))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) s2))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1 s3) s3))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s4 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) s2))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2))))) + (block->letrec + ((#s(stx-boundary s0)) (#s(stx-boundary s1))) + (#s(stx-boundary (s2 (s3) s3)) #s(stx-boundary (s2 (s4) s4))) + #s(stx-boundary (s0 (s1 (s5))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) s1))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) s1))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) + (enter-list #s(stx-boundary (s0 (s1 (s2))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2))))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 + #s(stx-boundary (s0 s1 (s2 (s3)))) + . + #s(stx-boundary (s1 (s2 (s3))))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3))))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3))))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3))))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 (s3))))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1)))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 (s2))) . #s(stx-boundary (s1 (s2)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2))) + . + #s(stx-boundary (s0 s1 (s2)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2))) + . + #s(stx-boundary (s0 s1 (s2)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2))) + . + #s(stx-boundary (s0 s1 (s2)))) + (visit . #s(stx-boundary (s0 s1 (s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (macro-pre-x . #s(stx-boundary (s0))) + (macro-post-x #s(stx-boundary (s0 6)) . #s(stx-boundary (s1))) + (exit-macro #s(stx-boundary (s0 6)) . #s(stx-boundary (s0 6))) + (visit . #s(stx-boundary (s0 6))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 6)) . #s(stx-boundary (s0 6))) + (macro-pre-x . #s(stx-boundary (s0 6))) + (macro-post-x #s(stx-boundary 8) . #s(stx-boundary (s0 6))) + (exit-macro #s(stx-boundary 8) . #s(stx-boundary 8)) + (visit . #s(stx-boundary 8)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) + (enter-prim . #s(stx-boundary (s0 . 8))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 8)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 (s3 8))))) + (exit-list #s(stx-boundary (s0 s1 (s0 s2 (s3 8))))) + (finish-block + #s(stx-boundary + (s0 + (((s1) (s2 (s3) s3))) + (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8))))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + () + (s0 + (((s1) (s2 (s3) s3))) + (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8)))))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 + () + (s1 + (((s2) (s3 (s4) s4))) + (s1 (((s5) (s3 (s6) s6))) (s7 s2 (s7 s5 (s8 8))))))))))) + ((#%top . __x) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 . s2)))) + (visit . #s(stx-boundary (s0 (s1 . s2)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 . s2)))) + (visit . #s(stx-boundary (s0 (s1 . s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 . s2)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 . s2)))) + (visit . #s(stx-boundary (s0 . s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 (s1 . s2)))))) + ('quoted + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2)))))) + ((let () (define-syntax (ok stx) (quote-syntax 8)) (ok 5)) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) + (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (macro-pre-x . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (macro-post-x + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) + . + #s(stx-boundary (s5 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (prim-let-values . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1 5))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1 5))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 8))) #s(stx-boundary (s1 5))) + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s5 (s1 s3) (s4 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-syntaxes . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 8)))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s3 (s1) (s2 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 8))) + (prim-quote-syntax . #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 5)) . #s(stx-boundary (s0 5))) + (macro-pre-x . #s(stx-boundary (s0 5))) + (macro-post-x #s(stx-boundary 8) . #s(stx-boundary (s0 5))) + (exit-macro #s(stx-boundary 8) . #s(stx-boundary 8)) + (visit . #s(stx-boundary 8)) + (stop/return . #s(stx-boundary 8)) + (block->letrec () () #s(stx-boundary 8)) + (enter-list #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) + (enter-prim . #s(stx-boundary (s0 . 8))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (finish-block #s(stx-boundary (s0 () (s1 8)))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () (s1 8))))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () (s2 8)))))))) ((#%stratified-body (define (first z) z) (define (ok x) (second x)) @@ -36,7 +1597,7 @@ (s2 (s7 s8) 8) (s5 (s3 5)) (s2 s9 (s10 s11)))))) - (enter-check + (visit . #s(stx-boundary (s0 @@ -46,7 +1607,8 @@ (s2 (s7 s8) 8) (s5 (s3 5)) (s2 s9 (s10 s11)))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 @@ -77,7 +1639,16 @@ (s2 (s7 s8) 8) (s5 (s3 5)) (s2 s9 (s10 s11)))))) - (prim-#%expression . #f) + (prim-#%expression + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)) + (s2 s9 (s10 s11)))))) (visit . #s(stx-boundary @@ -97,183 +1668,201 @@ (s1 (s6 s7) 8) (s4 (s2 5)) (s1 s8 (s9 s10))))) - (prim-#%stratified . #f) + (prim-#%stratified + . + #s(stx-boundary + (s0 + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s1 (s6 s7) 8) + (s4 (s2 5)) + (s1 s8 (s9 s10))))) (enter-block - . - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s0 (s5 s6) 8) - (s3 (s1 5)) - (s0 s7 (s8 s9))))) + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s0 (s5 s6) 8)) + #s(stx-boundary (s3 (s1 5))) + #s(stx-boundary (s0 s7 (s8 s9)))) (block-renames - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s0 (s5 s6) 8) - (s3 (s1 5)) - (s0 s7 (s8 s9)))) - . - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s0 (s5 s6) 8) - (s3 (s1 5)) - (s0 s7 (s8 s9))))) + (#s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s0 (s5 s6) 8)) + #s(stx-boundary (s3 (s1 5))) + #s(stx-boundary (s0 s7 (s8 s9)))) + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s0 (s5 s6) 8)) + #s(stx-boundary (s3 (s1 5))) + #s(stx-boundary (s0 s7 (s8 s9)))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) (visit . #s(stx-boundary (s0 (s1 s2) s2))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) (macro-post-x #s(stx-boundary (s0 s1 (s2 (s3) s3))) . #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3) s3))) . #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) s2)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) s2))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + . + #s(stx-boundary (s0 (s1 s2) (s3 s2)))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) (macro-post-x #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) . #s(stx-boundary (s0 (s1 s3) (s4 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) . #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 s2))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 s2)))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) 8))) (visit . #s(stx-boundary (s0 (s1 s2) 8))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) 8))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) 8)) + . + #s(stx-boundary (s0 (s1 s2) 8))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) (macro-post-x #s(stx-boundary (s0 s1 (s2 (s3) 8))) . #s(stx-boundary (s0 (s1 s3) 8))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3) 8))) . #s(stx-boundary (s4 s1 (s2 (s3) 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 5)))) - (exit-check . #s(stx-boundary (s0 (s1 5)))) - (block->letrec - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) ((s4) (s2 (s5) (s6 s5))) ((s6) (s2 (s7) 8))) - (s8 (s4 (s1 5)) (s9 s10 (s11 s12)))))) - (visit + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) ((s4) (s2 (s5) (s6 s5))) ((s6) (s2 (s7) 8))) - (s8 (s4 (s1 5)) (s9 s10 (s11 s12)))))) + #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) ((s4) (s2 (s5) (s6 s5))) ((s6) (s2 (s7) 8))) - (s8 (s4 (s1 5)) (s9 s10 (s11 s12)))))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) s2))) - #s(stx-boundary ((s3) (s1 (s4) (s5 s4)))) - #s(stx-boundary ((s5) (s1 (s6) 8)))) - . - #s(stx-boundary ((s7 (s3 (s0 5)) (s8 s9 (s10 s11)))))) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) 8))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 5)))) + (block->letrec + ((#s(stx-boundary s0)) (#s(stx-boundary s1)) (#s(stx-boundary s2))) + (#s(stx-boundary (s3 (s4) s4)) + #s(stx-boundary (s3 (s5) (s2 s5))) + #s(stx-boundary (s3 (s6) 8))) + #s(stx-boundary (s7 (s1 (s0 5)) (s8 s9 (s10 s11))))) (next . #f) (visit . #s(stx-boundary (s0 (s1) s1))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) (next . #f) (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 s0)))) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 s1)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 s0))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) (macro-pre-x . #s(stx-boundary (s0 s1 s2))) (macro-post-x #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) (visit . #s(stx-boundary (s0 s1 s2))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -284,70 +1873,74 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary ((s0 s1 s2)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-list #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) (next . #f) (visit . #s(stx-boundary (s0 (s1) 8))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) 8))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (8))) - (enter-block . #s(stx-boundary (8))) - (block-renames #s(stx-boundary (8)) . #s(stx-boundary (8))) + (prim-lambda . #s(stx-boundary (s0 (s1) 8))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary 8)) + (enter-block #s(stx-boundary 8)) + (block-renames (#s(stx-boundary 8)) #s(stx-boundary 8)) (next . #f) - (enter-check . #s(stx-boundary 8)) - (exit-check . #s(stx-boundary 8)) - (block->list . #s(stx-boundary (8))) - (enter-list . #s(stx-boundary (8))) + (visit . #s(stx-boundary 8)) + (stop/return . #s(stx-boundary 8)) + (block->list . #f) + (enter-list #s(stx-boundary 8)) (next . #f) (visit . #s(stx-boundary 8)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 (s1 (s2 5)) (s3 s4 (s5 s6)))))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (enter-list #s(stx-boundary (s0 (s1 (s2 5)) (s3 s4 (s5 s6))))) (next . #f) (visit . #s(stx-boundary (s0 (s1 (s2 5)) (s3 s4 (s5 s6))))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 (s2 5)) (s3 s4 (s5 s6))))) - (prim-#%stratified . #f) - (enter-block . #s(stx-boundary ((s0 (s1 5)) (s2 s3 (s4 s5))))) + (prim-#%stratified . #s(stx-boundary (s0 (s1 (s2 5)) (s3 s4 (s5 s6))))) + (enter-block + #s(stx-boundary (s0 (s1 5))) + #s(stx-boundary (s2 s3 (s4 s5)))) (block-renames - #s(stx-boundary ((s0 (s1 5)) (s2 s3 (s4 s5)))) - . - #s(stx-boundary ((s0 (s1 5)) (s2 s3 (s4 s5))))) + (#s(stx-boundary (s0 (s1 5))) #s(stx-boundary (s2 s3 (s4 s5)))) + #s(stx-boundary (s0 (s1 5))) + #s(stx-boundary (s2 s3 (s4 s5)))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 5)))) - (exit-check . #s(stx-boundary (s0 (s1 5)))) - (block->list . #s(stx-boundary ((s0 (s1 5)) (s2 s3 (s4 s5))))) - (enter-list . #s(stx-boundary ((s0 (s1 5)) (s2 s3 (s4 s5))))) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 5)))) + (block->list . #f) + (enter-list + #s(stx-boundary (s0 (s1 5))) + #s(stx-boundary (s2 s3 (s4 s5)))) (next . #f) (visit . #s(stx-boundary (s0 (s1 5)))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 5)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 5)))) + (tag2 #s(stx-boundary (s0 s1 (s2 5))) . #s(stx-boundary (s1 (s2 5)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 5)))) (macro-post-x #s(stx-boundary (s0 s1 (s2 5))) . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) (visit . #s(stx-boundary (s0 s1 (s2 5)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 5)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 5)))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -357,16 +1950,15 @@ (visit . #s(stx-boundary (s0 5))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 5))) - (enter-macro . #s(stx-boundary (s0 s1 5))) + (tag2 #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s1 5))) + (enter-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) (macro-pre-x . #s(stx-boundary (s0 s1 5))) (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) - (exit-macro . #s(stx-boundary (s0 s1 5))) + (exit-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) (visit . #s(stx-boundary (s0 s1 5))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1 5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 5))) + (prim-#%app . #s(stx-boundary (s0 s1 5))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -375,40 +1967,72 @@ (next . #f) (visit . #s(stx-boundary 5)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary (s0 (s1 5)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (return . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-list . #s(stx-boundary (s0 (s1 s2 (s3 5))))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))))) - ((quote-syntax (stx-quoted)) + ((module m '#%kernel 5) . ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 (s2))))) - (enter-check . #s(stx-boundary (s0 (s1 (s2))))) - (exit-check . #s(stx-boundary (s0 (s1 (s2))))) - (visit . #s(stx-boundary (s0 (s1 (s2))))) + (visit . #s(stx-boundary (s0 s1 (s2 s3) 5))) + (visit . #s(stx-boundary (s0 s1 (s2 s3) 5))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 (s1)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) 5))) + (visit . #s(stx-boundary (s0 s1 (s2 s3) 5))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1)))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 (s1)))) - (return . #s(stx-boundary (s0 (s1)))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2))))) - (return . #s(stx-boundary (s0 (s1 (s2))))))) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) 5))) + (prim-module . #s(stx-boundary (s0 s1 (s2 s3) 5))) + (prepare-env . #f) + (rename-one #s(stx-boundary 5)) + (track-syntax s0 #s(stx-boundary 5) . #s(stx-boundary 5)) + (visit . #s(stx-boundary 5)) + (stop/return . #s(stx-boundary 5)) + (tag . #s(stx-boundary (s0 5))) + (track-syntax s0 #s(stx-boundary (s1 5)) . #s(stx-boundary (s1 5))) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 5))) + (track-syntax s0 #s(stx-boundary (s1 5)) . #s(stx-boundary (s1 5))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 5))) + (prim-module-begin . #f) + (rename-one . #s(stx-boundary (s0 5))) + (next . #f) + (visit . #s(stx-boundary 5)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) + (enter-prim . #s(stx-boundary (s0 . 5))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (module-pass1-case . #s(stx-boundary (s0 5))) + (prim-stop . #f) + (next-group . #f) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 5))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 5))) + (next-group . #f) + (next-group . #f) + (next . #f) + (next-group . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 5)))) + (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s2 5))))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s2 5))))))) ((module m racket/base (define-syntax (ok stx) (syntax-local-lift-require 'racket/list #'foldl)) @@ -418,10 +2042,11 @@ (visit . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 (s7 s8) (s9 s10))) (s4)))) - (enter-check + (visit . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 (s7 s8) (s9 s10))) (s4)))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 (s7 s8) (s9 s10))) (s4)))) (visit @@ -431,18 +2056,23 @@ (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 (s7 s8) (s9 s10))) (s4)))) - (prim-module . #f) + (prim-module + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 (s7 s8) (s9 s10))) (s4)))) (prepare-env . #f) - (tag . #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) (rename-one + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + #s(stx-boundary (s1))) + (tag . #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))) . - #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (enter-check - . - #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + #s(stx-boundary (s1 (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3)))) (visit . #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2))) . #s(stx-boundary (s0 (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) (macro-pre-x @@ -457,13 +2087,11 @@ . #s(stx-boundary (s15 (s8 (s9 s10) (s11 (s3 s12) (s13 s14))) (s9)))) (exit-macro - . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) (s11 (s3 s12) (s13 s14))) - (s9)))) - (return + (s9))) . #s(stx-boundary (s0 @@ -479,6 +2107,11 @@ (s9)))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 (s3 s12) (s13 s14))) + (s9))) . #s(stx-boundary (s0 @@ -505,26 +2138,46 @@ (s10 (s11 s12) (s13 (s5 s14) (s15 s16))) (s11)))) (exit-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 (s5 s14) (s15 s16)))) + (s1 s2 (s11)))) . #s(stx-boundary (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s10 (s11 s12) (s13 (s5 s14) (s15 s16)))) (s1 s2 (s11))))) - (return + (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s10 (s11 s12) (s13 (s5 s14) (s15 s16)))) (s1 s2 (s11))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s10 (s11 s12) (s13 (s5 s14) (s15 s16)))) (s1 s2 (s11))))) + (track-syntax + s0 + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 (s12 s13) (s14 (s6 s15) (s16 s17)))) + (s2 s3 (s12)))) + . + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 (s12 s13) (s14 (s6 s15) (s16 s17)))) + (s2 s3 (s12))))) + (next . #f) (visit . #s(stx-boundary @@ -552,6 +2205,7 @@ (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f)))) . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) (macro-pre-x @@ -562,24 +2216,24 @@ (start . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (macro-post-x #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) . #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (exit-macro . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (rename-one . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (module-pass1-case + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (prim-begin . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (splice #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) #s(stx-boundary (s7 s8 (s9 (s10 s11) (s12 (s2 s13) (s14 s15))))) @@ -587,20 +2241,30 @@ (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (prim-submodule . #f) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-module . #f) + (prim-module . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 #f))) (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (next . #f) (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) @@ -609,34 +2273,26 @@ (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) + (stop/return . #s(stx-boundary (s0 s1))) + (module-pass1-case . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-case . #s(stx-boundary (s0 s1))) (next . #f) (visit . #s(stx-boundary (s0 #f))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 #f))) + (stop/return . #s(stx-boundary (s0 #f))) + (module-pass1-case . #s(stx-boundary (s0 #f))) (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (rename-one . #s(stx-boundary (s0 #f))) - (module-lift-end-loop) (next-group . #f) (next . #f) (next . #f) (visit . #s(stx-boundary (s0 #f))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #f))) + (tag2 #s(stx-boundary (s0 s1 #f)) . #s(stx-boundary (s1 #f))) (enter-prim . #s(stx-boundary (s0 s1 #f))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #f))) + (prim-#%app . #s(stx-boundary (s0 s1 #f))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -645,32 +2301,30 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-list . #s(stx-boundary (s0 (s1 #f)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 #f)))) - (module-lift-end-loop) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #f)))) + (next-group . #f) (next-group . #f) (next . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 (s6 s7) (s8 s9)))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 (s6 s7) (s8 s9))))) . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 (s6 s7) (s8 s9)))))) (macro-pre-x @@ -681,23 +2335,24 @@ (start . #f) (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) . #s(stx-boundary (s9 (s1 s3) (s4 (s5 s6) (s7 s8))))) (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) (resolve . #s(stx-boundary s0)) - (enter-prim + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) (local-post . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) @@ -709,23 +2364,20 @@ . #s(stx-boundary (s10 s11 (s12 (s2 s4) (s5 (s6 s7) (s8 s9)))))) (exit-macro + #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9)))))) . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9))))))) (visit . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9))))))) (resolve . #s(stx-boundary s0)) - (enter-prim + (stop/return . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9))))))) - (prim-stop . #f) - (exit-prim + (module-pass1-case . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9))))))) - (return - . - #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9))))))) - (rename-one + (prim-begin . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 (s6 s7) (s8 s9))))))) (splice @@ -734,69 +2386,3382 @@ (next . #f) (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) (resolve . #s(stx-boundary s0)) - (enter-prim + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (rename-one + (module-pass1-case . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (enter-prim + (prim-define-syntaxes . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (prim-define-syntaxes . #f) (prepare-env . #f) (phase-up . #f) (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) . #s(stx-boundary (s7 (s1) (s2 (s3 s4) (s5 s6))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (prim-lambda . #f) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) (lambda-renames #s(stx-boundary (s0)) - . - #s(stx-boundary ((s1 (s2 s3) (s4 s5))))) - (enter-block . #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) + #s(stx-boundary (s1 (s2 s3) (s4 s5)))) + (enter-block #s(stx-boundary (s0 (s1 s2) (s3 s4)))) (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 s4)))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) + (#s(stx-boundary (s0 (s1 s2) (s3 s4)))) + #s(stx-boundary (s0 (s1 s2) (s3 s4)))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (block->list . #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) - (enter-list . #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 s2) (s3 s4)))) (next . #f) (visit . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)))) + ((let () + (define (first z) z) + (define (ok x) (second x)) + (printf "extra expression\n") + (define (second y) 8) + (ok (first 5))) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s8 #:opaque) + (s2 (s7 s9) 8) + (s5 (s3 5)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s8 #:opaque) + (s2 (s7 s9) 8) + (s5 (s3 5)))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s8 #:opaque) + (s2 (s7 s9) 8) + (s5 (s3 5)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s8 #:opaque) + (s2 (s7 s9) 8) + (s5 (s3 5)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s8 #:opaque) + (s2 (s7 s9) 8) + (s5 (s3 5)))))) + (prim-#%expression + . + #s(stx-boundary + (s0 + (s1 + () + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s8 #:opaque) + (s2 (s7 s9) 8) + (s5 (s3 5)))))) + (visit + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5)))) + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (macro-pre-x + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (macro-post-x + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5)))) + . + #s(stx-boundary + (s9 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (exit-macro + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5)))) + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (visit + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (prim-let-values + . + #s(stx-boundary + (s0 + () + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s7 #:opaque) + (s1 (s6 s8) 8) + (s4 (s2 5))))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s6 #:opaque)) + #s(stx-boundary (s0 (s5 s7) 8)) + #s(stx-boundary (s3 (s1 5)))) + (enter-block + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s6 #:opaque)) + #s(stx-boundary (s0 (s5 s7) 8)) + #s(stx-boundary (s3 (s1 5)))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s6 #:opaque)) + #s(stx-boundary (s0 (s5 s7) 8)) + #s(stx-boundary (s3 (s1 5)))) + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s6 #:opaque)) + #s(stx-boundary (s0 (s5 s7) 8)) + #s(stx-boundary (s3 (s1 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) s2))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1 s3) s3))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s4 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) s2))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + . + #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1 s3) (s4 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 s2)))) + (next . #f) + (visit . #s(stx-boundary (s0 #:opaque))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 #:opaque))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) 8))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) 8)) + . + #s(stx-boundary (s0 (s1 s2) 8))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 (s1 s3) 8))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) + . + #s(stx-boundary (s4 s1 (s2 (s3) 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) 8))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 5)))) + (block->letrec + ((#s(stx-boundary s0)) (#s(stx-boundary s1)) () (#s(stx-boundary s2))) + (#s(stx-boundary (s3 (s4) s4)) + #s(stx-boundary (s3 (s5) (s2 s5))) + #s(stx-boundary (s6 (s7 #:opaque) (s8))) + #s(stx-boundary (s3 (s9) 8))) + #s(stx-boundary (s1 (s0 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) s1))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 s1)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 s0))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2)) + . + #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-list #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 #:opaque) (s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 #:opaque) (s2)))) + (prim-begin . #s(stx-boundary (s0 (s1 #:opaque) (s2)))) + (next . #f) + (visit . #s(stx-boundary (s0 #:opaque))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 + #s(stx-boundary (s0 s1 #:opaque)) + . + #s(stx-boundary (s1 #:opaque))) + (enter-macro + #s(stx-boundary (s0 s1 #:opaque)) + . + #s(stx-boundary (s0 s1 #:opaque))) + (macro-pre-x . #s(stx-boundary (s0 s1 #:opaque))) + (macro-post-x + #s(stx-boundary (s0 s1 #:opaque)) + . + #s(stx-boundary (s0 s1 #:opaque))) + (exit-macro + #s(stx-boundary (s0 s1 #:opaque)) + . + #s(stx-boundary (s0 s1 #:opaque))) + (visit . #s(stx-boundary (s0 s1 #:opaque))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 #:opaque))) + (prim-#%app . #s(stx-boundary (s0 s1 #:opaque))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary #:opaque)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . #:opaque)) . #s(stx-boundary #:opaque)) + (enter-prim . #s(stx-boundary (s0 . #:opaque))) + (prim-#%datum . #s(stx-boundary (s0 . #:opaque))) + (exit-prim/return . #s(stx-boundary (s0 #:opaque))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #:opaque)))) + (next . #f) + (visit . #s(stx-boundary (s0))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1)) . #s(stx-boundary (s1))) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 s2 (s3 #:opaque)) (s1 s4)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) 8))) + (prim-lambda . #s(stx-boundary (s0 (s1) 8))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary 8)) + (enter-block #s(stx-boundary 8)) + (block-renames (#s(stx-boundary 8)) #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (stop/return . #s(stx-boundary 8)) + (block->list . #f) + (enter-list #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) + (enter-prim . #s(stx-boundary (s0 . 8))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (enter-list #s(stx-boundary (s0 (s1 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 (s2 5))) . #s(stx-boundary (s1 (s2 5)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 5)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) + (visit . #s(stx-boundary (s0 s1 (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 5)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 5)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s1 5))) + (enter-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (macro-pre-x . #s(stx-boundary (s0 s1 5))) + (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (exit-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (visit . #s(stx-boundary (s0 s1 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 5))) + (prim-#%app . #s(stx-boundary (s0 s1 5))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 5)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) + (enter-prim . #s(stx-boundary (s0 . 5))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (exit-list #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (finish-block + #s(stx-boundary + (s0 + (((s1) (s2 (s3) s3))) + (s4 + (((s5) (s2 (s6) (s7 s8 s6))) + (() (s9 (s7 s10 (s11 #:opaque)) (s7 s12))) + ((s8) (s2 (s13) (s11 8)))) + (s7 s5 (s7 s1 (s11 5))))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + () + (s0 + (((s1) (s2 (s3) s3))) + (s4 + (((s5) (s2 (s6) (s7 s8 s6))) + (() (s9 (s7 s10 (s11 #:opaque)) (s7 s12))) + ((s8) (s2 (s13) (s11 8)))) + (s7 s5 (s7 s1 (s11 5)))))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 + () + (s1 + (((s2) (s3 (s4) s4))) + (s5 + (((s6) (s3 (s7) (s8 s9 s7))) + (() (s10 (s8 s11 (s12 #:opaque)) (s8 s13))) + ((s9) (s3 (s14) (s12 8)))) + (s8 s6 (s8 s2 (s12 5))))))))))) + ((let () + (define-syntax (ok stx) (quote-syntax 8)) + (define-syntax (second stx) (quote-syntax (ok 6))) + (second 5)) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) + (prim-#%expression + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) + (visit + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5))) + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (macro-pre-x + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (macro-post-x + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5))) + . + #s(stx-boundary + (s6 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (exit-macro + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5))) + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (visit + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (prim-let-values + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s4 5))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s4 5))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s4 5))) + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s2) (s3 (s1 6)))) + #s(stx-boundary (s4 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s5 (s1 s3) (s4 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-syntaxes . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 8)))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s3 (s1) (s2 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 8))) + (prim-quote-syntax . #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 6)))) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6))))) + . + #s(stx-boundary (s6 (s1 s3) (s4 (s5 6))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6))))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (prim-define-syntaxes + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) + (rename-one + (#s(stx-boundary s0)) + #s(stx-boundary (s1 (s2) (s3 (s4 6))))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3 6)))) + . + #s(stx-boundary (s4 (s1) (s2 (s3 6))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 (s2 6)))) + (enter-block #s(stx-boundary (s0 (s1 6)))) + (block-renames + (#s(stx-boundary (s0 (s1 6)))) + #s(stx-boundary (s0 (s1 6)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 6)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 6)))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 6)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 6)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 6)))) + (prim-quote-syntax . #s(stx-boundary (s0 (s1 6)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 6)))) + (exit-list #s(stx-boundary (s0 (s1 6)))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 5)) . #s(stx-boundary (s0 5))) + (macro-pre-x . #s(stx-boundary (s0 5))) + (macro-post-x #s(stx-boundary (s0 6)) . #s(stx-boundary (s1 5))) + (exit-macro #s(stx-boundary (s0 6)) . #s(stx-boundary (s0 6))) + (visit . #s(stx-boundary (s0 6))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 6)) . #s(stx-boundary (s0 6))) + (macro-pre-x . #s(stx-boundary (s0 6))) + (macro-post-x #s(stx-boundary 8) . #s(stx-boundary (s0 6))) + (exit-macro #s(stx-boundary 8) . #s(stx-boundary 8)) + (visit . #s(stx-boundary 8)) + (stop/return . #s(stx-boundary 8)) + (block->letrec () () #s(stx-boundary 8)) + (enter-list #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) + (enter-prim . #s(stx-boundary (s0 . 8))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (finish-block #s(stx-boundary (s0 () (s1 8)))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () (s1 8))))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () (s2 8)))))))) + ((module m racket/base 'done) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (visit . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (visit . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (prim-module . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1))) + (track-syntax s0 #s(stx-boundary (s1 s2)) . #s(stx-boundary (s1 s2))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (tag . #s(stx-boundary (s0 (s1 s2)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3))) + . + #s(stx-boundary (s1 (s2 s3)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2))) + . + #s(stx-boundary (s0 (s1 s2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2)))) + (macro-post-x + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8))) + . + #s(stx-boundary (s9 (s3 s8)))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + (macro-pre-x + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + (macro-post-x + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10)))) + . + #s(stx-boundary (s11 (s3 s4 (s5 s6) (s7 s8) (s9 #f)) (s5 s10)))) + (exit-macro + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10)))) + . + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (visit + . + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (track-syntax + s0 + #s(stx-boundary + (s1 (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) (s2 s3 (s6 s11)))) + . + #s(stx-boundary + (s1 (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) (s2 s3 (s6 s11))))) + (next . #f) + (visit + . + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (prim-module-begin . #f) + (rename-one + . + #s(stx-boundary + (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f)))) + . + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) + (macro-pre-x + . + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) + (enter-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (local-pre . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (start . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (macro-post-x + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (module-pass1-case + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (prim-begin . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (splice + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) + #s(stx-boundary (s7 s8 (s2 s9)))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-module . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 #f))) + (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (prim-module-begin . #f) + (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (module-pass1-case . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-case . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 #f))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 #f))) + (module-pass1-case . #s(stx-boundary (s0 #f))) + (prim-stop . #f) + (next-group . #f) + (next . #f) + (next . #f) + (visit . #s(stx-boundary (s0 #f))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 #f)) . #s(stx-boundary (s1 #f))) + (enter-prim . #s(stx-boundary (s0 s1 #f))) + (prim-#%app . #s(stx-boundary (s0 s1 #f))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary #f)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) + (enter-prim . #s(stx-boundary (s0 . #f))) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #f)))) + (next-group . #f) + (next-group . #f) + (next . #f) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) + (rename-one + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) + (exit-prim + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) + (enter-local . #s(stx-boundary (s0 s1))) + (local-pre . #s(stx-boundary (s0 s1))) + (start . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (local-post . #s(stx-boundary (s0 s1))) + (exit-local . #s(stx-boundary (s0 s1))) + (macro-post-x + #s(stx-boundary (s0 (s1 (s2 s3)))) + . + #s(stx-boundary (s4 s1 (s2 s3)))) + (exit-macro + #s(stx-boundary (s0 (s1 (s2 s3)))) + . + #s(stx-boundary (s0 (s1 (s2 s3))))) + (visit . #s(stx-boundary (s0 (s1 (s2 s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2 s3))))) + (module-pass1-case . #s(stx-boundary (s0 (s1 (s2 s3))))) + (prim-begin . #s(stx-boundary (s0 (s1 (s2 s3))))) + (splice #s(stx-boundary (s0 (s1 s2)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2))) + . + #s(stx-boundary (s0 (s1 s2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5)) + . + #s(stx-boundary (s6 (s3 s4)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5)) + . + #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (visit . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (prim-stop . #f) + (next-group . #f) + (next . #f) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 () (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () (s1 s2)))) + (prim-lambda . #s(stx-boundary (s0 () (s1 s2)))) + (lambda-renames #s(stx-boundary ()) #s(stx-boundary (s0 s1))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (exit-list #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 () (s1 s2)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) + (next-group . #f) + (next-group . #f) + (next . #f) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) + (s7 s9 (s10 () (s3 s11)) s12)))) + (rename-one + . + #s(stx-boundary + (s0 + s1 + s2 + (s3 + (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) + (s9 s11 (s12 () (s5 s13)) s14))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + s1 + s2 + (s3 + (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) + (s9 s11 (s12 () (s5 s13)) s14))))))) + ((let () + (define-syntax (ok stx) + (local-expand (cadr (syntax-e stx)) 'expression #f)) + (ok 9)) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) + (prim-#%expression + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) + (visit + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9))) + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (macro-pre-x + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (macro-post-x + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9))) + . + #s(stx-boundary + (s9 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (exit-macro + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9))) + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (visit + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (prim-let-values + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f))) + #s(stx-boundary (s1 9))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f))) + #s(stx-boundary (s1 9))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f))) + #s(stx-boundary (s1 9))) + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f))) + #s(stx-boundary (s1 9))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f))) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) + (macro-pre-x + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) + . + #s(stx-boundary (s9 (s1 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) + (visit + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) + (prim-define-syntaxes + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) + (rename-one + (#s(stx-boundary s0)) + #s(stx-boundary (s1 (s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f))) + . + #s(stx-boundary (s7 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) + (lambda-renames + #s(stx-boundary (s0)) + #s(stx-boundary (s1 (s2 (s3 s0)) (s4 s5) #f))) + (enter-block #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (block-renames + (#s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f)) + . + #s(stx-boundary (s1 (s2 (s3 s4)) (s5 s6) #f))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f)) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f)) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f)) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 (s2 s3))) . #s(stx-boundary (s1 (s2 s3)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 s3)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 s3)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2)) + . + #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 s3)))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary #f)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) + (enter-prim . #s(stx-boundary (s0 . #f))) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return + . + #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4)) (s5 s6) (s5 #f)))) + (exit-list #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4)) (s5 s6) (s5 #f)))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1) (s2 s3 (s2 s4 (s2 s5 s1)) (s6 s7) (s6 #f))))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0 9))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 9)) . #s(stx-boundary (s0 9))) + (macro-pre-x . #s(stx-boundary (s0 9))) + (enter-local . #s(stx-boundary 9)) + (local-pre . #s(stx-boundary 9)) + (visit . #s(stx-boundary 9)) + (stop/return . #s(stx-boundary 9)) + (local-post . #s(stx-boundary 9)) + (exit-local . #s(stx-boundary 9)) + (macro-post-x #s(stx-boundary 9) . #s(stx-boundary (s0 9))) + (exit-macro #s(stx-boundary 9) . #s(stx-boundary 9)) + (visit . #s(stx-boundary 9)) + (stop/return . #s(stx-boundary 9)) + (block->letrec () () #s(stx-boundary 9)) + (enter-list #s(stx-boundary 9)) + (next . #f) + (visit . #s(stx-boundary 9)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 9)) . #s(stx-boundary 9)) + (enter-prim . #s(stx-boundary (s0 . 9))) + (prim-#%datum . #s(stx-boundary (s0 . 9))) + (exit-prim/return . #s(stx-boundary (s0 9))) + (exit-list #s(stx-boundary (s0 9))) + (finish-block #s(stx-boundary (s0 () (s1 9)))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () (s1 9))))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () (s2 9)))))))) + ((let () (define (ok x) '8) (define (second y) (ok y)) (second 5)) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) + (prim-#%expression + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) + (visit + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5))) + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (macro-pre-x + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (macro-post-x + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5))) + . + #s(stx-boundary + (s7 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (exit-macro + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5))) + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (visit + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (prim-let-values + . + #s(stx-boundary + (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s5) (s1 s5))) + #s(stx-boundary (s4 5))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s5) (s1 s5))) + #s(stx-boundary (s4 5))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s5) (s1 s5))) + #s(stx-boundary (s4 5))) + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s0 (s4 s5) (s1 s5))) + #s(stx-boundary (s4 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1 s3) (s4 8)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s5 s1 (s2 (s3) (s4 8))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 8)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + . + #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1 s3) (s4 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 s2)))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 5))) + (block->letrec + ((#s(stx-boundary s0)) (#s(stx-boundary s1))) + (#s(stx-boundary (s2 (s3) (s4 8))) #s(stx-boundary (s2 (s5) (s0 s5)))) + #s(stx-boundary (s1 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 8))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 s1)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 s0))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2)) + . + #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-list #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) + (enter-list #s(stx-boundary (s0 5))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s1 5))) + (enter-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (macro-pre-x . #s(stx-boundary (s0 s1 5))) + (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (exit-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (visit . #s(stx-boundary (s0 s1 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 5))) + (prim-#%app . #s(stx-boundary (s0 s1 5))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 5)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) + (enter-prim . #s(stx-boundary (s0 . 5))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-list #s(stx-boundary (s0 s1 (s2 5)))) + (finish-block + #s(stx-boundary + (s0 + (((s1) (s2 (s3) (s4 8)))) + (s0 (((s5) (s2 (s6) (s7 s1 s6)))) (s7 s5 (s4 5)))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + () + (s0 + (((s1) (s2 (s3) (s4 8)))) + (s0 (((s5) (s2 (s6) (s7 s1 s6)))) (s7 s5 (s4 5))))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 + () + (s1 + (((s2) (s3 (s4) (s5 8)))) + (s1 (((s6) (s3 (s7) (s8 s2 s7)))) (s8 s6 (s5 5)))))))))) + ((case-lambda ((x) x) ((x y) (+ x y))) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) + (visit . #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) + (visit . #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) + (visit . #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s1 s2))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s1 s2))))) + (prim-case-lambda + . + #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s1 s2))))) + (next . #f) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (next . #f) + (lambda-renames #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 s0 s1))) + (enter-block #s(stx-boundary (s0 s1 s2))) + (block-renames + (#s(stx-boundary (s0 s1 s2))) + #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 s2))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2 s3)) . #s(stx-boundary (s1 s2 s3))) + (enter-macro + #s(stx-boundary (s0 s1 s2 s3)) + . + #s(stx-boundary (s0 s1 s2 s3))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2 s3))) + (macro-post-x + #s(stx-boundary (s0 s1 s2 s3)) + . + #s(stx-boundary (s0 s1 s2 s3))) + (exit-macro + #s(stx-boundary (s0 s1 s2 s3)) + . + #s(stx-boundary (s0 s1 s2 s3))) + (visit . #s(stx-boundary (s0 s1 s2 s3))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2 s3))) + (prim-#%app . #s(stx-boundary (s0 s1 s2 s3))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2 s3))) + (exit-list #s(stx-boundary (s0 s1 s2 s3))) + (exit-prim/return + . + #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s4 s1 s2))))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s5 s2 s3)))))))) + ((let () (define (ok x) (second x)) (define (second y) 8) (ok 5)) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) + (visit + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) + (prim-#%expression + . + #s(stx-boundary + (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) + (visit + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (macro-pre-x + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (macro-post-x + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5))) + . + #s(stx-boundary (s6 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (visit + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (prim-let-values + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + #s(stx-boundary (s0 (s3 s4) 8)) + #s(stx-boundary (s1 5))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + #s(stx-boundary (s0 (s3 s4) 8)) + #s(stx-boundary (s1 5))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 s2))) + #s(stx-boundary (s0 (s3 s4) 8)) + #s(stx-boundary (s1 5))) + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + #s(stx-boundary (s0 (s3 s4) 8)) + #s(stx-boundary (s1 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + . + #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1 s3) (s4 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 s2)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) 8))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) 8)) + . + #s(stx-boundary (s0 (s1 s2) 8))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 (s1 s3) 8))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) + . + #s(stx-boundary (s4 s1 (s2 (s3) 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) 8))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 5))) + (block->letrec + ((#s(stx-boundary s0)) (#s(stx-boundary s1))) + (#s(stx-boundary (s2 (s3) (s1 s3))) #s(stx-boundary (s2 (s4) 8))) + #s(stx-boundary (s0 5))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 s1)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 s0))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2)) + . + #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-list #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) 8))) + (prim-lambda . #s(stx-boundary (s0 (s1) 8))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary 8)) + (enter-block #s(stx-boundary 8)) + (block-renames (#s(stx-boundary 8)) #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (stop/return . #s(stx-boundary 8)) + (block->list . #f) + (enter-list #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) + (enter-prim . #s(stx-boundary (s0 . 8))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (enter-list #s(stx-boundary (s0 5))) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s1 5))) + (enter-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (macro-pre-x . #s(stx-boundary (s0 s1 5))) + (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (exit-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (visit . #s(stx-boundary (s0 s1 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 5))) + (prim-#%app . #s(stx-boundary (s0 s1 5))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 5)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) + (enter-prim . #s(stx-boundary (s0 . 5))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-list #s(stx-boundary (s0 s1 (s2 5)))) + (finish-block + #s(stx-boundary + (s0 + (((s1) (s2 (s3) (s4 s5 s3))) ((s5) (s2 (s6) (s7 8)))) + (s4 s1 (s7 5))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + () + (s1 + (((s2) (s3 (s4) (s5 s6 s4))) ((s6) (s3 (s7) (s8 8)))) + (s5 s2 (s8 5)))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 + () + (s2 + (((s3) (s4 (s5) (s6 s7 s5))) ((s7) (s4 (s8) (s9 8)))) + (s6 s3 (s9 5))))))))) + ((#%stratified-body + (define (first z) z) + (define (ok x) (second x)) + (define (second y) 8) + (ok (first 5))) + . + ((start-top . #f) + (visit + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)))))) + (prim-#%expression + . + #s(stx-boundary + (s0 + (s1 + (s2 (s3 s4) s4) + (s2 (s5 s6) (s7 s6)) + (s2 (s7 s8) 8) + (s5 (s3 5)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s1 (s6 s7) 8) + (s4 (s2 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s1 (s6 s7) 8) + (s4 (s2 5))))) + (prim-#%stratified + . + #s(stx-boundary + (s0 + (s1 (s2 s3) s3) + (s1 (s4 s5) (s6 s5)) + (s1 (s6 s7) 8) + (s4 (s2 5))))) + (enter-block + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s0 (s5 s6) 8)) + #s(stx-boundary (s3 (s1 5)))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s0 (s5 s6) 8)) + #s(stx-boundary (s3 (s1 5)))) + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s0 (s3 s4) (s5 s4))) + #s(stx-boundary (s0 (s5 s6) 8)) + #s(stx-boundary (s3 (s1 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) s2))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1 s3) s3))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s4 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) s2))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 s2))) + . + #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1 s3) (s4 s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 s2)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) 8))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) 8)) + . + #s(stx-boundary (s0 (s1 s2) 8))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 (s1 s3) 8))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) 8))) + . + #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) + . + #s(stx-boundary (s4 s1 (s2 (s3) 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) 8))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) 8))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 5)))) + (block->letrec + ((#s(stx-boundary s0)) (#s(stx-boundary s1)) (#s(stx-boundary s2))) + (#s(stx-boundary (s3 (s4) s4)) + #s(stx-boundary (s3 (s5) (s2 s5))) + #s(stx-boundary (s3 (s6) 8))) + #s(stx-boundary (s7 (s1 (s0 5))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) s1))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 s1)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 s0))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (macro-post-x + #s(stx-boundary (s0 s1 s2)) + . + #s(stx-boundary (s0 s1 s2))) + (exit-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-list #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) 8))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) 8))) + (prim-lambda . #s(stx-boundary (s0 (s1) 8))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary 8)) + (enter-block #s(stx-boundary 8)) + (block-renames (#s(stx-boundary 8)) #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (stop/return . #s(stx-boundary 8)) + (block->list . #f) + (enter-list #s(stx-boundary 8)) + (next . #f) + (visit . #s(stx-boundary 8)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 8)) . #s(stx-boundary 8)) + (enter-prim . #s(stx-boundary (s0 . 8))) + (prim-#%datum . #s(stx-boundary (s0 . 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) + (enter-list #s(stx-boundary (s0 (s1 (s2 5))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 5))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 (s2 5))))) + (prim-#%stratified . #s(stx-boundary (s0 (s1 (s2 5))))) + (enter-block #s(stx-boundary (s0 (s1 5)))) + (block-renames + (#s(stx-boundary (s0 (s1 5)))) + #s(stx-boundary (s0 (s1 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 5)))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 5)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 5)))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 (s2 5))) . #s(stx-boundary (s1 (s2 5)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 5)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 5))) + . + #s(stx-boundary (s0 s1 (s2 5)))) + (visit . #s(stx-boundary (s0 s1 (s2 5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 5)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 5)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 5))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s1 5))) + (enter-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (macro-pre-x . #s(stx-boundary (s0 s1 5))) + (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (exit-macro #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) + (visit . #s(stx-boundary (s0 s1 5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 5))) + (prim-#%app . #s(stx-boundary (s0 s1 5))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 5)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) + (enter-prim . #s(stx-boundary (s0 . 5))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 5)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (exit-list #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (exit-list #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) + (finish-block + #s(stx-boundary + (s0 + (((s1) (s2 (s3) s3)) + ((s4) (s2 (s5) (s6 s7 s5))) + ((s7) (s2 (s8) (s9 8)))) + (s6 s4 (s6 s1 (s9 5)))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (((s1) (s2 (s3) s3)) + ((s4) (s2 (s5) (s6 s7 s5))) + ((s7) (s2 (s8) (s9 8)))) + (s6 s4 (s6 s1 (s9 5)))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 + (((s2) (s3 (s4) s4)) + ((s5) (s3 (s6) (s7 s8 s6))) + ((s8) (s3 (s9) (s10 8)))) + (s7 s5 (s7 s2 (s10 5))))))))) + ((set! __x 99) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 s2 99)))) + (visit . #s(stx-boundary (s0 (s1 s2 99)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 99)))) + (visit . #s(stx-boundary (s0 (s1 s2 99)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2 99)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 s2 99)))) + (visit . #s(stx-boundary (s0 s1 99))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 99))) + (prim-set! . #s(stx-boundary (s0 s1 99))) + (resolve . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 99)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 99)) . #s(stx-boundary 99)) + (enter-prim . #s(stx-boundary (s0 . 99))) + (prim-#%datum . #s(stx-boundary (s0 . 99))) + (exit-prim/return . #s(stx-boundary (s0 99))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 99)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2 (s3 99))))))) + ((let () + (define-syntax (lift stx) (syntax-local-lift-expression #'(+ 1 2))) + (lift)) + . + ((start-top . #f) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) + (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (macro-pre-x + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (macro-post-x + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2))) + . + #s(stx-boundary (s7 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (prim-let-values + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2))))) + #s(stx-boundary (s1))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2))))) + #s(stx-boundary (s1))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2))))) + #s(stx-boundary (s1))) + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2))))) + #s(stx-boundary (s1))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2))))) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2)))))) + . + #s(stx-boundary (s7 (s1 s3) (s4 (s5 (s6 1 2)))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2)))))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) + (prim-define-syntaxes + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) + (rename-one + (#s(stx-boundary s0)) + #s(stx-boundary (s1 (s2) (s3 (s4 (s5 1 2)))))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2))))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2))))) + . + #s(stx-boundary (s5 (s1) (s2 (s3 (s4 1 2)))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2))))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) + (lambda-renames + #s(stx-boundary (s0)) + #s(stx-boundary (s1 (s2 (s3 1 2))))) + (enter-block #s(stx-boundary (s0 (s1 (s2 1 2))))) + (block-renames + (#s(stx-boundary (s0 (s1 (s2 1 2))))) + #s(stx-boundary (s0 (s1 (s2 1 2))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 1 2))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2 1 2))))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 (s2 1 2))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 (s2 1 2))))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 + #s(stx-boundary (s0 s1 (s2 (s3 1 2)))) + . + #s(stx-boundary (s1 (s2 (s3 1 2))))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 1 2)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3 1 2)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3 1 2)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 1 2)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 1 2))) + . + #s(stx-boundary (s0 (s1 1 2)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 1 2)))) + (local-value . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (local-value-result . #f) + (local-value . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (local-value-result . #f) + (local-value . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (local-value-result . #f) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 1 2))) + . + #s(stx-boundary (s1 (s2 1 2)))) + (macro-post-x + #s(stx-boundary (s0 (s1 1 2))) + . + #s(stx-boundary (s2 (s1 1 2)))) + (exit-macro + #s(stx-boundary (s0 (s1 1 2))) + . + #s(stx-boundary (s0 (s1 1 2)))) + (visit . #s(stx-boundary (s0 (s1 1 2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 1 2)))) + (prim-quote-syntax . #s(stx-boundary (s0 (s1 1 2)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 1 2)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (exit-list #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 (s4 (s5 1 2)))))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (macro-pre-x . #s(stx-boundary (s0))) + (lift-expr + (#s(stx-boundary s0)) + #s(stx-boundary (s1 1 2)) + . + #s(stx-boundary (s1 1 2))) + (macro-post-x #s(stx-boundary s0) . #s(stx-boundary (s1))) + (exit-macro #s(stx-boundary s0) . #s(stx-boundary s0)) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->letrec () () #s(stx-boundary s0)) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (finish-block #s(stx-boundary (s0 () s1))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () s1)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (lift-loop + . + #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) + (visit + . + #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) + (prim-begin + . + #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 1 2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 1 2)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 1 2)))) + (visit . #s(stx-boundary (s0 1 2))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 1 2)) . #s(stx-boundary (s1 1 2))) + (enter-macro + #s(stx-boundary (s0 s1 1 2)) + . + #s(stx-boundary (s0 s1 1 2))) + (macro-pre-x . #s(stx-boundary (s0 s1 1 2))) + (macro-post-x + #s(stx-boundary (s0 s1 1 2)) + . + #s(stx-boundary (s0 s1 1 2))) + (exit-macro + #s(stx-boundary (s0 s1 1 2)) + . + #s(stx-boundary (s0 s1 1 2))) + (visit . #s(stx-boundary (s0 s1 1 2))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 1 2))) + (prim-#%app . #s(stx-boundary (s0 s1 1 2))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 1)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 1)) . #s(stx-boundary 1)) + (enter-prim . #s(stx-boundary (s0 . 1))) + (prim-#%datum . #s(stx-boundary (s0 . 1))) + (exit-prim/return . #s(stx-boundary (s0 1))) + (next . #f) + (visit . #s(stx-boundary 2)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 2)) . #s(stx-boundary 2)) + (enter-prim . #s(stx-boundary (s0 . 2))) + (prim-#%datum . #s(stx-boundary (s0 . 2))) + (exit-prim/return . #s(stx-boundary (s0 2))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 1) (s2 2)))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 (s4 1) (s4 2))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (prim-#%expression . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (visit . #s(stx-boundary (s0 () (s0 () s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () (s0 () s1)))) + (prim-let-values . #s(stx-boundary (s0 () (s0 () s1)))) + (letX-renames () () () () #s(stx-boundary (s0 () s1))) + (enter-block #s(stx-boundary (s0 () s1))) + (block-renames + (#s(stx-boundary (s0 () s1))) + #s(stx-boundary (s0 () s1))) + (next . #f) + (visit . #s(stx-boundary (s0 () s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 () s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 () s1))) + (next . #f) + (visit . #s(stx-boundary (s0 () s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () s1))) + (prim-let-values . #s(stx-boundary (s0 () s1))) + (letX-renames () () () () #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 () s1))) + (exit-list #s(stx-boundary (s0 () s1))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () s1)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (exit-prim/return + . + #s(stx-boundary + (s0 (s1 (s2) (s3 s4 (s5 1) (s5 2))) (s6 (s7 () (s7 () s2)))))))) + ((letrec-values (((x) __y) ((y z) __w)) __x) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) + (visit . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) + (prim-letrec-values + . + #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) + (letX-renames + () + () + ((#s(stx-boundary s0)) (#s(stx-boundary s1) #s(stx-boundary s2))) + (#s(stx-boundary s3) #s(stx-boundary s4)) + #s(stx-boundary s5)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) + (enter-prim . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (exit-list #s(stx-boundary (s0 . s1))) + (exit-prim/return + . + #s(stx-boundary + (s0 (((s1) (s2 . s3)) ((s4 s5) (s2 . s6))) (s2 . s7)))) + (exit-prim/return + . + #s(stx-boundary + (s0 (s1 (((s2) (s3 . s4)) ((s5 s6) (s3 . s7))) (s3 . s8))))))) + ((module m racket/base (require racket/list) foldl) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) + (visit . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) + (visit . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) + (prim-module . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) + (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1)) #s(stx-boundary s2)) + (tag . #s(stx-boundary (s0 (s1 s2) s3))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) s4)) + . + #s(stx-boundary (s1 (s2 s3) s4))) + (visit . #s(stx-boundary (s0 (s1 s2) s3))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s3)) + . + #s(stx-boundary (s0 (s1 s2) s3))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s3))) + (macro-post-x + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10)) + . + #s(stx-boundary (s11 (s8 s9) s10))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10)) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) + (visit + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10)) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) + (macro-pre-x + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) + (macro-post-x + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12))) + . + #s(stx-boundary (s13 (s3 s4 (s5 s6) (s7 s8) (s9 #f)) (s10 s11) s12))) + (exit-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12))) + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12)))) + (visit + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12)))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12)))) + (track-syntax + s0 + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 s12)) + (s2 s3 s13))) + . + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 s12)) + (s2 s3 s13)))) + (next . #f) + (visit + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12)))) + (prim-module-begin . #f) + (rename-one + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 s11)) + (s1 s2 s12)))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f)))) + . + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) + (macro-pre-x + . + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) + (enter-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (local-pre . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (start . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (macro-post-x + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (module-pass1-case + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (prim-begin . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (splice + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) + #s(stx-boundary (s7 s8 (s9 s10))) + #s(stx-boundary (s7 s8 s11))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-module . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 #f))) + (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (prim-module-begin . #f) + (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (module-pass1-case . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-case . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 #f))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 #f))) + (module-pass1-case . #s(stx-boundary (s0 #f))) + (prim-stop . #f) + (next-group . #f) + (next . #f) + (next . #f) + (visit . #s(stx-boundary (s0 #f))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 #f)) . #s(stx-boundary (s1 #f))) + (enter-prim . #s(stx-boundary (s0 s1 #f))) + (prim-#%app . #s(stx-boundary (s0 s1 #f))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary #f)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) + (enter-prim . #s(stx-boundary (s0 . #f))) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #f)))) + (next-group . #f) + (next-group . #f) + (next . #f) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) + (rename-one + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) + (exit-prim + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 s3)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) + (enter-local . #s(stx-boundary (s0 s1))) + (local-pre . #s(stx-boundary (s0 s1))) + (start . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) + (macro-pre-x . #s(stx-boundary (s0 s1))) + (macro-post-x #s(stx-boundary (s0 s1)) . #s(stx-boundary (s2 s1))) + (exit-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (local-post . #s(stx-boundary (s0 s1))) + (exit-local . #s(stx-boundary (s0 s1))) + (macro-post-x + #s(stx-boundary (s0 (s1 s2))) + . + #s(stx-boundary (s3 s4 (s5 s2)))) + (exit-macro + #s(stx-boundary (s0 (s1 s2))) + . + #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2)))) + (module-pass1-case . #s(stx-boundary (s0 (s1 s2)))) + (prim-begin . #s(stx-boundary (s0 (s1 s2)))) + (splice #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 s3 s4))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (module-pass1-case . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-case . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1 s2))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) + (macro-pre-x . #s(stx-boundary (s0 s1 s2))) + (enter-local . #s(stx-boundary s0)) + (local-pre . #s(stx-boundary s0)) + (start . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (local-post . #s(stx-boundary s0)) + (exit-local . #s(stx-boundary s0)) + (macro-post-x + #s(stx-boundary (s0 (s1 s2))) + . + #s(stx-boundary (s3 s1 s2))) + (exit-macro + #s(stx-boundary (s0 (s1 s2))) + . + #s(stx-boundary (s0 (s1 s2)))) + (visit . #s(stx-boundary (s0 (s1 s2)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2)))) + (module-pass1-case . #s(stx-boundary (s0 (s1 s2)))) + (prim-begin . #s(stx-boundary (s0 (s1 s2)))) + (splice #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) + (macro-pre-x . #s(stx-boundary (s0 s1))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 () s3) s4)) + . + #s(stx-boundary (s5 s3))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 () s3) s4)) + . + #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (visit . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (prim-stop . #f) + (next-group . #f) + (next . #f) + (next . #f) + (next . #f) + (visit . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 () s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () s1))) + (prim-lambda . #s(stx-boundary (s0 () s1))) + (lambda-renames #s(stx-boundary ()) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 () s1))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 () s3) s4))) + (next-group . #f) + (next-group . #f) + (next . #f) + (next . #f) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (next . #f) + (exit-prim/return + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) + (s5 s9) + (s7 s10 (s11 () s12) s13)))) + (rename-one + . + #s(stx-boundary + (s0 + s1 + s2 + (s3 + (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) + (s7 s11) + (s9 s12 (s13 () s14) s15))))) + (exit-prim/return + . + #s(stx-boundary + (s0 + s1 + s2 + (s3 + (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) + (s7 s11) + (s9 s12 (s13 () s14) s15))))))) ((module m racket/base (define (proc x) x) (provide proc)) . ((start-top . #f) (visit . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) - (enter-check . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) - (exit-check . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) + (visit . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) (visit . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) - (prim-module . #f) + (prim-module . #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) s5) (s6 s4)))) (prepare-env . #f) + (rename-one #s(stx-boundary (s0 (s1 s2) s2)) #s(stx-boundary (s3 s1))) (tag . #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) - (rename-one . #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) - (enter-check . #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 (s3 s4) s4) (s5 s3))) + . + #s(stx-boundary (s1 (s2 (s3 s4) s4) (s5 s3)))) (visit . #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) + (enter-macro + #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2))) + . + #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) (macro-pre-x . #s(stx-boundary (s0 (s1 (s2 s3) s3) (s4 s2)))) (macro-post-x #s(stx-boundary @@ -804,10 +5769,8 @@ . #s(stx-boundary (s12 (s8 (s9 s10) s10) (s11 s9)))) (exit-macro - . #s(stx-boundary - (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) s10) (s11 s9)))) - (return + (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) s10) (s11 s9))) . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) s10) (s11 s9)))) @@ -817,6 +5780,8 @@ (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) s10) (s11 s9)))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) s10) (s11 s9))) . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 (s9 s10) s10) (s11 s9)))) @@ -837,26 +5802,46 @@ (s10 (s11 s12) s12) (s13 s11)))) (exit-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) s12)) + (s1 s2 (s13 s11)))) . #s(stx-boundary (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s10 (s11 s12) s12)) (s1 s2 (s13 s11))))) - (return + (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s10 (s11 s12) s12)) (s1 s2 (s13 s11))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s10 (s11 s12) s12)) (s1 s2 (s13 s11))))) + (track-syntax + s0 + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 (s12 s13) s13)) + (s2 s3 (s14 s12)))) + . + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 (s12 s13) s13)) + (s2 s3 (s14 s12))))) + (next . #f) (visit . #s(stx-boundary @@ -884,6 +5869,7 @@ (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f)))) . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) (macro-pre-x @@ -894,24 +5880,24 @@ (start . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (macro-post-x #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) . #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (exit-macro . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (rename-one . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (module-pass1-case + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (prim-begin . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (splice #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) #s(stx-boundary (s7 s8 (s9 (s10 s11) s11))) @@ -919,20 +5905,30 @@ (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (prim-submodule . #f) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-module . #f) + (prim-module . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 #f))) (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (next . #f) (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) @@ -941,34 +5937,26 @@ (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) + (stop/return . #s(stx-boundary (s0 s1))) + (module-pass1-case . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-case . #s(stx-boundary (s0 s1))) (next . #f) (visit . #s(stx-boundary (s0 #f))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 #f))) + (stop/return . #s(stx-boundary (s0 #f))) + (module-pass1-case . #s(stx-boundary (s0 #f))) (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (rename-one . #s(stx-boundary (s0 #f))) - (module-lift-end-loop) (next-group . #f) (next . #f) (next . #f) (visit . #s(stx-boundary (s0 #f))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #f))) + (tag2 #s(stx-boundary (s0 s1 #f)) . #s(stx-boundary (s1 #f))) (enter-prim . #s(stx-boundary (s0 s1 #f))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #f))) + (prim-#%app . #s(stx-boundary (s0 s1 #f))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -977,191 +5965,194 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-list . #s(stx-boundary (s0 (s1 #f)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 #f)))) - (module-lift-end-loop) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #f)))) + (next-group . #f) (next-group . #f) (next . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4) s4)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4) s4)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4) s4))) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4) s4)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4) s4)))) (enter-local . #s(stx-boundary (s0 (s1 s2) s2))) (local-pre . #s(stx-boundary (s0 (s1 s2) s2))) (start . #f) (visit . #s(stx-boundary (s0 (s1 s2) s2))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) (macro-post-x #s(stx-boundary (s0 s1 (s2 (s3) s3))) . #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3) s3))) . #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) (local-post . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) (exit-local . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) (macro-post-x #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4)))) . #s(stx-boundary (s5 s6 (s7 (s2 s4) s4)))) - (exit-macro . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) + (exit-macro + #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4)))) + . + #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) (visit . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) - (return . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) - (rename-one . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) + (stop/return . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) + (module-pass1-case . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) + (prim-begin . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) s4))))) (splice #s(stx-boundary (s0 (s1) (s2 (s3) s3))) #s(stx-boundary (s4 s5 (s6 s1)))) (next . #f) (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (rename-one . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (module-pass1-case . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (exit-case + #s(stx-boundary s0) + (#s(stx-boundary s1)) + #s(stx-boundary (s2 (s3) s3))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3))) + . + #s(stx-boundary (s0 s1 (s2 s3)))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) (enter-local . #s(stx-boundary (s0 s1))) (local-pre . #s(stx-boundary (s0 s1))) (start . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1))) + (enter-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) (macro-pre-x . #s(stx-boundary (s0 s1))) (macro-post-x #s(stx-boundary (s0 (s1 (s2 s3)))) . #s(stx-boundary (s4 s3))) - (exit-macro . #s(stx-boundary (s0 (s1 (s2 s3))))) + (exit-macro + #s(stx-boundary (s0 (s1 (s2 s3)))) + . + #s(stx-boundary (s0 (s1 (s2 s3))))) (visit . #s(stx-boundary (s0 (s1 (s2 s3))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) - (return . #s(stx-boundary (s0 (s1 (s2 s3))))) + (stop/return . #s(stx-boundary (s0 (s1 (s2 s3))))) (local-post . #s(stx-boundary (s0 (s1 (s2 s3))))) (exit-local . #s(stx-boundary (s0 (s1 (s2 s3))))) (macro-post-x #s(stx-boundary (s0 (s1 (s2 (s3 s4))))) . #s(stx-boundary (s5 s6 (s7 s4)))) - (exit-macro . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) + (exit-macro + #s(stx-boundary (s0 (s1 (s2 (s3 s4))))) + . + #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) (visit . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) - (return . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) - (rename-one . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) + (stop/return . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) + (module-pass1-case . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) + (prim-begin . #s(stx-boundary (s0 (s1 (s2 (s3 s4)))))) (splice #s(stx-boundary (s0 (s1 (s2 s3))))) (next . #f) (visit . #s(stx-boundary (s0 (s1 (s2 s3))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) + (stop/return . #s(stx-boundary (s0 (s1 (s2 s3))))) + (module-pass1-case . #s(stx-boundary (s0 (s1 (s2 s3))))) (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) - (return . #s(stx-boundary (s0 (s1 (s2 s3))))) - (rename-one . #s(stx-boundary (s0 (s1 (s2 s3))))) - (module-lift-end-loop) (next-group . #f) (next . #f) (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #f) + (enter-prim . #f) (prim-define-values . #f) (visit . #s(stx-boundary (s0 (s1) s1))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) + (exit-prim/return . #f) (next . #f) - (module-lift-end-loop) (next-group . #f) + (next-group . #f) + (next . #f) + (next . #f) (enter-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) - (prim-provide . #f) + (prim-provide . #s(stx-boundary (s0 (s1 (s2 s3))))) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1))) + (enter-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) (macro-pre-x . #s(stx-boundary (s0 s1))) (macro-post-x #s(stx-boundary (s0 s1)) . #s(stx-boundary (s2 s1))) - (exit-macro . #s(stx-boundary (s0 s1))) + (exit-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) + (stop/return . #s(stx-boundary (s0 s1))) (exit-prim . #s(stx-boundary (s0 s1))) + (next-group . #f) (next . #f) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) - (s9 (s10) (s11 (s12) s12)) - (s13 s10)))) - (return + (next . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 @@ -1178,17 +6169,7 @@ (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) (s11 (s12) (s13 (s14) s14)) (s15 s12))))) - (exit-prim - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s11 (s12) (s13 (s14) s14)) - (s15 s12))))) - (return + (exit-prim/return . #s(stx-boundary (s0 @@ -1198,79 +6179,510 @@ (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) (s11 (s12) (s13 (s14) s14)) (s15 s12))))))) - ((module m racket/base 'done) + ((let () + (define-syntax (lift stx) + (syntax-local-lift-require 'racket/list #'foldl)) + (lift)) . ((start-top . #f) - (visit . #s(stx-boundary (s0 s1 s2 (s3 s4)))) - (enter-check . #s(stx-boundary (s0 s1 s2 (s3 s4)))) - (exit-check . #s(stx-boundary (s0 s1 s2 (s3 s4)))) - (visit . #s(stx-boundary (s0 s1 s2 (s3 s4)))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 s4)))) - (prim-module . #f) - (prepare-env . #f) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (tag . #s(stx-boundary (s0 (s1 s2)))) - (enter-check . #s(stx-boundary (s0 (s1 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2)))) + (stop/return + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2)))) - (macro-post-x - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8))) + (enter-prim . - #s(stx-boundary (s9 (s3 s8)))) - (exit-macro + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) + (prim-#%expression . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) - (return + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) + (visit . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) - (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2))) . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) (macro-pre-x . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s3 s8)))) + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (macro-post-x + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2))) + . + #s(stx-boundary (s9 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (visit + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (prim-let-values + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + #s(stx-boundary (s1))) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + #s(stx-boundary (s1))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + #s(stx-boundary (s1))) + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + #s(stx-boundary (s1))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7)))) + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) + . + #s(stx-boundary (s9 (s1 s3) (s4 (s5 s6) (s7 s8))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) + (prim-define-syntaxes + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) + (rename-one + (#s(stx-boundary s0)) + #s(stx-boundary (s1 (s2) (s3 (s4 s5) (s6 s7))))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) + . + #s(stx-boundary (s7 (s1) (s2 (s3 s4) (s5 s6))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) + (lambda-renames + #s(stx-boundary (s0)) + #s(stx-boundary (s1 (s2 s3) (s4 s5)))) + (enter-block #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 s4)))) + #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5))) + . + #s(stx-boundary (s1 (s2 s3) (s4 s5)))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5))) + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5))) + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5))) + . + #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-quote . #f) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) + (macro-pre-x . #s(stx-boundary (s0 s1))) + (local-value . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (local-value-result . #f) + (local-value . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (local-value-result . #f) + (track-syntax s0 #s(stx-boundary (s1 s2)) . #s(stx-boundary (s1 s2))) + (macro-post-x #s(stx-boundary (s0 s1)) . #s(stx-boundary (s2 s1))) + (exit-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-quote-syntax . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (exit-list #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s5) (s6 s7))))) + (next . #f) + (exit-bind . #f) + (next . #f) + (visit . #s(stx-boundary (s0))) + (resolve . #s(stx-boundary s0)) + (enter-macro #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (macro-pre-x . #s(stx-boundary (s0))) + (lift-require + #s(stx-boundary (s0 s1)) + #s(stx-boundary s2) + . + #s(stx-boundary s2)) + (macro-post-x #s(stx-boundary s0) . #s(stx-boundary (s1))) + (exit-macro #s(stx-boundary s0) . #s(stx-boundary s0)) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->letrec () () #s(stx-boundary s0)) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (finish-block #s(stx-boundary (s0 () s1))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () s1)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (lift-loop . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) + (prim-begin . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) + (next . #f) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (prim-#%expression . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (visit . #s(stx-boundary (s0 () (s0 () s1)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () (s0 () s1)))) + (prim-let-values . #s(stx-boundary (s0 () (s0 () s1)))) + (letX-renames () () () () #s(stx-boundary (s0 () s1))) + (enter-block #s(stx-boundary (s0 () s1))) + (block-renames + (#s(stx-boundary (s0 () s1))) + #s(stx-boundary (s0 () s1))) + (next . #f) + (visit . #s(stx-boundary (s0 () s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 () s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 () s1))) + (next . #f) + (visit . #s(stx-boundary (s0 () s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 () s1))) + (prim-let-values . #s(stx-boundary (s0 () s1))) + (letX-renames () () () () #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 () s1))) + (exit-list #s(stx-boundary (s0 () s1))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () s1)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))))) + ((if 1 2 3) + . + ((start-top . #f) + (visit . #s(stx-boundary (s0 (s1 1 2 3)))) + (visit . #s(stx-boundary (s0 (s1 1 2 3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 1 2 3)))) + (visit . #s(stx-boundary (s0 (s1 1 2 3)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 1 2 3)))) + (prim-#%expression . #s(stx-boundary (s0 (s1 1 2 3)))) + (visit . #s(stx-boundary (s0 1 2 3))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 1 2 3))) + (prim-if . #s(stx-boundary (s0 1 2 3))) + (visit . #s(stx-boundary 1)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 1)) . #s(stx-boundary 1)) + (enter-prim . #s(stx-boundary (s0 . 1))) + (prim-#%datum . #s(stx-boundary (s0 . 1))) + (exit-prim/return . #s(stx-boundary (s0 1))) + (next . #f) + (visit . #s(stx-boundary 2)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 2)) . #s(stx-boundary 2)) + (enter-prim . #s(stx-boundary (s0 . 2))) + (prim-#%datum . #s(stx-boundary (s0 . 2))) + (exit-prim/return . #s(stx-boundary (s0 2))) + (next . #f) + (visit . #s(stx-boundary 3)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 3)) . #s(stx-boundary 3)) + (enter-prim . #s(stx-boundary (s0 . 3))) + (prim-#%datum . #s(stx-boundary (s0 . 3))) + (exit-prim/return . #s(stx-boundary (s0 3))) + (exit-prim/return . #s(stx-boundary (s0 (s1 1) (s1 2) (s1 3)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 (s2 1) (s2 2) (s2 3))))))) + ((module m racket/base + (define-syntax (ok stx) (quote-syntax 8)) + (ok) + (list (ok) (ok))) + . + ((start-top . #f) + (visit + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) + (visit + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) + (visit + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) + (prim-module + . + #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) + (prepare-env . #f) + (rename-one + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s1)) + #s(stx-boundary (s4 (s1) (s1)))) + (tag . #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 (s3 s4) (s5 8)) (s3) (s6 (s3) (s3)))) + . + #s(stx-boundary (s1 (s2 (s3 s4) (s5 8)) (s3) (s6 (s3) (s3))))) + (visit . #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2)))) + . + #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) + (macro-pre-x + . + #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) (macro-post-x #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10)))) + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9)))) . - #s(stx-boundary (s11 (s3 s4 (s5 s6) (s7 s8) (s9 #f)) (s5 s10)))) + #s(stx-boundary (s13 (s8 (s9 s10) (s11 8)) (s9) (s12 (s9) (s9))))) (exit-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9)))) . #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) - (return - . - #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) - (exit-check - . - #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9))))) (visit . #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9))))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9)))) + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9))))) + (macro-pre-x + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4) (s5 s6) (s7 #f)) + (s8 (s9 s10) (s11 8)) + (s9) + (s12 (s9) (s9))))) + (macro-post-x + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11))))) + . + #s(stx-boundary + (s15 + (s3 s4 (s5 s6) (s7 s8) (s9 #f)) + (s10 (s11 s12) (s13 8)) + (s11) + (s14 (s11) (s11))))) + (exit-macro + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11))))) + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11)))))) + (visit + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11)))))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11)))))) + (track-syntax + s0 + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 (s12 s13) (s14 8))) + (s2 s3 (s12)) + (s2 s3 (s15 (s12) (s12))))) + . + #s(stx-boundary + (s1 + (s2 s3 (s4 s5 (s6 s7) (s8 s9) (s10 #f))) + (s2 s3 (s11 (s12 s13) (s14 8))) + (s2 s3 (s12)) + (s2 s3 (s15 (s12) (s12)))))) + (next . #f) + (visit + . + #s(stx-boundary + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11)))))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11)))))) (prim-module-begin . #f) (rename-one . #s(stx-boundary - (s0 (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) (s1 s2 (s5 s10))))) + (s0 + (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) + (s1 s2 (s10 (s11 s12) (s13 8))) + (s1 s2 (s11)) + (s1 s2 (s14 (s11) (s11)))))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f)))) . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) (macro-pre-x @@ -1281,44 +6693,56 @@ (start . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (macro-post-x #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) . #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (exit-macro . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (exit-macro + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (rename-one . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (stop/return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (module-pass1-case + . + #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) + (prim-begin . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) (splice #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) - #s(stx-boundary (s7 s8 (s2 s9)))) + #s(stx-boundary (s7 s8 (s9 (s10 s11) (s12 8)))) + #s(stx-boundary (s7 s8 (s10))) + #s(stx-boundary (s7 s8 (s13 (s10) (s10))))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (stop/return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (module-pass1-case . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) + (prim-submodule . #f) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (prim-submodule . #f) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-module . #f) + (prim-module . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) (prepare-env . #f) + (rename-one #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 #f))) (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) + (track-syntax + s0 + #s(stx-boundary (s1 (s2 s3) (s4 #f))) + . + #s(stx-boundary (s1 (s2 s3) (s4 #f)))) + (next . #f) (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) @@ -1327,34 +6751,26 @@ (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) + (stop/return . #s(stx-boundary (s0 s1))) + (module-pass1-case . #s(stx-boundary (s0 s1))) + (prim-require . #s(stx-boundary (s0 s1))) + (exit-case . #s(stx-boundary (s0 s1))) (next . #f) (visit . #s(stx-boundary (s0 #f))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 #f))) + (stop/return . #s(stx-boundary (s0 #f))) + (module-pass1-case . #s(stx-boundary (s0 #f))) (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (rename-one . #s(stx-boundary (s0 #f))) - (module-lift-end-loop) (next-group . #f) (next . #f) (next . #f) (visit . #s(stx-boundary (s0 #f))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #f))) + (tag2 #s(stx-boundary (s0 s1 #f)) . #s(stx-boundary (s1 #f))) (enter-prim . #s(stx-boundary (s0 s1 #f))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #f))) + (prim-#%app . #s(stx-boundary (s0 s1 #f))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -1363,379 +6779,457 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-list . #s(stx-boundary (s0 (s1 #f)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 #f)))) - (module-lift-end-loop) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #f)))) + (next-group . #f) (next-group . #f) (next . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) + (next . #f) + (next-group . #f) + (next . #f) + (next . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8))))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) - (enter-local . #s(stx-boundary (s0 s1))) - (local-pre . #s(stx-boundary (s0 s1))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8)))) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8))))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8))))) + (enter-local . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (local-pre . #s(stx-boundary (s0 (s1 s2) (s3 8)))) (start . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (local-post . #s(stx-boundary (s0 s1))) - (exit-local . #s(stx-boundary (s0 s1))) - (macro-post-x - #s(stx-boundary (s0 (s1 (s2 s3)))) - . - #s(stx-boundary (s4 s1 (s2 s3)))) - (exit-macro . #s(stx-boundary (s0 (s1 (s2 s3))))) - (visit . #s(stx-boundary (s0 (s1 (s2 s3))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 s3))))) - (return . #s(stx-boundary (s0 (s1 (s2 s3))))) - (rename-one . #s(stx-boundary (s0 (s1 (s2 s3))))) - (splice #s(stx-boundary (s0 (s1 s2)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5)) - . - #s(stx-boundary (s6 (s3 s4)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (visit . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (return . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (rename-one . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 () (s2 s3)) s4))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 () (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () (s1 s2)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary ()) . #s(stx-boundary ((s0 s1)))) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (exit-list . #s(stx-boundary ((s0 s1)))) - (exit-prim . #s(stx-boundary (s0 () (s1 s2)))) - (return . #s(stx-boundary (s0 () (s1 s2)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 (s1 () (s2 s3)) s4))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (return . #s(stx-boundary (s0 s1 (s2 () (s3 s4)) s5))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) - (s7 s9 (s10 () (s3 s11)) s12)))) - (return - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) - (s7 s9 (s10 () (s3 s11)) s12)))) - (rename-one - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s9 s11 (s12 () (s5 s13)) s14))))) - (exit-prim - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s9 s11 (s12 () (s5 s13)) s14))))) - (return - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s9 s11 (s12 () (s5 s13)) s14))))))) - ((let () (define-syntax (ok stx) (quote-syntax 8)) (ok 5)) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (enter-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (exit-check . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (macro-pre-x . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (macro-post-x - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) - . - #s(stx-boundary (s5 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (exit-macro . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5)))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 8)))) (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) . #s(stx-boundary (s5 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 8))))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (local-post . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (exit-local . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (macro-post-x + #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8))))) + . + #s(stx-boundary (s6 s7 (s8 (s2 s4) (s5 8))))) + (exit-macro + #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8))))) + . + #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) + (visit . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) + (module-pass1-case . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) + (prim-begin . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) + (splice + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + #s(stx-boundary (s5 s6 (s1))) + #s(stx-boundary (s5 s6 (s7 (s1) (s1))))) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (module-pass1-case . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-syntaxes . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) (prepare-env . #f) - (enter-bind . #f) + (phase-up . #f) (visit . #s(stx-boundary (s0 (s1) (s2 8)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 8)))) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) (macro-post-x #s(stx-boundary (s0 (s1) (s2 8))) . #s(stx-boundary (s3 (s1) (s2 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) (visit . #s(stx-boundary (s0 (s1) (s2 8)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)))) + ((let () + (define-syntax (ok stx) (quote-syntax 8)) + (define (ident x) x) + 9) + . + ((start-top . #f) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) + (visit + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) + (visit + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9)) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (macro-pre-x + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (macro-post-x + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9)) + . + #s(stx-boundary (s8 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9)) + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (visit + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (resolve . #s(stx-boundary s0)) + (enter-prim + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (prim-let-values + . + #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s4 (s5 s6) s6)) + #s(stx-boundary 9)) + (enter-block + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s4 (s5 s6) s6)) + #s(stx-boundary 9)) + (block-renames + (#s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s4 (s5 s6) s6)) + #s(stx-boundary 9)) + #s(stx-boundary (s0 (s1 s2) (s3 8))) + #s(stx-boundary (s4 (s5 s6) s6)) + #s(stx-boundary 9)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1 s2) (s3 8))) + . + #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s5 (s1 s3) (s4 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (prim-define-syntaxes . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) (s3 8)))) + (prepare-env . #f) + (enter-bind . #f) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s3 (s1) (s2 8)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 8))) + . + #s(stx-boundary (s0 (s1) (s2 8)))) + (visit . #s(stx-boundary (s0 (s1) (s2 8)))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-lambda . #s(stx-boundary (s0 (s1) (s2 8)))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary (s1 8))) + (enter-block #s(stx-boundary (s0 8))) + (block-renames (#s(stx-boundary (s0 8))) #s(stx-boundary (s0 8))) + (next . #f) + (visit . #s(stx-boundary (s0 8))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 8))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 8))) (next . #f) (visit . #s(stx-boundary (s0 8))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 8))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) + (prim-quote-syntax . #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 8))) + (exit-list #s(stx-boundary (s0 8))) + (exit-prim/return . #s(stx-boundary (s0 (s1) (s2 8)))) (next . #f) (exit-bind . #f) (next . #f) - (enter-check . #s(stx-boundary (s0 5))) - (visit . #s(stx-boundary (s0 5))) + (visit . #s(stx-boundary (s0 (s1 s2) s2))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 5))) - (macro-pre-x . #s(stx-boundary (s0 5))) - (macro-post-x #s(stx-boundary 8) . #s(stx-boundary (s0 5))) - (exit-macro . #s(stx-boundary 8)) - (return . #s(stx-boundary 8)) - (exit-check . #s(stx-boundary 8)) - (block->letrec #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) () 8))) - (visit . #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) () 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) () 8))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - () + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) . - #s(stx-boundary (8))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary (8))) - (next . #f) - (visit . #s(stx-boundary 8)) + #s(stx-boundary (s0 (s1 s2) s2))) + (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) + (macro-post-x + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1 s3) s3))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) - (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (tag . #s(stx-boundary (s0 () (s1 8)))) - (exit-prim . #s(stx-boundary (s0 () (s1 8)))) - (return . #s(stx-boundary (s0 () (s1 8)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () (s1 8))))) - (return . #s(stx-boundary (s0 () (s0 () (s1 8))))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () (s2 8)))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () (s2 8)))))))) - ((with-continuation-mark __x __y __z) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3) s3))) + . + #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) + (macro-post-x + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s4 s1 (s2 (s3) s3)))) + (exit-macro + #s(stx-boundary (s0 (s1) (s2 (s3) s3))) + . + #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (visit . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (prim-define-values . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) + (rename-one (#s(stx-boundary s0)) #s(stx-boundary (s1 (s2) s2))) + (next . #f) + (visit . #s(stx-boundary 9)) + (stop/return . #s(stx-boundary 9)) + (block->letrec + ((#s(stx-boundary s0))) + (#s(stx-boundary (s1 (s2) s2))) + #s(stx-boundary 9)) + (next . #f) + (visit . #s(stx-boundary (s0 (s1) s1))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1) s1))) + (prim-lambda . #s(stx-boundary (s0 (s1) s1))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s0)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s1))) + (enter-list #s(stx-boundary 9)) + (next . #f) + (visit . #s(stx-boundary 9)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . 9)) . #s(stx-boundary 9)) + (enter-prim . #s(stx-boundary (s0 . 9))) + (prim-#%datum . #s(stx-boundary (s0 . 9))) + (exit-prim/return . #s(stx-boundary (s0 9))) + (exit-list #s(stx-boundary (s0 9))) + (finish-block #s(stx-boundary (s0 (((s1) (s2 (s3) s3))) (s4 9)))) + (exit-prim/return + . + #s(stx-boundary (s0 () (s0 (((s1) (s2 (s3) s3))) (s4 9))))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 () (s1 (((s2) (s3 (s4) s4))) (s5 9)))))))) + ((begin 1 __x (+ 3 4)) . ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 s2 s3 s4)))) - (enter-check . #s(stx-boundary (s0 (s1 s2 s3 s4)))) - (exit-check . #s(stx-boundary (s0 (s1 s2 s3 s4)))) - (visit . #s(stx-boundary (s0 (s1 s2 s3 s4)))) + (visit . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) + (visit . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 s3 s4)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 s1 s2 s3))) + (stop/return . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) + (visit . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2 s3))) - (prim-with-continuation-mark . #f) - (visit . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) + (prim-#%expression . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) + (visit . #s(stx-boundary (s0 1 s1 (s2 3 4)))) (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 1 s1 (s2 3 4)))) + (prim-begin . #s(stx-boundary (s0 1 s1 (s2 3 4)))) + (next . #f) + (visit . #s(stx-boundary 1)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) + (tag2 #s(stx-boundary (s0 . 1)) . #s(stx-boundary 1)) + (enter-prim . #s(stx-boundary (s0 . 1))) + (prim-#%datum . #s(stx-boundary (s0 . 1))) + (exit-prim/return . #s(stx-boundary (s0 1))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) + (tag2 #s(stx-boundary (s0 . s1)) . #s(stx-boundary s1)) (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) + (prim-#%top . #s(stx-boundary (s0 . s1))) + (exit-prim/return . #s(stx-boundary (s0 . s1))) + (next . #f) + (visit . #s(stx-boundary (s0 3 4))) + (resolve . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 s1 3 4)) . #s(stx-boundary (s1 3 4))) + (enter-macro + #s(stx-boundary (s0 s1 3 4)) + . + #s(stx-boundary (s0 s1 3 4))) + (macro-pre-x . #s(stx-boundary (s0 s1 3 4))) + (macro-post-x + #s(stx-boundary (s0 s1 3 4)) + . + #s(stx-boundary (s0 s1 3 4))) + (exit-macro + #s(stx-boundary (s0 s1 3 4)) + . + #s(stx-boundary (s0 s1 3 4))) + (visit . #s(stx-boundary (s0 s1 3 4))) + (resolve . #s(stx-boundary s0)) + (enter-prim . #s(stx-boundary (s0 s1 3 4))) + (prim-#%app . #s(stx-boundary (s0 s1 3 4))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) + (variable #s(stx-boundary s0) . #s(stx-boundary s0)) + (return . #s(stx-boundary s0)) + (next . #f) + (visit . #s(stx-boundary 3)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (exit-prim . #s(stx-boundary (s0 (s1 . s2) (s1 . s3) (s1 . s4)))) - (return . #s(stx-boundary (s0 (s1 . s2) (s1 . s3) (s1 . s4)))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 . s3) (s2 . s4) (s2 . s5))))) - (return . #s(stx-boundary (s0 (s1 (s2 . s3) (s2 . s4) (s2 . s5))))))) - ((#%top . __x) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 . s2)))) - (enter-check . #s(stx-boundary (s0 (s1 . s2)))) - (exit-check . #s(stx-boundary (s0 (s1 . s2)))) - (visit . #s(stx-boundary (s0 (s1 . s2)))) + (tag2 #s(stx-boundary (s0 . 3)) . #s(stx-boundary 3)) + (enter-prim . #s(stx-boundary (s0 . 3))) + (prim-#%datum . #s(stx-boundary (s0 . 3))) + (exit-prim/return . #s(stx-boundary (s0 3))) + (next . #f) + (visit . #s(stx-boundary 4)) (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 . s2)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 . s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (exit-prim . #s(stx-boundary (s0 (s1 . s2)))) - (return . #s(stx-boundary (s0 (s1 . s2)))))) + (tag2 #s(stx-boundary (s0 . 4)) . #s(stx-boundary 4)) + (enter-prim . #s(stx-boundary (s0 . 4))) + (prim-#%datum . #s(stx-boundary (s0 . 4))) + (exit-prim/return . #s(stx-boundary (s0 4))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 3) (s2 4)))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 1) (s2 . s3) (s4 s5 (s1 3) (s1 4))))) + (exit-prim/return + . + #s(stx-boundary (s0 (s1 (s2 1) (s3 . s4) (s5 s6 (s2 3) (s2 4)))))))) ((let () (define-syntax-rule (ok x) x) (ok 5)) . ((start-top . #f) (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) - (enter-check . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) - (exit-check . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) + (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) - (prim-#%expression . #f) + (prim-#%expression + . + #s(stx-boundary (s0 (s1 () (s2 (s3 s4) s4) (s3 5))))) (visit . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) + (enter-macro + #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) (macro-pre-x . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) (macro-post-x #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5))) . #s(stx-boundary (s4 () (s1 (s2 s3) s3) (s2 5)))) - (exit-macro . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) + (exit-macro + #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5))) + . + #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) (visit . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary ((s0 (s1 s2) s2) (s1 5)))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 (s1 s2) s2) (s1 5)))) + (prim-let-values . #s(stx-boundary (s0 () (s1 (s2 s3) s3) (s2 5)))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s1 5))) + (enter-block #s(stx-boundary (s0 (s1 s2) s2)) #s(stx-boundary (s1 5))) (block-renames - #s(stx-boundary ((s0 (s1 s2) s2) (s1 5))) - . - #s(stx-boundary ((s0 (s1 s2) s2) (s1 5)))) + (#s(stx-boundary (s0 (s1 s2) s2)) #s(stx-boundary (s1 5))) + #s(stx-boundary (s0 (s1 s2) s2)) + #s(stx-boundary (s1 5))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) (visit . #s(stx-boundary (s0 (s1 s2) s2))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) + (enter-macro + #s(stx-boundary (s0 (s1 s2) s2)) + . + #s(stx-boundary (s0 (s1 s2) s2))) (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) (macro-post-x #s(stx-boundary @@ -1755,7 +7249,6 @@ . #s(stx-boundary (s5 (s1 s8) s8))) (exit-macro - . #s(stx-boundary (s0 s1 @@ -1769,8 +7262,7 @@ s6 #f ((s7 s8) (s9 (s10 s3 s8))) - (s7 (s11 s3 (s12 (s8))))))))) - (return + (s7 (s11 s3 (s12 (s8)))))))) . #s(stx-boundary (s0 @@ -1804,6 +7296,20 @@ (s7 (s11 s3 (s12 (s8))))))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 + s1 + (s2 + (s3) + (s4 + s5 + #t + s3 + () + s6 + #f + ((s7 s8) (s9 (s10 s3 s8))) + (s7 (s11 s3 (s12 (s8)))))))) . #s(stx-boundary (s0 @@ -1866,6 +7372,20 @@ ((s7 s8) (s9 (s10 s3 s8))) (s7 (s11 s3 (s12 (s8))))))))) (exit-macro + #s(stx-boundary + (s0 + (s1) + (s2 + (s3) + (s4 + s5 + #t + s3 + () + s6 + #f + ((s7 s8) (s9 (s10 s3 s8))) + (s7 (s11 s3 (s12 (s8)))))))) . #s(stx-boundary (s0 @@ -1881,7 +7401,7 @@ #f ((s7 s8) (s9 (s10 s3 s8))) (s7 (s11 s3 (s12 (s8))))))))) - (return + (visit . #s(stx-boundary (s0 @@ -1897,7 +7417,24 @@ #f ((s7 s8) (s9 (s10 s3 s8))) (s7 (s11 s3 (s12 (s8))))))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return + . + #s(stx-boundary + (s0 + (s1) + (s2 + (s3) + (s4 + s5 + #t + s3 + () + s6 + #f + ((s7 s8) (s9 (s10 s3 s8))) + (s7 (s11 s3 (s12 (s8))))))))) + (prim-define-syntaxes . #s(stx-boundary (s0 @@ -1913,22 +7450,20 @@ #f ((s7 s8) (s9 (s10 s3 s8))) (s7 (s11 s3 (s12 (s8))))))))) - (prim-define-syntaxes . #f) (rename-one - . + (#s(stx-boundary s0)) #s(stx-boundary - ((s0) - (s1 - (s2) - (s3 - s4 - #t - s2 - () - s5 - #f - ((s6 s7) (s8 (s9 s2 s7))) - (s6 (s10 s2 (s11 (s7))))))))) + (s1 + (s2) + (s3 + s4 + #t + s2 + () + s5 + #f + ((s6 s7) (s8 (s9 s2 s7))) + (s6 (s10 s2 (s11 (s7)))))))) (prepare-env . #f) (enter-bind . #f) (visit @@ -1960,57 +7495,33 @@ #f ((s5 s6) (s7 (s8 s1 s6))) (s5 (s9 s1 (s10 (s6)))))))) - (prim-lambda . #f) + (prim-lambda + . + #s(stx-boundary + (s0 + (s1) + (s2 + s3 + #t + s1 + () + s4 + #f + ((s5 s6) (s7 (s8 s1 s6))) + (s5 (s9 s1 (s10 (s6)))))))) (lambda-renames #s(stx-boundary (s0)) - . #s(stx-boundary - ((s1 - s2 - #t - s0 - () - s3 - #f - ((s4 s5) (s6 (s7 s0 s5))) - (s4 (s8 s0 (s9 (s5)))))))) + (s1 + s2 + #t + s0 + () + s3 + #f + ((s4 s5) (s6 (s7 s0 s5))) + (s4 (s8 s0 (s9 (s5))))))) (enter-block - . - #s(stx-boundary - ((s0 - s1 - #t - s2 - () - s3 - #f - ((s4 s5) (s6 (s7 s2 s5))) - (s4 (s8 s2 (s9 (s5)))))))) - (block-renames - #s(stx-boundary - ((s0 - s1 - #t - s2 - () - s3 - #f - ((s4 s5) (s6 (s7 s2 s5))) - (s4 (s8 s2 (s9 (s5))))))) - . - #s(stx-boundary - ((s0 - s1 - #t - s2 - () - s3 - #f - ((s4 s5) (s6 (s7 s2 s5))) - (s4 (s8 s2 (s9 (s5)))))))) - (next . #f) - (enter-check - . #s(stx-boundary (s0 s1 @@ -2021,6 +7532,28 @@ #f ((s4 s5) (s6 (s7 s2 s5))) (s4 (s8 s2 (s9 (s5))))))) + (block-renames + (#s(stx-boundary + (s0 + s1 + #t + s2 + () + s3 + #f + ((s4 s5) (s6 (s7 s2 s5))) + (s4 (s8 s2 (s9 (s5))))))) + #s(stx-boundary + (s0 + s1 + #t + s2 + () + s3 + #f + ((s4 s5) (s6 (s7 s2 s5))) + (s4 (s8 s2 (s9 (s5))))))) + (next . #f) (visit . #s(stx-boundary @@ -2035,6 +7568,16 @@ (s4 (s8 s2 (s9 (s5))))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 + s1 + #t + s2 + () + s3 + #f + ((s4 s5) (s6 (s7 s2 s5))) + (s4 (s8 s2 (s9 (s5)))))) . #s(stx-boundary (s0 @@ -2058,6 +7601,74 @@ #f ((s4 s5) (s6 (s7 s2 s5))) (s4 (s8 s2 (s9 (s5))))))) + (track-syntax s0 #s(stx-boundary s1) . #s(stx-boundary s1)) + (track-syntax + s0 + #s(stx-boundary + (s1 + ((s2 s3)) + (s1 + ((s4 + ((s5 + (s6) + (s7 + (s8 s6) + (s7 + ((s5 (s6) s9) (s10 s6)) + ((s5 + (s6) + (s7 + (s8 s6) + (s1 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) + #f)) + (s14 s6)) + #f) + #f)) + s2))) + (s7 + s4 + (s1 + ((s15 s4)) + (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s3 s17)))) + (s1 + ((s4 ((s5 (s6) s9) s2))) + (s7 + s4 + (s1 () (s16 () () (s22 s3 (s23 (s17))))) + (s24 #f #:opaque s2))))))) + . + #s(stx-boundary + (s1 + ((s2 s3)) + (s1 + ((s4 + ((s5 + (s6) + (s7 + (s8 s6) + (s7 + ((s5 (s6) s9) (s10 s6)) + ((s5 + (s6) + (s7 + (s8 s6) + (s1 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) + #f)) + (s14 s6)) + #f) + #f)) + s2))) + (s7 + s4 + (s1 + ((s15 s4)) + (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s3 s17)))) + (s1 + ((s4 ((s5 (s6) s9) s2))) + (s7 + s4 + (s1 () (s16 () () (s22 s3 (s23 (s17))))) + (s24 #f #:opaque s2)))))))) (macro-post-x #s(stx-boundary (s0 @@ -2103,7 +7714,6 @@ ((s27 s16) (s19 (s20 s2 s16))) (s27 (s21 s2 (s22 (s16))))))) (exit-macro - . #s(stx-boundary (s0 ((s1 s2)) @@ -2135,8 +7745,7 @@ (s6 s3 (s0 () (s15 () () (s21 s2 (s22 (s16))))) - (s23 #f #:opaque s1)))))))) - (return + (s23 #f #:opaque s1))))))) . #s(stx-boundary (s0 @@ -2206,6 +7815,38 @@ (s23 #f #:opaque s1)))))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 + ((s1 s2)) + (s0 + ((s3 + ((s4 + (s5) + (s6 + (s7 s5) + (s6 + ((s4 (s5) s8) (s9 s5)) + ((s4 + (s5) + (s6 + (s7 s5) + (s0 ((s10 (s9 s5))) (s11 s10 (s12 (s13 s5)) s10)) + #f)) + (s13 s5)) + #f) + #f)) + s1))) + (s6 + s3 + (s0 + ((s14 s3)) + (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s2 s16)))) + (s0 + ((s3 ((s4 (s5) s8) s1))) + (s6 + s3 + (s0 () (s15 () () (s21 s2 (s22 (s16))))) + (s23 #f #:opaque s1))))))) . #s(stx-boundary (s0 @@ -2340,6 +7981,38 @@ (s3 () (s16 () () (s22 s2 (s23 (s17))))) (s24 #f #:opaque s1)))))))) (exit-macro + #s(stx-boundary + (s0 + (((s1) s2)) + (s3 + ((s4 + ((s5 + (s6) + (s7 + (s8 s6) + (s7 + ((s5 (s6) s9) (s10 s6)) + ((s5 + (s6) + (s7 + (s8 s6) + (s3 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) + #f)) + (s14 s6)) + #f) + #f)) + s1))) + (s7 + s4 + (s3 + ((s15 s4)) + (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s2 s17)))) + (s3 + ((s4 ((s5 (s6) s9) s1))) + (s7 + s4 + (s3 () (s16 () () (s22 s2 (s23 (s17))))) + (s24 #f #:opaque s1))))))) . #s(stx-boundary (s0 @@ -2373,7 +8046,7 @@ s4 (s3 () (s16 () () (s22 s2 (s23 (s17))))) (s24 #f #:opaque s1)))))))) - (return + (visit . #s(stx-boundary (s0 @@ -2407,7 +8080,8 @@ s4 (s3 () (s16 () () (s22 s2 (s23 (s17))))) (s24 #f #:opaque s1)))))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 @@ -2441,74 +8115,40 @@ s4 (s3 () (s16 () () (s22 s2 (s23 (s17))))) (s24 #f #:opaque s1)))))))) - (block->list - . - #s(stx-boundary - ((s0 - (((s1) s2)) - (s3 - ((s4 - ((s5 - (s6) - (s7 - (s8 s6) - (s7 - ((s5 (s6) s9) (s10 s6)) - ((s5 - (s6) - (s7 - (s8 s6) - (s3 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) - #f)) - (s14 s6)) - #f) - #f)) - s1))) - (s7 - s4 - (s3 - ((s15 s4)) - (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s2 s17)))) - (s3 - ((s4 ((s5 (s6) s9) s1))) - (s7 - s4 - (s3 () (s16 () () (s22 s2 (s23 (s17))))) - (s24 #f #:opaque s1))))))))) + (block->list . #f) (enter-list - . #s(stx-boundary - ((s0 - (((s1) s2)) - (s3 - ((s4 - ((s5 - (s6) + (s0 + (((s1) s2)) + (s3 + ((s4 + ((s5 + (s6) + (s7 + (s8 s6) (s7 - (s8 s6) - (s7 - ((s5 (s6) s9) (s10 s6)) - ((s5 - (s6) - (s7 - (s8 s6) - (s3 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) - #f)) - (s14 s6)) - #f) - #f)) - s1))) - (s7 - s4 - (s3 - ((s15 s4)) - (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s2 s17)))) - (s3 - ((s4 ((s5 (s6) s9) s1))) - (s7 - s4 - (s3 () (s16 () () (s22 s2 (s23 (s17))))) - (s24 #f #:opaque s1))))))))) + ((s5 (s6) s9) (s10 s6)) + ((s5 + (s6) + (s7 + (s8 s6) + (s3 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) + #f)) + (s14 s6)) + #f) + #f)) + s1))) + (s7 + s4 + (s3 + ((s15 s4)) + (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s2 s17)))) + (s3 + ((s4 ((s5 (s6) s9) s1))) + (s7 + s4 + (s3 () (s16 () () (s22 s2 (s23 (s17))))) + (s24 #f #:opaque s1)))))))) (next . #f) (visit . @@ -2579,143 +8219,81 @@ s4 (s3 () (s16 () () (s22 s2 (s23 (s17))))) (s24 #f #:opaque s1)))))))) - (prim-let-values . #f) - (let-renames - (#s(stx-boundary ((s0) s1))) + (prim-let-values . #s(stx-boundary - ((s2 - ((s3 - ((s4 - (s5) - (s6 - (s7 s5) - (s6 - ((s4 (s5) s8) (s9 s5)) - ((s4 - (s5) - (s6 - (s7 s5) - (s2 ((s10 (s9 s5))) (s11 s10 (s12 (s13 s5)) s10)) + (s0 + (((s1) s2)) + (s3 + ((s4 + ((s5 + (s6) + (s7 + (s8 s6) + (s7 + ((s5 (s6) s9) (s10 s6)) + ((s5 + (s6) + (s7 + (s8 s6) + (s3 ((s11 (s10 s6))) (s12 s11 (s13 (s14 s6)) s11)) #f)) - (s13 s5)) + (s14 s6)) #f) #f)) - s0))) - (s6 - s3 - (s2 - ((s14 s3)) - (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s1 s16)))) - (s2 - ((s3 ((s4 (s5) s8) s0))) - (s6 - s3 - (s2 () (s15 () () (s21 s1 (s22 (s16))))) - (s23 #f #:opaque s0)))))))) + s1))) + (s7 + s4 + (s3 + ((s15 s4)) + (s16 (((s17) (s18 0 (s19 s15)))) () (s20 (s21 s2 s17)))) + (s3 + ((s4 ((s5 (s6) s9) s1))) + (s7 + s4 + (s3 () (s16 () () (s22 s2 (s23 (s17))))) + (s24 #f #:opaque s1)))))))) + (letX-renames + () + () + ((#s(stx-boundary s0))) + (#s(stx-boundary s1)) + #s(stx-boundary + (s2 + ((s3 + ((s4 + (s5) + (s6 + (s7 s5) + (s6 + ((s4 (s5) s8) (s9 s5)) + ((s4 + (s5) + (s6 + (s7 s5) + (s2 ((s10 (s9 s5))) (s11 s10 (s12 (s13 s5)) s10)) + #f)) + (s13 s5)) + #f) + #f)) + s0))) + (s6 + s3 + (s2 + ((s14 s3)) + (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s1 s16)))) + (s2 + ((s3 ((s4 (s5) s8) s0))) + (s6 + s3 + (s2 () (s15 () () (s21 s1 (s22 (s16))))) + (s23 #f #:opaque s0))))))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (next-group . #f) (enter-block - . - #s(stx-boundary - ((s0 - ((s1 - ((s2 - (s3) - (s4 - (s5 s3) - (s4 - ((s2 (s3) s6) (s7 s3)) - ((s2 - (s3) - (s4 - (s5 s3) - (s0 ((s8 (s7 s3))) (s9 s8 (s10 (s11 s3)) s8)) - #f)) - (s11 s3)) - #f) - #f)) - s12))) - (s4 - s1 - (s0 - ((s13 s1)) - (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) - (s0 - ((s1 ((s2 (s3) s6) s12))) - (s4 - s1 - (s0 () (s14 () () (s21 s20 (s22 (s15))))) - (s23 #f #:opaque s12)))))))) - (block-renames - #s(stx-boundary - ((s0 - ((s1 - ((s2 - (s3) - (s4 - (s5 s3) - (s4 - ((s2 (s3) s6) (s7 s3)) - ((s2 - (s3) - (s4 - (s5 s3) - (s0 ((s8 (s7 s3))) (s9 s8 (s10 (s11 s3)) s8)) - #f)) - (s11 s3)) - #f) - #f)) - s12))) - (s4 - s1 - (s0 - ((s13 s1)) - (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) - (s0 - ((s1 ((s2 (s3) s6) s12))) - (s4 - s1 - (s0 () (s14 () () (s21 s20 (s22 (s15))))) - (s23 #f #:opaque s12))))))) - . - #s(stx-boundary - ((s0 - ((s1 - ((s2 - (s3) - (s4 - (s5 s3) - (s4 - ((s2 (s3) s6) (s7 s3)) - ((s2 - (s3) - (s4 - (s5 s3) - (s0 ((s8 (s7 s3))) (s9 s8 (s10 (s11 s3)) s8)) - #f)) - (s11 s3)) - #f) - #f)) - s12))) - (s4 - s1 - (s0 - ((s13 s1)) - (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) - (s0 - ((s1 ((s2 (s3) s6) s12))) - (s4 - s1 - (s0 () (s14 () () (s21 s20 (s22 (s15))))) - (s23 #f #:opaque s12)))))))) - (next . #f) - (enter-check - . #s(stx-boundary (s0 ((s1 @@ -2746,6 +8324,68 @@ s1 (s0 () (s14 () () (s21 s20 (s22 (s15))))) (s23 #f #:opaque s12))))))) + (block-renames + (#s(stx-boundary + (s0 + ((s1 + ((s2 + (s3) + (s4 + (s5 s3) + (s4 + ((s2 (s3) s6) (s7 s3)) + ((s2 + (s3) + (s4 + (s5 s3) + (s0 ((s8 (s7 s3))) (s9 s8 (s10 (s11 s3)) s8)) + #f)) + (s11 s3)) + #f) + #f)) + s12))) + (s4 + s1 + (s0 + ((s13 s1)) + (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) + (s0 + ((s1 ((s2 (s3) s6) s12))) + (s4 + s1 + (s0 () (s14 () () (s21 s20 (s22 (s15))))) + (s23 #f #:opaque s12))))))) + #s(stx-boundary + (s0 + ((s1 + ((s2 + (s3) + (s4 + (s5 s3) + (s4 + ((s2 (s3) s6) (s7 s3)) + ((s2 + (s3) + (s4 + (s5 s3) + (s0 ((s8 (s7 s3))) (s9 s8 (s10 (s11 s3)) s8)) + #f)) + (s11 s3)) + #f) + #f)) + s12))) + (s4 + s1 + (s0 + ((s13 s1)) + (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) + (s0 + ((s1 ((s2 (s3) s6) s12))) + (s4 + s1 + (s0 () (s14 () () (s21 s20 (s22 (s15))))) + (s23 #f #:opaque s12))))))) + (next . #f) (visit . #s(stx-boundary @@ -2780,6 +8420,36 @@ (s23 #f #:opaque s12))))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 + ((s1 + ((s2 + (s3) + (s4 + (s5 s3) + (s4 + ((s2 (s3) s6) (s7 s3)) + ((s2 + (s3) + (s4 + (s5 s3) + (s0 ((s8 (s7 s3))) (s9 s8 (s10 (s11 s3)) s8)) + #f)) + (s11 s3)) + #f) + #f)) + s12))) + (s4 + s1 + (s0 + ((s13 s1)) + (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) + (s0 + ((s1 ((s2 (s3) s6) s12))) + (s4 + s1 + (s0 () (s14 () () (s21 s20 (s22 (s15))))) + (s23 #f #:opaque s12)))))) . #s(stx-boundary (s0 @@ -2906,6 +8576,36 @@ (s8 () (s15 () () (s22 s21 (s23 (s16))))) (s24 #f #:opaque s13))))))) (exit-macro + #s(stx-boundary + (s0 + (((s1) + ((s2 + (s3) + (s4 + (s5 s3) + (s4 + ((s2 (s3) s6) (s7 s3)) + ((s2 + (s3) + (s4 + (s5 s3) + (s8 ((s9 (s7 s3))) (s10 s9 (s11 (s12 s3)) s9)) + #f)) + (s12 s3)) + #f) + #f)) + s13))) + (s4 + s1 + (s8 + ((s14 s1)) + (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s21 s16)))) + (s8 + ((s1 ((s2 (s3) s6) s13))) + (s4 + s1 + (s8 () (s15 () () (s22 s21 (s23 (s16))))) + (s24 #f #:opaque s13)))))) . #s(stx-boundary (s0 @@ -2937,7 +8637,7 @@ s1 (s8 () (s15 () () (s22 s21 (s23 (s16))))) (s24 #f #:opaque s13))))))) - (return + (visit . #s(stx-boundary (s0 @@ -2969,7 +8669,8 @@ s1 (s8 () (s15 () () (s22 s21 (s23 (s16))))) (s24 #f #:opaque s13))))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 @@ -3001,70 +8702,38 @@ s1 (s8 () (s15 () () (s22 s21 (s23 (s16))))) (s24 #f #:opaque s13))))))) - (block->list - . - #s(stx-boundary - ((s0 - (((s1) - ((s2 - (s3) - (s4 - (s5 s3) - (s4 - ((s2 (s3) s6) (s7 s3)) - ((s2 - (s3) - (s4 - (s5 s3) - (s8 ((s9 (s7 s3))) (s10 s9 (s11 (s12 s3)) s9)) - #f)) - (s12 s3)) - #f) - #f)) - s13))) - (s4 - s1 - (s8 - ((s14 s1)) - (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s21 s16)))) - (s8 - ((s1 ((s2 (s3) s6) s13))) - (s4 - s1 - (s8 () (s15 () () (s22 s21 (s23 (s16))))) - (s24 #f #:opaque s13)))))))) + (block->list . #f) (enter-list - . #s(stx-boundary - ((s0 - (((s1) - ((s2 - (s3) + (s0 + (((s1) + ((s2 + (s3) + (s4 + (s5 s3) (s4 - (s5 s3) - (s4 - ((s2 (s3) s6) (s7 s3)) - ((s2 - (s3) - (s4 - (s5 s3) - (s8 ((s9 (s7 s3))) (s10 s9 (s11 (s12 s3)) s9)) - #f)) - (s12 s3)) - #f) - #f)) - s13))) - (s4 - s1 - (s8 - ((s14 s1)) - (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s21 s16)))) - (s8 - ((s1 ((s2 (s3) s6) s13))) - (s4 - s1 - (s8 () (s15 () () (s22 s21 (s23 (s16))))) - (s24 #f #:opaque s13)))))))) + ((s2 (s3) s6) (s7 s3)) + ((s2 + (s3) + (s4 + (s5 s3) + (s8 ((s9 (s7 s3))) (s10 s9 (s11 (s12 s3)) s9)) + #f)) + (s12 s3)) + #f) + #f)) + s13))) + (s4 + s1 + (s8 + ((s14 s1)) + (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s21 s16)))) + (s8 + ((s1 ((s2 (s3) s6) s13))) + (s4 + s1 + (s8 () (s15 () () (s22 s21 (s23 (s16))))) + (s24 #f #:opaque s13))))))) (next . #f) (visit . @@ -3131,39 +8800,71 @@ s1 (s8 () (s15 () () (s22 s21 (s23 (s16))))) (s24 #f #:opaque s13))))))) - (prim-let-values . #f) - (let-renames + (prim-let-values + . + #s(stx-boundary + (s0 + (((s1) + ((s2 + (s3) + (s4 + (s5 s3) + (s4 + ((s2 (s3) s6) (s7 s3)) + ((s2 + (s3) + (s4 + (s5 s3) + (s8 ((s9 (s7 s3))) (s10 s9 (s11 (s12 s3)) s9)) + #f)) + (s12 s3)) + #f) + #f)) + s13))) + (s4 + s1 + (s8 + ((s14 s1)) + (s15 (((s16) (s17 0 (s18 s14)))) () (s19 (s20 s21 s16)))) + (s8 + ((s1 ((s2 (s3) s6) s13))) + (s4 + s1 + (s8 () (s15 () () (s22 s21 (s23 (s16))))) + (s24 #f #:opaque s13))))))) + (letX-renames + () + () + ((#s(stx-boundary s0))) (#s(stx-boundary - ((s0) - ((s1 - (s2) + ((s1 + (s2) + (s3 + (s4 s2) (s3 - (s4 s2) - (s3 - ((s1 (s2) s5) (s6 s2)) - ((s1 - (s2) - (s3 - (s4 s2) - (s7 ((s8 (s6 s2))) (s9 s8 (s10 (s11 s2)) s8)) - #f)) - (s11 s2)) - #f) - #f)) - s12)))) - . + ((s1 (s2) s5) (s6 s2)) + ((s1 + (s2) + (s3 + (s4 s2) + (s7 ((s8 (s6 s2))) (s9 s8 (s10 (s11 s2)) s8)) + #f)) + (s11 s2)) + #f) + #f)) + s12))) #s(stx-boundary - ((s3 - s0 - (s7 - ((s13 s0)) - (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) - (s7 - ((s0 ((s1 (s2) s5) s12))) - (s3 - s0 - (s7 () (s14 () () (s21 s20 (s22 (s15))))) - (s23 #f #:opaque s12))))))) + (s3 + s0 + (s7 + ((s13 s0)) + (s14 (((s15) (s16 0 (s17 s13)))) () (s18 (s19 s20 s15)))) + (s7 + ((s0 ((s1 (s2) s5) s12))) + (s3 + s0 + (s7 () (s14 () () (s21 s20 (s22 (s15))))) + (s23 #f #:opaque s12)))))) (next . #f) (visit . @@ -3182,8 +8883,7 @@ #f)) s11))) (resolve . #s(stx-boundary s0)) - (tag - . + (tag2 #s(stx-boundary (s0 (s1 @@ -3201,107 +8901,140 @@ (s11 s2)) #f) #f)) - s12))) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 - (s2) - (s3 - (s4 s2) - (s3 - ((s1 (s2) s5) (s6 s2)) - ((s1 - (s2) - (s3 - (s4 s2) - (s7 ((s8 (s6 s2))) (s9 s8 (s10 (s11 s2)) s8)) - #f)) - (s11 s2)) - #f) - #f)) - s12))) - (prim-#%app . #f) - (enter-list - . - #s(stx-boundary - ((s0 - (s1) - (s2 - (s3 s1) - (s2 - ((s0 (s1) s4) (s5 s1)) - ((s0 - (s1) - (s2 (s3 s1) (s6 ((s7 (s5 s1))) (s8 s7 (s9 (s10 s1)) s7)) #f)) - (s10 s1)) - #f) - #f)) - s11))) - (next . #f) - (visit - . - #s(stx-boundary - (s0 - (s1) - (s2 - (s3 s1) - (s2 - ((s0 (s1) s4) (s5 s1)) - ((s0 - (s1) - (s2 (s3 s1) (s6 ((s7 (s5 s1))) (s8 s7 (s9 (s10 s1)) s7)) #f)) - (s10 s1)) - #f) - #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1) - (s2 - (s3 s1) - (s2 - ((s0 (s1) s4) (s5 s1)) - ((s0 - (s1) - (s2 (s3 s1) (s6 ((s7 (s5 s1))) (s8 s7 (s9 (s10 s1)) s7)) #f)) - (s10 s1)) - #f) - #f)))) - (prim-lambda . #f) - (lambda-renames - #s(stx-boundary (s0)) + s12)) . #s(stx-boundary ((s1 - (s2 s0) - (s1 - ((s3 (s0) s4) (s5 s0)) - ((s3 - (s0) - (s1 (s2 s0) (s6 ((s7 (s5 s0))) (s8 s7 (s9 (s10 s0)) s7)) #f)) - (s10 s0)) - #f) - #f)))) - (enter-block + (s2) + (s3 + (s4 s2) + (s3 + ((s1 (s2) s5) (s6 s2)) + ((s1 + (s2) + (s3 + (s4 s2) + (s7 ((s8 (s6 s2))) (s9 s8 (s10 (s11 s2)) s8)) + #f)) + (s11 s2)) + #f) + #f)) + s12))) + (enter-prim . #s(stx-boundary - ((s0 - (s1 s2) - (s0 - ((s3 (s2) s4) (s5 s2)) - ((s3 - (s2) - (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) - (s10 s2)) + (s0 + (s1 + (s2) + (s3 + (s4 s2) + (s3 + ((s1 (s2) s5) (s6 s2)) + ((s1 + (s2) + (s3 + (s4 s2) + (s7 ((s8 (s6 s2))) (s9 s8 (s10 (s11 s2)) s8)) + #f)) + (s11 s2)) + #f) + #f)) + s12))) + (prim-#%app + . + #s(stx-boundary + (s0 + (s1 + (s2) + (s3 + (s4 s2) + (s3 + ((s1 (s2) s5) (s6 s2)) + ((s1 + (s2) + (s3 + (s4 s2) + (s7 ((s8 (s6 s2))) (s9 s8 (s10 (s11 s2)) s8)) + #f)) + (s11 s2)) + #f) + #f)) + s12))) + (next . #f) + (visit + . + #s(stx-boundary + (s0 + (s1) + (s2 + (s3 s1) + (s2 + ((s0 (s1) s4) (s5 s1)) + ((s0 + (s1) + (s2 (s3 s1) (s6 ((s7 (s5 s1))) (s8 s7 (s9 (s10 s1)) s7)) #f)) + (s10 s1)) #f) #f)))) - (block-renames + (resolve . #s(stx-boundary s0)) + (enter-prim + . #s(stx-boundary - ((s0 + (s0 + (s1) + (s2 + (s3 s1) + (s2 + ((s0 (s1) s4) (s5 s1)) + ((s0 + (s1) + (s2 (s3 s1) (s6 ((s7 (s5 s1))) (s8 s7 (s9 (s10 s1)) s7)) #f)) + (s10 s1)) + #f) + #f)))) + (prim-lambda + . + #s(stx-boundary + (s0 + (s1) + (s2 + (s3 s1) + (s2 + ((s0 (s1) s4) (s5 s1)) + ((s0 + (s1) + (s2 (s3 s1) (s6 ((s7 (s5 s1))) (s8 s7 (s9 (s10 s1)) s7)) #f)) + (s10 s1)) + #f) + #f)))) + (lambda-renames + #s(stx-boundary (s0)) + #s(stx-boundary + (s1 + (s2 s0) + (s1 + ((s3 (s0) s4) (s5 s0)) + ((s3 + (s0) + (s1 (s2 s0) (s6 ((s7 (s5 s0))) (s8 s7 (s9 (s10 s0)) s7)) #f)) + (s10 s0)) + #f) + #f))) + (enter-block + #s(stx-boundary + (s0 + (s1 s2) + (s0 + ((s3 (s2) s4) (s5 s2)) + ((s3 + (s2) + (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) + (s10 s2)) + #f) + #f))) + (block-renames + (#s(stx-boundary + (s0 (s1 s2) (s0 ((s3 (s2) s4) (s5 s2)) @@ -3311,20 +9044,19 @@ (s10 s2)) #f) #f))) - . #s(stx-boundary - ((s0 - (s1 s2) - (s0 - ((s3 (s2) s4) (s5 s2)) - ((s3 - (s2) - (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) - (s10 s2)) - #f) - #f)))) + (s0 + (s1 s2) + (s0 + ((s3 (s2) s4) (s5 s2)) + ((s3 + (s2) + (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) + (s10 s2)) + #f) + #f))) (next . #f) - (enter-check + (visit . #s(stx-boundary (s0 @@ -3337,7 +9069,8 @@ (s10 s2)) #f) #f))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 @@ -3350,32 +9083,19 @@ (s10 s2)) #f) #f))) - (block->list - . - #s(stx-boundary - ((s0 - (s1 s2) - (s0 - ((s3 (s2) s4) (s5 s2)) - ((s3 - (s2) - (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) - (s10 s2)) - #f) - #f)))) + (block->list . #f) (enter-list - . #s(stx-boundary - ((s0 - (s1 s2) - (s0 - ((s3 (s2) s4) (s5 s2)) - ((s3 - (s2) - (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) - (s10 s2)) - #f) - #f)))) + (s0 + (s1 s2) + (s0 + ((s3 (s2) s4) (s5 s2)) + ((s3 + (s2) + (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) + (s10 s2)) + #f) + #f))) (next . #f) (visit . @@ -3404,14 +9124,25 @@ (s10 s2)) #f) #f))) - (prim-if . #f) + (prim-if + . + #s(stx-boundary + (s0 + (s1 s2) + (s0 + ((s3 (s2) s4) (s5 s2)) + ((s3 + (s2) + (s0 (s1 s2) (s6 ((s7 (s5 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) + (s10 s2)) + #f) + #f))) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3422,9 +9153,7 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . @@ -3447,42 +9176,52 @@ (s0 (s5 s2) (s6 ((s7 (s4 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) (s10 s2)) #f))) - (prim-if . #f) + (prim-if + . + #s(stx-boundary + (s0 + ((s1 (s2) s3) (s4 s2)) + ((s1 + (s2) + (s0 (s5 s2) (s6 ((s7 (s4 s2))) (s8 s7 (s9 (s10 s2)) s7)) #f)) + (s10 s2)) + #f))) (visit . #s(stx-boundary ((s0 (s1) s2) (s3 s1)))) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 (s1 (s2) s3) (s4 s2)))) + (tag2 + #s(stx-boundary (s0 (s1 (s2) s3) (s4 s2))) + . + #s(stx-boundary ((s1 (s2) s3) (s4 s2)))) (enter-prim . #s(stx-boundary (s0 (s1 (s2) s3) (s4 s2)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary ((s0 (s1) s2) (s3 s1)))) + (prim-#%app . #s(stx-boundary (s0 (s1 (s2) s3) (s4 s2)))) (next . #f) (visit . #s(stx-boundary (s0 (s1) s2))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) s2))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s1))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (prim-lambda . #s(stx-boundary (s0 (s1) s2))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s1)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s2))) - (return . #s(stx-boundary (s0 (s1) s2))) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s2))) (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3493,12 +9232,8 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary ((s0 (s1) s2) (s3 s4 s1)))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2) s3) (s0 s4 s2)))) - (return . #s(stx-boundary (s0 (s1 (s2) s3) (s0 s4 s2)))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 (s1 (s2) s3) (s0 s4 s2)))) (next . #f) (visit . @@ -3508,13 +9243,18 @@ (s2 (s3 s1) (s4 ((s5 (s6 s1))) (s7 s5 (s8 (s9 s1)) s5)) #f)) (s9 s1)))) (resolve . #s(stx-boundary s0)) - (tag - . + (tag2 #s(stx-boundary (s0 (s1 (s2) (s3 (s4 s2) (s5 ((s6 (s7 s2))) (s8 s6 (s9 (s10 s2)) s6)) #f)) + (s10 s2))) + . + #s(stx-boundary + ((s1 + (s2) + (s3 (s4 s2) (s5 ((s6 (s7 s2))) (s8 s6 (s9 (s10 s2)) s6)) #f)) (s10 s2)))) (enter-prim . @@ -3524,14 +9264,14 @@ (s2) (s3 (s4 s2) (s5 ((s6 (s7 s2))) (s8 s6 (s9 (s10 s2)) s6)) #f)) (s10 s2)))) - (prim-#%app . #f) - (enter-list + (prim-#%app . #s(stx-boundary - ((s0 - (s1) - (s2 (s3 s1) (s4 ((s5 (s6 s1))) (s7 s5 (s8 (s9 s1)) s5)) #f)) - (s9 s1)))) + (s0 + (s1 + (s2) + (s3 (s4 s2) (s5 ((s6 (s7 s2))) (s8 s6 (s9 (s10 s2)) s6)) #f)) + (s10 s2)))) (next . #f) (visit . @@ -3546,39 +9286,38 @@ (s0 (s1) (s2 (s3 s1) (s4 ((s5 (s6 s1))) (s7 s5 (s8 (s9 s1)) s5)) #f)))) - (prim-lambda . #f) + (prim-lambda + . + #s(stx-boundary + (s0 + (s1) + (s2 (s3 s1) (s4 ((s5 (s6 s1))) (s7 s5 (s8 (s9 s1)) s5)) #f)))) (lambda-renames #s(stx-boundary (s0)) - . #s(stx-boundary - ((s1 (s2 s0) (s3 ((s4 (s5 s0))) (s6 s4 (s7 (s8 s0)) s4)) #f)))) + (s1 (s2 s0) (s3 ((s4 (s5 s0))) (s6 s4 (s7 (s8 s0)) s4)) #f))) (enter-block - . #s(stx-boundary - ((s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f)))) + (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) (block-renames + (#s(stx-boundary + (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) #s(stx-boundary - ((s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) - . - #s(stx-boundary - ((s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f)))) + (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) (next . #f) - (enter-check + (visit . #s(stx-boundary (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) - (block->list - . - #s(stx-boundary - ((s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f)))) + (block->list . #f) (enter-list - . #s(stx-boundary - ((s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f)))) + (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) (next . #f) (visit . @@ -3589,14 +9328,16 @@ . #s(stx-boundary (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) - (prim-if . #f) + (prim-if + . + #s(stx-boundary + (s0 (s1 s2) (s3 ((s4 (s5 s2))) (s6 s4 (s7 (s8 s2)) s4)) #f))) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3607,13 +9348,12 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary (s0 ((s1 (s2 s3))) (s4 s1 (s5 (s6 s3)) s1)))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary (s0 ((s1 (s2 s3))) (s4 s1 (s5 (s6 s3)) s1))) . #s(stx-boundary (s0 ((s1 (s2 s3))) (s4 s1 (s5 (s6 s3)) s1)))) (macro-pre-x @@ -3624,6 +9364,7 @@ . #s(stx-boundary (s7 ((s1 (s2 s3))) (s4 s1 (s5 (s6 s3)) s1)))) (exit-macro + #s(stx-boundary (s0 (((s1) (s2 s3))) (s4 s1 (s5 (s6 s3)) s1))) . #s(stx-boundary (s0 (((s1) (s2 s3))) (s4 s1 (s5 (s6 s3)) s1)))) (visit @@ -3633,19 +9374,22 @@ (enter-prim . #s(stx-boundary (s0 (((s1) (s2 s3))) (s4 s1 (s5 (s6 s3)) s1)))) - (prim-let-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 s2)))) + (prim-let-values . - #s(stx-boundary ((s3 s0 (s4 (s5 s2)) s0)))) + #s(stx-boundary (s0 (((s1) (s2 s3))) (s4 s1 (s5 (s6 s3)) s1)))) + (letX-renames + () + () + ((#s(stx-boundary s0))) + (#s(stx-boundary (s1 s2))) + #s(stx-boundary (s3 s0 (s4 (s5 s2)) s0))) (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3656,35 +9400,37 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 s1 (s2 (s3 s4)) s1)))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (enter-block #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) (block-renames - #s(stx-boundary ((s0 s1 (s2 (s3 s4)) s1))) - . - #s(stx-boundary ((s0 s1 (s2 (s3 s4)) s1)))) + (#s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) + #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) (next . #f) - (enter-check . #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) + (enter-macro + #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1)) + . + #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4)) s1))) (macro-post-x #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f)) . #s(stx-boundary (s2 s1 (s3 (s4 s5)) s1))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) - (return . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) - (exit-check . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) - (block->list . #s(stx-boundary ((s0 s1 (s2 (s3 (s4 s5)) s1) #f)))) - (enter-list . #s(stx-boundary ((s0 s1 (s2 (s3 (s4 s5)) s1) #f)))) + (exit-macro + #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f)) + . + #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) - (prim-if . #f) + (prim-if . #s(stx-boundary (s0 s1 (s2 (s3 (s4 s5)) s1) #f))) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) @@ -3692,24 +9438,29 @@ (next . #f) (visit . #s(stx-boundary (s0 (s1 (s2 s3)) s4))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 (s2 s3)) s4))) + (enter-macro + #s(stx-boundary (s0 (s1 (s2 s3)) s4)) + . + #s(stx-boundary (s0 (s1 (s2 s3)) s4))) (macro-pre-x . #s(stx-boundary (s0 (s1 (s2 s3)) s4))) (macro-post-x #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f)) . #s(stx-boundary (s4 (s1 (s2 s3)) s5))) - (exit-macro . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) + (exit-macro + #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f)) + . + #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) (visit . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) - (prim-if . #f) + (prim-if . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) (visit . #s(stx-boundary (s0 (s1 s2)))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 s3)))) + (tag2 #s(stx-boundary (s0 s1 (s2 s3))) . #s(stx-boundary (s1 (s2 s3)))) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 s2)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 s3)))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3719,10 +9470,9 @@ (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3733,64 +9483,48 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary (s0 (s1 s2 s3)))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 s3)))) - (return . #s(stx-boundary (s0 s1 (s0 s2 s3)))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 s2 s3)))) (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1))) + (enter-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) (macro-pre-x . #s(stx-boundary (s0 s1))) (macro-post-x #s(stx-boundary (s0 s1)) . #s(stx-boundary (s2 s1))) - (exit-macro . #s(stx-boundary (s0 s1))) + (exit-macro #s(stx-boundary (s0 s1)) . #s(stx-boundary (s0 s1))) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1))) - (prim-#%expression . #f) + (prim-#%expression . #s(stx-boundary (s0 s1))) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) (tag . #s(stx-boundary s0)) - (exit-prim . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary s0)) (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s1 s3 s4)) s5 (s6 #f)))) - (return . #s(stx-boundary (s0 (s1 s2 (s1 s3 s4)) s5 (s6 #f)))) - (next . #f) - (visit . #s(stx-boundary #f)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) - (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-prim + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . - #s(stx-boundary (s0 s1 (s0 (s2 s3 (s2 s4 s5)) s1 (s6 #f)) (s6 #f)))) - (return + #s(stx-boundary (s0 (s1 s2 (s1 s3 s4)) s5 (s6 #f)))) + (next . #f) + (visit . #s(stx-boundary #f)) + (resolve . #s(stx-boundary s0)) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) + (enter-prim . #s(stx-boundary (s0 . #f))) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s0 (s2 s3 (s2 s4 s5)) s1 (s6 #f)) (s6 #f)))) (exit-list - . - #s(stx-boundary ((s0 s1 (s0 (s2 s3 (s2 s4 s5)) s1 (s6 #f)) (s6 #f))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 s3 s4))) - (s5 s1 (s5 (s2 s6 (s2 s7 s4)) s1 (s8 #f)) (s8 #f))))) - (return + #s(stx-boundary (s0 s1 (s0 (s2 s3 (s2 s4 s5)) s1 (s6 #f)) (s6 #f)))) + (exit-prim/return . #s(stx-boundary (s0 @@ -3799,21 +9533,11 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 s2 s3) - (s4 - (((s5) (s1 s6 s3))) - (s0 s5 (s0 (s1 s7 (s1 s8 s3)) s5 (s9 #f)) (s9 #f))) - (s9 #f)))) - (return + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 @@ -3823,26 +9547,14 @@ (s0 s5 (s0 (s1 s7 (s1 s8 s3)) s5 (s9 #f)) (s9 #f))) (s9 #f)))) (exit-list - . - #s(stx-boundary - ((s0 - (s1 s2 s3) - (s4 - (((s5) (s1 s6 s3))) - (s0 s5 (s0 (s1 s7 (s1 s8 s3)) s5 (s9 #f)) (s9 #f))) - (s9 #f))))) - (exit-prim - . #s(stx-boundary (s0 - (s1) - (s2 - (s3 s4 s1) - (s5 - (((s6) (s3 s7 s1))) - (s2 s6 (s2 (s3 s8 (s3 s9 s1)) s6 (s10 #f)) (s10 #f))) - (s10 #f))))) - (return + (s1 s2 s3) + (s4 + (((s5) (s1 s6 s3))) + (s0 s5 (s0 (s1 s7 (s1 s8 s3)) s5 (s9 #f)) (s9 #f))) + (s9 #f)))) + (exit-prim/return . #s(stx-boundary (s0 @@ -3857,10 +9569,9 @@ (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) + (tag2 #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s1 s2))) (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) + (prim-#%app . #s(stx-boundary (s0 s1 s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -3871,35 +9582,8 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list - . - #s(stx-boundary - ((s0 - (s1) - (s2 - (s3 s4 s1) - (s5 - (((s6) (s3 s7 s1))) - (s2 s6 (s2 (s3 s8 (s3 s9 s1)) s6 (s10 #f)) (s10 #f))) - (s10 #f))) - (s3 s9 s1)))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 - (s2) - (s3 - (s0 s4 s2) - (s5 - (((s6) (s0 s7 s2))) - (s3 s6 (s3 (s0 s8 (s0 s9 s2)) s6 (s10 #f)) (s10 #f))) - (s10 #f))) - (s0 s9 s2)))) - (return + (exit-prim/return . #s(stx-boundary (s0 s1 s2))) + (exit-prim/return . #s(stx-boundary (s0 @@ -3915,28 +9599,11 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 (s2 (s3) s4) (s1 s5 s3)) - (s1 - (s2 - (s3) - (s0 - (s1 s6 s3) - (s7 - (((s8) (s1 s5 s3))) - (s0 s8 (s0 (s1 s9 (s1 s10 s3)) s8 (s11 #f)) (s11 #f))) - (s11 #f))) - (s1 s10 s3)) - (s11 #f)))) - (return + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 @@ -3955,31 +9622,11 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 s2 s3) - (s0 - (s1 (s4 (s3) s5) (s1 s6 s3)) - (s1 - (s4 - (s3) - (s0 - (s1 s2 s3) - (s7 - (((s8) (s1 s6 s3))) - (s0 s8 (s0 (s1 s9 (s1 s10 s3)) s8 (s11 #f)) (s11 #f))) - (s11 #f))) - (s1 s10 s3)) - (s11 #f)) - (s11 #f)))) - (return + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) + (exit-prim/return . #s(stx-boundary (s0 @@ -3999,46 +9646,24 @@ (s11 #f)) (s11 #f)))) (exit-list - . - #s(stx-boundary - ((s0 - (s1 s2 s3) - (s0 - (s1 (s4 (s3) s5) (s1 s6 s3)) - (s1 - (s4 - (s3) - (s0 - (s1 s2 s3) - (s7 - (((s8) (s1 s6 s3))) - (s0 s8 (s0 (s1 s9 (s1 s10 s3)) s8 (s11 #f)) (s11 #f))) - (s11 #f))) - (s1 s10 s3)) - (s11 #f)) - (s11 #f))))) - (exit-prim - . #s(stx-boundary (s0 - (s1) - (s2 - (s3 s4 s1) - (s2 - (s3 (s0 (s1) s5) (s3 s6 s1)) - (s3 + (s1 s2 s3) + (s0 + (s1 (s4 (s3) s5) (s1 s6 s3)) + (s1 + (s4 + (s3) (s0 - (s1) - (s2 - (s3 s4 s1) - (s7 - (((s8) (s3 s6 s1))) - (s2 s8 (s2 (s3 s9 (s3 s10 s1)) s8 (s11 #f)) (s11 #f))) - (s11 #f))) - (s3 s10 s1)) - (s11 #f)) - (s11 #f))))) - (return + (s1 s2 s3) + (s7 + (((s8) (s1 s6 s3))) + (s0 s8 (s0 (s1 s9 (s1 s10 s3)) s8 (s11 #f)) (s11 #f))) + (s11 #f))) + (s1 s10 s3)) + (s11 #f)) + (s11 #f)))) + (exit-prim/return . #s(stx-boundary (s0 @@ -4064,29 +9689,7 @@ (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list - . - #s(stx-boundary - ((s0 - (s1) - (s2 - (s3 s4 s1) - (s2 - (s3 (s0 (s1) s5) (s3 s6 s1)) - (s3 - (s0 - (s1) - (s2 - (s3 s4 s1) - (s7 - (((s8) (s3 s6 s1))) - (s2 s8 (s2 (s3 s9 (s3 s10 s1)) s8 (s11 #f)) (s11 #f))) - (s11 #f))) - (s3 s10 s1)) - (s11 #f)) - (s11 #f))) - s12))) - (exit-prim + (exit-prim/return . #s(stx-boundary (s0 @@ -4109,45 +9712,20 @@ (s11 #f)) (s11 #f))) s12))) - (return - . - #s(stx-boundary - (s0 - (s1 - (s2) - (s3 - (s0 s4 s2) - (s3 - (s0 (s1 (s2) s5) (s0 s6 s2)) - (s0 - (s1 - (s2) - (s3 - (s0 s4 s2) - (s7 - (((s8) (s0 s6 s2))) - (s3 s8 (s3 (s0 s9 (s0 s10 s2)) s8 (s11 #f)) (s11 #f))) - (s11 #f))) - (s0 s10 s2)) - (s11 #f)) - (s11 #f))) - s12))) - (next-group . #f) (enter-block - . #s(stx-boundary - ((s0 - s1 - (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) - (s2 - ((s1 ((s11 (s12) s13) s14))) - (s0 - s1 - (s2 () (s4 () () (s15 s10 (s16 (s5))))) - (s17 #f #:opaque s14))))))) + (s0 + s1 + (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) + (s2 + ((s1 ((s11 (s12) s13) s14))) + (s0 + s1 + (s2 () (s4 () () (s15 s10 (s16 (s5))))) + (s17 #f #:opaque s14)))))) (block-renames - #s(stx-boundary - ((s0 + (#s(stx-boundary + (s0 s1 (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) (s2 @@ -4156,19 +9734,18 @@ s1 (s2 () (s4 () () (s15 s10 (s16 (s5))))) (s17 #f #:opaque s14)))))) - . #s(stx-boundary - ((s0 - s1 - (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) - (s2 - ((s1 ((s11 (s12) s13) s14))) - (s0 - s1 - (s2 () (s4 () () (s15 s10 (s16 (s5))))) - (s17 #f #:opaque s14))))))) + (s0 + s1 + (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) + (s2 + ((s1 ((s11 (s12) s13) s14))) + (s0 + s1 + (s2 () (s4 () () (s15 s10 (s16 (s5))))) + (s17 #f #:opaque s14)))))) (next . #f) - (enter-check + (visit . #s(stx-boundary (s0 @@ -4180,7 +9757,8 @@ s1 (s2 () (s4 () () (s15 s10 (s16 (s5))))) (s17 #f #:opaque s14)))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 @@ -4192,30 +9770,18 @@ s1 (s2 () (s4 () () (s15 s10 (s16 (s5))))) (s17 #f #:opaque s14)))))) - (block->list - . - #s(stx-boundary - ((s0 - s1 - (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) - (s2 - ((s1 ((s11 (s12) s13) s14))) - (s0 - s1 - (s2 () (s4 () () (s15 s10 (s16 (s5))))) - (s17 #f #:opaque s14))))))) + (block->list . #f) (enter-list - . #s(stx-boundary - ((s0 - s1 - (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) - (s2 - ((s1 ((s11 (s12) s13) s14))) - (s0 - s1 - (s2 () (s4 () () (s15 s10 (s16 (s5))))) - (s17 #f #:opaque s14))))))) + (s0 + s1 + (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) + (s2 + ((s1 ((s11 (s12) s13) s14))) + (s0 + s1 + (s2 () (s4 () () (s15 s10 (s16 (s5))))) + (s17 #f #:opaque s14)))))) (next . #f) (visit . @@ -4242,7 +9808,18 @@ s1 (s2 () (s4 () () (s15 s10 (s16 (s5))))) (s17 #f #:opaque s14)))))) - (prim-if . #f) + (prim-if + . + #s(stx-boundary + (s0 + s1 + (s2 ((s3 s1)) (s4 (((s5) (s6 0 (s7 s3)))) () (s8 (s9 s10 s5)))) + (s2 + ((s1 ((s11 (s12) s13) s14))) + (s0 + s1 + (s2 () (s4 () () (s15 s10 (s16 (s5))))) + (s17 #f #:opaque s14)))))) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) @@ -4254,6 +9831,8 @@ (s0 ((s1 s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4)))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 ((s1 s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4))))) . #s(stx-boundary (s0 ((s1 s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4)))))) @@ -4268,6 +9847,8 @@ #s(stx-boundary (s10 ((s1 s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4)))))) (exit-macro + #s(stx-boundary + (s0 (((s1) s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4))))) . #s(stx-boundary (s0 (((s1) s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4)))))) @@ -4280,37 +9861,37 @@ . #s(stx-boundary (s0 (((s1) s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4)))))) - (prim-let-values . #f) - (let-renames - (#s(stx-boundary ((s0) s1))) + (prim-let-values . - #s(stx-boundary ((s2 (((s3) (s4 0 (s5 s0)))) () (s6 (s7 s8 s3)))))) + #s(stx-boundary + (s0 (((s1) s2)) (s3 (((s4) (s5 0 (s6 s1)))) () (s7 (s8 s9 s4)))))) + (letX-renames + () + () + ((#s(stx-boundary s0))) + (#s(stx-boundary s1)) + #s(stx-boundary (s2 (((s3) (s4 0 (s5 s0)))) () (s6 (s7 s8 s3))))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (next-group . #f) (enter-block - . - #s(stx-boundary ((s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1)))))) + #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) (block-renames - #s(stx-boundary ((s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) - . - #s(stx-boundary ((s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1)))))) + (#s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) + #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) (next . #f) - (enter-check + (visit . #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) - (block->list - . - #s(stx-boundary ((s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1)))))) + (block->list . #f) (enter-list - . - #s(stx-boundary ((s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1)))))) + #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) (next . #f) (visit . @@ -4319,22 +9900,27 @@ (enter-prim . #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 0 (s2 s3))))) - () + (prim-letrec-syntaxes+values . - #s(stx-boundary ((s4 (s5 s6 s0))))) + #s(stx-boundary (s0 (((s1) (s2 0 (s3 s4)))) () (s5 (s6 s7 s1))))) + (letX-renames + ((#s(stx-boundary s0))) + (#s(stx-boundary (s1 0 (s2 s3)))) + () + () + #s(stx-boundary (s4 (s5 s6 s0)))) (prepare-env . #f) (next . #f) (enter-bind . #f) (visit . #s(stx-boundary (s0 0 (s1 s2)))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 0 (s2 s3)))) + (tag2 + #s(stx-boundary (s0 s1 0 (s2 s3))) + . + #s(stx-boundary (s1 0 (s2 s3)))) (enter-prim . #s(stx-boundary (s0 s1 0 (s2 s3)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 0 (s1 s2)))) + (prim-#%app . #s(stx-boundary (s0 s1 0 (s2 s3)))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -4343,42 +9929,40 @@ (next . #f) (visit . #s(stx-boundary 0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 0))) + (tag2 #s(stx-boundary (s0 . 0)) . #s(stx-boundary 0)) (enter-prim . #s(stx-boundary (s0 . 0))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 0))) - (return . #s(stx-boundary (s0 0))) + (prim-#%datum . #s(stx-boundary (s0 . 0))) + (exit-prim/return . #s(stx-boundary (s0 0))) (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (exit-list . #s(stx-boundary (s0 (s1 0) (s2 s3)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 0) (s3 s4)))) - (return . #s(stx-boundary (s0 s1 (s2 0) (s3 s4)))) + (prim-quote-syntax . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 0) (s3 s4)))) (next . #f) (exit-bind . #f) (next-group . #f) - (enter-block . #s(stx-boundary ((s0 (s1 s2 s3))))) + (enter-block #s(stx-boundary (s0 (s1 s2 s3)))) (block-renames - #s(stx-boundary ((s0 (s1 s2 s3)))) - . - #s(stx-boundary ((s0 (s1 s2 s3))))) + (#s(stx-boundary (s0 (s1 s2 s3)))) + #s(stx-boundary (s0 (s1 s2 s3)))) (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2 s3)))) - (exit-check . #s(stx-boundary (s0 (s1 s2 s3)))) - (block->list . #s(stx-boundary ((s0 (s1 s2 s3))))) - (enter-list . #s(stx-boundary ((s0 (s1 s2 s3))))) + (visit . #s(stx-boundary (s0 (s1 s2 s3)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 s2 s3)))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 (s1 s2 s3)))) (next . #f) (visit . #s(stx-boundary (s0 (s1 s2 s3)))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 s3 s4)))) + (tag2 + #s(stx-boundary (s0 s1 (s2 s3 s4))) + . + #s(stx-boundary (s1 (s2 s3 s4)))) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3 s4)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 s2 s3)))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 s3 s4)))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -4387,7 +9971,7 @@ (next . #f) (visit . #s(stx-boundary (s0 s1 s2))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 s2))) + (enter-macro #s(stx-boundary (s0 s1 s2)) . #s(stx-boundary (s0 s1 s2))) (macro-pre-x . #s(stx-boundary (s0 s1 s2))) (local-value . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -4398,36 +9982,58 @@ (local-value . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (local-value-result . #f) + (track-syntax s0 #s(stx-boundary (s1 s2)) . #s(stx-boundary (s1 s2))) + (track-syntax s0 #s(stx-boundary s1) . #s(stx-boundary s1)) + (track-syntax + s0 + #s(stx-boundary (s1 ((s2 (s3 (s4 s5) s6))) (s7 s8))) + . + #s(stx-boundary (s1 ((s2 (s3 (s4 s5) s6))) (s7 s8)))) (macro-post-x #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7))) . #s(stx-boundary (s4 s5 s8))) - (exit-macro . #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) + (exit-macro + #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7))) + . + #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) (visit . #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) + (enter-macro + #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7))) + . + #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) (macro-pre-x . #s(stx-boundary (s0 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) (macro-post-x #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7))) . #s(stx-boundary (s8 ((s1 (s2 (s3 s4) s5))) (s6 s7)))) - (exit-macro . #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7)))) + (exit-macro + #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7))) + . + #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7)))) (visit . #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7)))) - (prim-let-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2 s3) s4)))) + (prim-let-values . - #s(stx-boundary ((s5 s6)))) + #s(stx-boundary (s0 (((s1) (s2 (s3 s4) s5))) (s6 s7)))) + (letX-renames + () + () + ((#s(stx-boundary s0))) + (#s(stx-boundary (s1 (s2 s3) s4))) + #s(stx-boundary (s5 s6))) (next . #f) (visit . #s(stx-boundary (s0 (s1 s2) s3))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 s3) s4))) + (tag2 + #s(stx-boundary (s0 s1 (s2 s3) s4)) + . + #s(stx-boundary (s1 (s2 s3) s4))) (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) s4))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 s2) s3))) + (prim-#%app . #s(stx-boundary (s0 s1 (s2 s3) s4))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -4438,67 +10044,47 @@ (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1))) (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) + (exit-prim/return . #s(stx-boundary (s0 s1))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 (s1 s2) s3))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) s4))) - (return . #s(stx-boundary (s0 s1 (s2 s3) s4))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 s3) s4))) + (enter-block #s(stx-boundary (s0 s1))) + (block-renames (#s(stx-boundary (s0 s1))) #s(stx-boundary (s0 s1))) (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) + (visit . #s(stx-boundary (s0 s1))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1))) (next . #f) (visit . #s(stx-boundary (s0 s1))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 s1))) - (prim-#%expression . #f) + (prim-#%expression . #s(stx-boundary (s0 s1))) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) (tag . #s(stx-boundary s0)) - (exit-prim . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (((s1) (s2 s3 (s4 s5) s6))) s7))) - (return . #s(stx-boundary (s0 (((s1) (s2 s3 (s4 s5) s6))) s7))) - (exit-list . #s(stx-boundary (s0 (s1 (((s2) (s3 s4 (s5 s6) s7))) s8)))) - (exit-prim + (exit-prim/return . #s(stx-boundary s0)) + (exit-list #s(stx-boundary s0)) + (exit-prim/return + . + #s(stx-boundary (s0 (((s1) (s2 s3 (s4 s5) s6))) s7))) + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 (((s3) (s0 s4 (s5 s6) s7))) s8)))) - (return . #s(stx-boundary (s0 s1 (s2 (((s3) (s0 s4 (s5 s6) s7))) s8)))) (exit-list - . - #s(stx-boundary ((s0 s1 (s2 (((s3) (s0 s4 (s5 s6) s7))) s8))))) - (tag - . - #s(stx-boundary (s0 () (s1 s2 (s0 (((s3) (s1 s4 (s5 s6) s7))) s8))))) - (exit-prim - . - #s(stx-boundary (s0 () (s1 s2 (s0 (((s3) (s1 s4 (s5 s6) s7))) s8))))) - (return + #s(stx-boundary (s0 s1 (s2 (((s3) (s0 s4 (s5 s6) s7))) s8)))) + (exit-prim/return . #s(stx-boundary (s0 () (s1 s2 (s0 (((s3) (s1 s4 (s5 s6) s7))) s8))))) (exit-list - . - #s(stx-boundary - ((s0 () (s1 s2 (s0 (((s3) (s1 s4 (s5 s6) s7))) s8)))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) s2)) - (s0 () (s3 s4 (s0 (((s5) (s3 s6 (s7 s8) s9))) s1)))))) - (return + #s(stx-boundary (s0 () (s1 s2 (s0 (((s3) (s1 s4 (s5 s6) s7))) s8))))) + (exit-prim/return . #s(stx-boundary (s0 @@ -4516,6 +10102,13 @@ (s12 #f #:opaque s5))))) (resolve . #s(stx-boundary s0)) (enter-macro + #s(stx-boundary + (s0 + ((s1 ((s2 (s3) s4) s5))) + (s6 + s1 + (s0 () (s7 () () (s8 s9 (s10 (s11))))) + (s12 #f #:opaque s5)))) . #s(stx-boundary (s0 @@ -4550,6 +10143,13 @@ (s7 () (s8 () () (s9 s10 (s11 (s12))))) (s13 #f #:opaque s5))))) (exit-macro + #s(stx-boundary + (s0 + (((s1) ((s2 (s3) s4) s5))) + (s6 + s1 + (s7 () (s8 () () (s9 s10 (s11 (s12))))) + (s13 #f #:opaque s5)))) . #s(stx-boundary (s0 @@ -4577,91 +10177,83 @@ s1 (s7 () (s8 () () (s9 s10 (s11 (s12))))) (s13 #f #:opaque s5))))) - (prim-let-values . #f) - (let-renames - (#s(stx-boundary ((s0) ((s1 (s2) s3) s4)))) + (prim-let-values . #s(stx-boundary - ((s5 - s0 - (s6 () (s7 () () (s8 s9 (s10 (s11))))) - (s12 #f #:opaque s4))))) + (s0 + (((s1) ((s2 (s3) s4) s5))) + (s6 + s1 + (s7 () (s8 () () (s9 s10 (s11 (s12))))) + (s13 #f #:opaque s5))))) + (letX-renames + () + () + ((#s(stx-boundary s0))) + (#s(stx-boundary ((s1 (s2) s3) s4))) + #s(stx-boundary + (s5 + s0 + (s6 () (s7 () () (s8 s9 (s10 (s11))))) + (s12 #f #:opaque s4)))) (next . #f) (visit . #s(stx-boundary ((s0 (s1) s2) s3))) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 (s1 (s2) s3) s4))) + (tag2 + #s(stx-boundary (s0 (s1 (s2) s3) s4)) + . + #s(stx-boundary ((s1 (s2) s3) s4))) (enter-prim . #s(stx-boundary (s0 (s1 (s2) s3) s4))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary ((s0 (s1) s2) s3))) + (prim-#%app . #s(stx-boundary (s0 (s1 (s2) s3) s4))) (next . #f) (visit . #s(stx-boundary (s0 (s1) s2))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1) s2))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s1))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) + (prim-lambda . #s(stx-boundary (s0 (s1) s2))) + (lambda-renames #s(stx-boundary (s0)) #s(stx-boundary s1)) + (enter-block #s(stx-boundary s0)) + (block-renames (#s(stx-boundary s0)) #s(stx-boundary s0)) (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) + (visit . #s(stx-boundary s0)) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary s0)) + (block->list . #f) + (enter-list #s(stx-boundary s0)) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s2))) - (return . #s(stx-boundary (s0 (s1) s2))) + (exit-list #s(stx-boundary s0)) + (exit-prim/return . #s(stx-boundary (s0 (s1) s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary ((s0 (s1) s2) s3))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2) s3) s4))) - (return . #s(stx-boundary (s0 (s1 (s2) s3) s4))) - (next-group . #f) + (exit-prim/return . #s(stx-boundary (s0 (s1 (s2) s3) s4))) (enter-block - . #s(stx-boundary - ((s0 - s1 - (s2 () (s3 () () (s4 s5 (s6 (s7))))) - (s8 #f #:opaque s9))))) + (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) (block-renames + (#s(stx-boundary + (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) #s(stx-boundary - ((s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) - . - #s(stx-boundary - ((s0 - s1 - (s2 () (s3 () () (s4 s5 (s6 (s7))))) - (s8 #f #:opaque s9))))) + (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) (next . #f) - (enter-check + (visit . #s(stx-boundary (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) - (exit-check + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) - (block->list - . - #s(stx-boundary - ((s0 - s1 - (s2 () (s3 () () (s4 s5 (s6 (s7))))) - (s8 #f #:opaque s9))))) + (block->list . #f) (enter-list - . #s(stx-boundary - ((s0 - s1 - (s2 () (s3 () () (s4 s5 (s6 (s7))))) - (s8 #f #:opaque s9))))) + (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) (next . #f) (visit . @@ -4672,7 +10264,10 @@ . #s(stx-boundary (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) - (prim-if . #f) + (prim-if + . + #s(stx-boundary + (s0 s1 (s2 () (s3 () () (s4 s5 (s6 (s7))))) (s8 #f #:opaque s9)))) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) @@ -4680,55 +10275,71 @@ (next . #f) (visit . #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) + (enter-macro + #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5)))))) + . + #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) (macro-pre-x . #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) (macro-post-x #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5)))))) . #s(stx-boundary (s6 () (s1 () () (s2 s3 (s4 (s5))))))) - (exit-macro . #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) + (exit-macro + #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5)))))) + . + #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) (visit . #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary ((s0 () () (s1 s2 (s3 (s4))))))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 () () (s1 s2 (s3 (s4))))))) - (block-renames - #s(stx-boundary ((s0 () () (s1 s2 (s3 (s4)))))) + (prim-let-values . - #s(stx-boundary ((s0 () () (s1 s2 (s3 (s4))))))) + #s(stx-boundary (s0 () (s1 () () (s2 s3 (s4 (s5))))))) + (letX-renames + () + () + () + () + #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) + (enter-block #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) + (block-renames + (#s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) + #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) (next . #f) - (enter-check . #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) - (exit-check . #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) - (block->list . #s(stx-boundary ((s0 () () (s1 s2 (s3 (s4))))))) - (enter-list . #s(stx-boundary ((s0 () () (s1 s2 (s3 (s4))))))) + (visit . #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) (next . #f) (visit . #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames () () . #s(stx-boundary ((s0 s1 (s2 (s3)))))) + (prim-letrec-syntaxes+values + . + #s(stx-boundary (s0 () () (s1 s2 (s3 (s4)))))) + (letX-renames () () () () #s(stx-boundary (s0 s1 (s2 (s3))))) (prepare-env . #f) (next-group . #f) - (enter-block . #s(stx-boundary ((s0 s1 (s2 (s3)))))) + (enter-block #s(stx-boundary (s0 s1 (s2 (s3))))) (block-renames - #s(stx-boundary ((s0 s1 (s2 (s3))))) - . - #s(stx-boundary ((s0 s1 (s2 (s3)))))) + (#s(stx-boundary (s0 s1 (s2 (s3))))) + #s(stx-boundary (s0 s1 (s2 (s3))))) (next . #f) - (enter-check . #s(stx-boundary (s0 s1 (s2 (s3))))) - (exit-check . #s(stx-boundary (s0 s1 (s2 (s3))))) - (block->list . #s(stx-boundary ((s0 s1 (s2 (s3)))))) - (enter-list . #s(stx-boundary ((s0 s1 (s2 (s3)))))) + (visit . #s(stx-boundary (s0 s1 (s2 (s3))))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 s1 (s2 (s3))))) + (block->list . #f) + (enter-list #s(stx-boundary (s0 s1 (s2 (s3))))) (next . #f) (visit . #s(stx-boundary (s0 s1 (s2 (s3))))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2 (s3 (s4))))) + (tag2 + #s(stx-boundary (s0 s1 s2 (s3 (s4)))) + . + #s(stx-boundary (s1 s2 (s3 (s4))))) (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 (s4))))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1 (s2 (s3))))) + (prim-#%app . #s(stx-boundary (s0 s1 s2 (s3 (s4))))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -4744,26 +10355,24 @@ (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1)))) (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 (s1)))) - (return . #s(stx-boundary (s0 (s1)))) - (exit-list . #s(stx-boundary (s0 s1 (s2 (s3))))) - (exit-prim . #s(stx-boundary (s0 s1 s2 (s3 (s4))))) - (return . #s(stx-boundary (s0 s1 s2 (s3 (s4))))) - (exit-list . #s(stx-boundary ((s0 s1 s2 (s3 (s4)))))) - (tag . #s(stx-boundary (s0 () (s1 s2 s3 (s4 (s5)))))) - (exit-prim . #s(stx-boundary (s0 () (s1 s2 s3 (s4 (s5)))))) - (return . #s(stx-boundary (s0 () (s1 s2 s3 (s4 (s5)))))) - (exit-list . #s(stx-boundary ((s0 () (s1 s2 s3 (s4 (s5))))))) - (exit-prim . #s(stx-boundary (s0 () (s0 () (s1 s2 s3 (s4 (s5))))))) - (return . #s(stx-boundary (s0 () (s0 () (s1 s2 s3 (s4 (s5))))))) + (exit-prim/return . #s(stx-boundary (s0 (s1)))) + (exit-prim/return . #s(stx-boundary (s0 s1 s2 (s3 (s4))))) + (exit-list #s(stx-boundary (s0 s1 s2 (s3 (s4))))) + (exit-prim/return . #s(stx-boundary (s0 () (s1 s2 s3 (s4 (s5)))))) + (exit-list #s(stx-boundary (s0 () (s1 s2 s3 (s4 (s5)))))) + (exit-prim/return + . + #s(stx-boundary (s0 () (s0 () (s1 s2 s3 (s4 (s5))))))) (next . #f) (visit . #s(stx-boundary (s0 #f #:opaque s1))) (resolve . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #f #:opaque s2))) + (tag2 + #s(stx-boundary (s0 s1 #f #:opaque s2)) + . + #s(stx-boundary (s1 #f #:opaque s2))) (enter-prim . #s(stx-boundary (s0 s1 #f #:opaque s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #f #:opaque s1))) + (prim-#%app . #s(stx-boundary (s0 s1 #f #:opaque s2))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) @@ -4772,35 +10381,24 @@ (next . #f) (visit . #s(stx-boundary #f)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) + (tag2 #s(stx-boundary (s0 . #f)) . #s(stx-boundary #f)) (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) + (prim-#%datum . #s(stx-boundary (s0 . #f))) + (exit-prim/return . #s(stx-boundary (s0 #f))) (next . #f) (visit . #s(stx-boundary #:opaque)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #:opaque))) + (tag2 #s(stx-boundary (s0 . #:opaque)) . #s(stx-boundary #:opaque)) (enter-prim . #s(stx-boundary (s0 . #:opaque))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #:opaque))) - (return . #s(stx-boundary (s0 #:opaque))) + (prim-#%datum . #s(stx-boundary (s0 . #:opaque))) + (exit-prim/return . #s(stx-boundary (s0 #:opaque))) (next . #f) (visit . #s(stx-boundary s0)) (resolve . #s(stx-boundary s0)) (variable #s(stx-boundary s0) . #s(stx-boundary s0)) (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 (s1 #f) (s1 #:opaque) s2))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #f) (s2 #:opaque) s3))) - (return . #s(stx-boundary (s0 s1 (s2 #f) (s2 #:opaque) s3))) - (exit-prim - . - #s(stx-boundary - (s0 - s1 - (s2 () (s2 () (s3 s4 s5 (s6 (s7))))) - (s3 s8 (s6 #f) (s6 #:opaque) s9)))) - (return + (exit-prim/return . #s(stx-boundary (s0 s1 (s2 #f) (s2 #:opaque) s3))) + (exit-prim/return . #s(stx-boundary (s0 @@ -4808,45 +10406,21 @@ (s2 () (s2 () (s3 s4 s5 (s6 (s7))))) (s3 s8 (s6 #f) (s6 #:opaque) s9)))) (exit-list - . - #s(stx-boundary - ((s0 - s1 - (s2 () (s2 () (s3 s4 s5 (s6 (s7))))) - (s3 s8 (s6 #f) (s6 #:opaque) s9))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3 (s4) s5) s6))) - (s7 - s1 - (s0 () (s0 () (s2 s8 s9 (s10 (s11))))) - (s2 s12 (s10 #f) (s10 #:opaque) s6))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3 (s4) s5) s6))) - (s7 - s1 - (s0 () (s0 () (s2 s8 s9 (s10 (s11))))) - (s2 s12 (s10 #f) (s10 #:opaque) s6))))) - (exit-prim - . #s(stx-boundary (s0 s1 - (s2 - (((s3) s1)) - (s2 () (s4 s5 (s2 (((s6) (s4 s7 (s8 s9) s10))) s3)))) - (s2 - (((s1) (s4 (s11 (s12) s13) s14))) - (s0 - s1 - (s2 () (s2 () (s4 s15 s10 (s8 (s16))))) - (s4 s17 (s8 #f) (s8 #:opaque) s14)))))) - (return + (s2 () (s2 () (s3 s4 s5 (s6 (s7))))) + (s3 s8 (s6 #f) (s6 #:opaque) s9)))) + (exit-prim/return + . + #s(stx-boundary + (s0 + (((s1) (s2 (s3 (s4) s5) s6))) + (s7 + s1 + (s0 () (s0 () (s2 s8 s9 (s10 (s11))))) + (s2 s12 (s10 #f) (s10 #:opaque) s6))))) + (exit-prim/return . #s(stx-boundary (s0 @@ -4861,56 +10435,19 @@ (s2 () (s2 () (s4 s15 s10 (s8 (s16))))) (s4 s17 (s8 #f) (s8 #:opaque) s14)))))) (exit-list - . - #s(stx-boundary - ((s0 - s1 - (s2 - (((s3) s1)) - (s2 () (s4 s5 (s2 (((s6) (s4 s7 (s8 s9) s10))) s3)))) - (s2 - (((s1) (s4 (s11 (s12) s13) s14))) - (s0 - s1 - (s2 () (s2 () (s4 s15 s10 (s8 (s16))))) - (s4 s17 (s8 #f) (s8 #:opaque) s14))))))) - (exit-prim - . #s(stx-boundary (s0 - (((s1) - (s2 - (s3 - (s4) - (s5 - (s2 s6 s4) - (s5 - (s2 (s3 (s4) s7) (s2 s8 s4)) - (s2 - (s3 - (s4) - (s5 - (s2 s6 s4) - (s0 - (((s9) (s2 s8 s4))) - (s5 s9 (s5 (s2 s10 (s2 s11 s4)) s9 (s12 #f)) (s12 #f))) - (s12 #f))) - (s2 s11 s4)) - (s12 #f)) - (s12 #f))) - s13))) - (s5 - s1 + s1 + (s2 + (((s3) s1)) + (s2 () (s4 s5 (s2 (((s6) (s4 s7 (s8 s9) s10))) s3)))) + (s2 + (((s1) (s4 (s11 (s12) s13) s14))) (s0 - (((s14) s1)) - (s0 () (s2 s15 (s0 (((s16) (s2 s17 (s12 s18) s19))) s14)))) - (s0 - (((s1) (s2 (s3 (s4) s7) s13))) - (s5 - s1 - (s0 () (s0 () (s2 s20 s19 (s12 (s21))))) - (s2 s22 (s12 #f) (s12 #:opaque) s13))))))) - (return + s1 + (s2 () (s2 () (s4 s15 s10 (s8 (s16))))) + (s4 s17 (s8 #f) (s8 #:opaque) s14)))))) + (exit-prim/return . #s(stx-boundary (s0 @@ -4947,83 +10484,41 @@ (s0 () (s0 () (s2 s20 s19 (s12 (s21))))) (s2 s22 (s12 #f) (s12 #:opaque) s13))))))) (exit-list - . - #s(stx-boundary - ((s0 - (((s1) - (s2 - (s3 - (s4) - (s5 - (s2 s6 s4) - (s5 - (s2 (s3 (s4) s7) (s2 s8 s4)) - (s2 - (s3 - (s4) - (s5 - (s2 s6 s4) - (s0 - (((s9) (s2 s8 s4))) - (s5 s9 (s5 (s2 s10 (s2 s11 s4)) s9 (s12 #f)) (s12 #f))) - (s12 #f))) - (s2 s11 s4)) - (s12 #f)) - (s12 #f))) - s13))) - (s5 - s1 - (s0 - (((s14) s1)) - (s0 () (s2 s15 (s0 (((s16) (s2 s17 (s12 s18) s19))) s14)))) - (s0 - (((s1) (s2 (s3 (s4) s7) s13))) - (s5 - s1 - (s0 () (s0 () (s2 s20 s19 (s12 (s21))))) - (s2 s22 (s12 #f) (s12 #:opaque) s13)))))))) - (exit-prim - . #s(stx-boundary (s0 - (((s1) s2)) - (s0 - (((s3) - (s4 + (((s1) + (s2 + (s3 + (s4) (s5 - (s6) - (s7 - (s4 s8 s6) - (s7 - (s4 (s5 (s6) s9) (s4 s10 s6)) - (s4 + (s2 s6 s4) + (s5 + (s2 (s3 (s4) s7) (s2 s8 s4)) + (s2 + (s3 + (s4) (s5 - (s6) - (s7 - (s4 s8 s6) - (s0 - (((s11) (s4 s10 s6))) - (s7 - s11 - (s7 (s4 s12 (s4 s13 s6)) s11 (s14 #f)) - (s14 #f))) - (s14 #f))) - (s4 s13 s6)) - (s14 #f)) - (s14 #f))) - s1))) - (s7 - s3 - (s0 - (((s15) s3)) - (s0 () (s4 s16 (s0 (((s17) (s4 s18 (s14 s19) s2))) s15)))) - (s0 - (((s3) (s4 (s5 (s6) s9) s1))) - (s7 - s3 - (s0 () (s0 () (s4 s20 s2 (s14 (s21))))) - (s4 s22 (s14 #f) (s14 #:opaque) s1)))))))) - (return + (s2 s6 s4) + (s0 + (((s9) (s2 s8 s4))) + (s5 s9 (s5 (s2 s10 (s2 s11 s4)) s9 (s12 #f)) (s12 #f))) + (s12 #f))) + (s2 s11 s4)) + (s12 #f)) + (s12 #f))) + s13))) + (s5 + s1 + (s0 + (((s14) s1)) + (s0 () (s2 s15 (s0 (((s16) (s2 s17 (s12 s18) s19))) s14)))) + (s0 + (((s1) (s2 (s3 (s4) s7) s13))) + (s5 + s1 + (s0 () (s0 () (s2 s20 s19 (s12 (s21))))) + (s2 s22 (s12 #f) (s12 #:opaque) s13))))))) + (exit-prim/return . #s(stx-boundary (s0 @@ -5065,90 +10560,46 @@ (s0 () (s0 () (s4 s20 s2 (s14 (s21))))) (s4 s22 (s14 #f) (s14 #:opaque) s1)))))))) (exit-list - . - #s(stx-boundary - ((s0 - (((s1) s2)) - (s0 - (((s3) - (s4 - (s5 - (s6) - (s7 - (s4 s8 s6) - (s7 - (s4 (s5 (s6) s9) (s4 s10 s6)) - (s4 - (s5 - (s6) - (s7 - (s4 s8 s6) - (s0 - (((s11) (s4 s10 s6))) - (s7 - s11 - (s7 (s4 s12 (s4 s13 s6)) s11 (s14 #f)) - (s14 #f))) - (s14 #f))) - (s4 s13 s6)) - (s14 #f)) - (s14 #f))) - s1))) - (s7 - s3 - (s0 - (((s15) s3)) - (s0 () (s4 s16 (s0 (((s17) (s4 s18 (s14 s19) s2))) s15)))) - (s0 - (((s3) (s4 (s5 (s6) s9) s1))) - (s7 - s3 - (s0 () (s0 () (s4 s20 s2 (s14 (s21))))) - (s4 s22 (s14 #f) (s14 #:opaque) s1))))))))) - (exit-prim - . #s(stx-boundary (s0 - (s1) - (s2 - (((s3) s1)) - (s2 - (((s4) + (((s1) s2)) + (s0 + (((s3) + (s4 (s5 - (s0 - (s6) + (s6) + (s7 + (s4 s8 s6) (s7 - (s5 s8 s6) - (s7 - (s5 (s0 (s6) s9) (s5 s10 s6)) + (s4 (s5 (s6) s9) (s4 s10 s6)) + (s4 (s5 - (s0 - (s6) - (s7 - (s5 s8 s6) - (s2 - (((s11) (s5 s10 s6))) - (s7 - s11 - (s7 (s5 s12 (s5 s13 s6)) s11 (s14 #f)) - (s14 #f))) - (s14 #f))) - (s5 s13 s6)) - (s14 #f)) - (s14 #f))) - s3))) - (s7 - s4 - (s2 - (((s15) s4)) - (s2 () (s5 s16 (s2 (((s17) (s5 s18 (s14 s19) s1))) s15)))) - (s2 - (((s4) (s5 (s0 (s6) s9) s3))) - (s7 - s4 - (s2 () (s2 () (s5 s20 s1 (s14 (s21))))) - (s5 s22 (s14 #f) (s14 #:opaque) s3))))))))) - (return + (s6) + (s7 + (s4 s8 s6) + (s0 + (((s11) (s4 s10 s6))) + (s7 + s11 + (s7 (s4 s12 (s4 s13 s6)) s11 (s14 #f)) + (s14 #f))) + (s14 #f))) + (s4 s13 s6)) + (s14 #f)) + (s14 #f))) + s1))) + (s7 + s3 + (s0 + (((s15) s3)) + (s0 () (s4 s16 (s0 (((s17) (s4 s18 (s14 s19) s2))) s15)))) + (s0 + (((s3) (s4 (s5 (s6) s9) s1))) + (s7 + s3 + (s0 () (s0 () (s4 s20 s2 (s14 (s21))))) + (s4 s22 (s14 #f) (s14 #:opaque) s1)))))))) + (exit-prim/return . #s(stx-boundary (s0 @@ -5194,5440 +10645,56 @@ (next . #f) (exit-bind . #f) (next . #f) - (enter-check . #s(stx-boundary (s0 5))) (visit . #s(stx-boundary (s0 5))) (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 5))) + (enter-macro #s(stx-boundary (s0 5)) . #s(stx-boundary (s0 5))) (macro-pre-x . #s(stx-boundary (s0 5))) + (track-syntax s0 #s(stx-boundary 5) . #s(stx-boundary 5)) (macro-post-x #s(stx-boundary 5) . #s(stx-boundary (s0 5))) - (exit-macro . #s(stx-boundary 5)) - (return . #s(stx-boundary 5)) - (exit-check . #s(stx-boundary 5)) - (block->letrec - #s(stx-boundary - (s0 - (((s1) - (s2 - (s3) - (s4 - s5 - #t - s3 - () - s6 - #f - ((s7 s8) (s9 (s10 s3 s8))) - (s7 (s11 s3 (s12 (s8)))))))) - () - 5))) - (visit - . - #s(stx-boundary - (s0 - (((s1) - (s2 - (s3) - (s4 - s5 - #t - s3 - () - s6 - #f - ((s7 s8) (s9 (s10 s3 s8))) - (s7 (s11 s3 (s12 (s8)))))))) - () - 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (((s1) - (s2 - (s3) - (s4 - s5 - #t - s3 - () - s6 - #f - ((s7 s8) (s9 (s10 s3 s8))) - (s7 (s11 s3 (s12 (s8)))))))) - () - 5))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary - ((s0) - (s1 - (s2) - (s3 - s4 - #t - s2 - () - s5 - #f - ((s6 s7) (s8 (s9 s2 s7))) - (s6 (s10 s2 (s11 (s7))))))))) - () - . - #s(stx-boundary (5))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary (5))) + (exit-macro #s(stx-boundary 5) . #s(stx-boundary 5)) + (visit . #s(stx-boundary 5)) + (stop/return . #s(stx-boundary 5)) + (block->letrec () () #s(stx-boundary 5)) + (enter-list #s(stx-boundary 5)) (next . #f) (visit . #s(stx-boundary 5)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) + (tag2 #s(stx-boundary (s0 . 5)) . #s(stx-boundary 5)) (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary ((s0 5)))) - (tag . #s(stx-boundary (s0 () (s1 5)))) - (exit-prim . #s(stx-boundary (s0 () (s1 5)))) - (return . #s(stx-boundary (s0 () (s1 5)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () (s1 5))))) - (return . #s(stx-boundary (s0 () (s0 () (s1 5))))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () (s2 5)))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () (s2 5)))))))) - ((let () (define (ok x) (second x)) (define (second y) 8) (ok 5)) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) - (enter-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) - (exit-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 s4)) (s2 (s5 s6) 8) (s3 5))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (macro-pre-x - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (macro-post-x - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5))) - . - #s(stx-boundary (s6 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (exit-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (visit - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 s3)) (s1 (s4 s5) 8) (s2 5)))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary ((s0 (s1 s2) (s3 s2)) (s0 (s3 s4) 8) (s1 5)))) - (next-group . #f) - (enter-block - . - #s(stx-boundary ((s0 (s1 s2) (s3 s2)) (s0 (s3 s4) 8) (s1 5)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 s2)) (s0 (s3 s4) 8) (s1 5))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 s2)) (s0 (s3 s4) 8) (s1 5)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s0 (s1 s3) (s4 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 s2))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) 8))) - (visit . #s(stx-boundary (s0 (s1 s2) 8))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) 8))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) 8))) - . - #s(stx-boundary (s0 (s1 s3) 8))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) 8))) - . - #s(stx-boundary (s4 s1 (s2 (s3) 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 5))) - (exit-check . #s(stx-boundary (s0 5))) - (block->letrec - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 s3))) ((s4) (s2 (s5) 8))) (s1 5)))) - (visit - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 s3))) ((s4) (s2 (s5) 8))) (s1 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 s3))) ((s4) (s2 (s5) 8))) (s1 5)))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 s2)))) - #s(stx-boundary ((s3) (s1 (s4) 8)))) - . - #s(stx-boundary ((s0 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 s0)))) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2)) - . - #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary ((s0 s1 s2)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) 8))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (8))) - (enter-block . #s(stx-boundary (8))) - (block-renames #s(stx-boundary (8)) . #s(stx-boundary (8))) - (next . #f) - (enter-check . #s(stx-boundary 8)) - (exit-check . #s(stx-boundary 8)) - (block->list . #s(stx-boundary (8))) - (enter-list . #s(stx-boundary (8))) - (next . #f) - (visit . #s(stx-boundary 8)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) - (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 5))) - (enter-macro . #s(stx-boundary (s0 s1 5))) - (macro-pre-x . #s(stx-boundary (s0 s1 5))) - (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) - (exit-macro . #s(stx-boundary (s0 s1 5))) - (visit . #s(stx-boundary (s0 s1 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 5)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) - (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary (s0 (s1 5)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (return . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-list . #s(stx-boundary ((s0 s1 (s2 5))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 s5 s3))) ((s5) (s2 (s6) (s7 8)))) - (s4 s1 (s7 5))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 s5 s3))) ((s5) (s2 (s6) (s7 8)))) - (s4 s1 (s7 5))))) - (exit-prim - . - #s(stx-boundary - (s0 - () - (s1 - (((s2) (s3 (s4) (s5 s6 s4))) ((s6) (s3 (s7) (s8 8)))) - (s5 s2 (s8 5)))))) - (return - . - #s(stx-boundary - (s0 - () - (s1 - (((s2) (s3 (s4) (s5 s6 s4))) ((s6) (s3 (s7) (s8 8)))) - (s5 s2 (s8 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s2 - (((s3) (s4 (s5) (s6 s7 s5))) ((s7) (s4 (s8) (s9 8)))) - (s6 s3 (s9 5))))))) - (return - . - #s(stx-boundary - (s0 - (s1 - () - (s2 - (((s3) (s4 (s5) (s6 s7 s5))) ((s7) (s4 (s8) (s9 8)))) - (s6 s3 (s9 5))))))))) - ((module m racket/base (require racket/list) foldl) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) - (enter-check . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) - (exit-check . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) - (visit . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2 (s3 s4) s5))) - (prim-module . #f) - (prepare-env . #f) - (tag . #s(stx-boundary (s0 (s1 s2) s3))) - (rename-one . #s(stx-boundary (s0 (s1 s2) s3))) - (enter-check . #s(stx-boundary (s0 (s1 s2) s3))) - (visit . #s(stx-boundary (s0 (s1 s2) s3))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s3))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s3))) - (macro-post-x - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10)) - . - #s(stx-boundary (s11 (s8 s9) s10))) - (exit-macro - . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) - (return - . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) - (visit - . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) - (macro-pre-x - . - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)) (s8 s9) s10))) - (macro-post-x - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12))) - . - #s(stx-boundary (s13 (s3 s4 (s5 s6) (s7 s8) (s9 #f)) (s10 s11) s12))) - (exit-macro - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12)))) - (return - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12)))) - (exit-check - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12)))) - (visit - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12)))) - (prim-module-begin . #f) - (rename-one - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 s11)) - (s1 s2 s12)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) - (macro-pre-x - . - #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) - (enter-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (local-pre . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (start . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (macro-post-x - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) - . - #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (exit-macro . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (rename-one . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (splice - #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) - #s(stx-boundary (s7 s8 (s9 s10))) - #s(stx-boundary (s7 s8 s11))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-submodule . #f) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-module . #f) - (prepare-env . #f) - (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (prim-module-begin . #f) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary (s0 #f))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 #f))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (rename-one . #s(stx-boundary (s0 #f))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (next . #f) - (visit . #s(stx-boundary (s0 #f))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #f))) - (enter-prim . #s(stx-boundary (s0 s1 #f))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #f))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary #f)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) - (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-list . #s(stx-boundary (s0 (s1 #f)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 #f)))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (rename-one - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) - (enter-local . #s(stx-boundary (s0 s1))) - (local-pre . #s(stx-boundary (s0 s1))) - (start . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1))) - (macro-pre-x . #s(stx-boundary (s0 s1))) - (macro-post-x #s(stx-boundary (s0 s1)) . #s(stx-boundary (s2 s1))) - (exit-macro . #s(stx-boundary (s0 s1))) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (local-post . #s(stx-boundary (s0 s1))) - (exit-local . #s(stx-boundary (s0 s1))) - (macro-post-x - #s(stx-boundary (s0 (s1 s2))) - . - #s(stx-boundary (s3 s4 (s5 s2)))) - (exit-macro . #s(stx-boundary (s0 (s1 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2)))) - (return . #s(stx-boundary (s0 (s1 s2)))) - (rename-one . #s(stx-boundary (s0 (s1 s2)))) - (splice #s(stx-boundary (s0 s1)) #s(stx-boundary (s2 s3 s4))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (enter-local . #s(stx-boundary s0)) - (local-pre . #s(stx-boundary s0)) - (start . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (local-post . #s(stx-boundary s0)) - (exit-local . #s(stx-boundary s0)) - (macro-post-x - #s(stx-boundary (s0 (s1 s2))) - . - #s(stx-boundary (s3 s1 s2))) - (exit-macro . #s(stx-boundary (s0 (s1 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2)))) - (return . #s(stx-boundary (s0 (s1 s2)))) - (rename-one . #s(stx-boundary (s0 (s1 s2)))) - (splice #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1))) - (macro-pre-x . #s(stx-boundary (s0 s1))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 () s3) s4)) - . - #s(stx-boundary (s5 s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (visit . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (return . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (rename-one . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (next . #f) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 () s2) s3))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 () s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary ()) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 () s1))) - (return . #s(stx-boundary (s0 () s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 (s1 () s2) s3))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (return . #s(stx-boundary (s0 s1 (s2 () s3) s4))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) - (s5 s9) - (s7 s10 (s11 () s12) s13)))) - (return - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s0 (s5 s6) (s7 s8 (s3 #f)))) - (s5 s9) - (s7 s10 (s11 () s12) s13)))) - (rename-one - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s7 s11) - (s9 s12 (s13 () s14) s15))))) - (exit-prim - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s7 s11) - (s9 s12 (s13 () s14) s15))))) - (return - . - #s(stx-boundary - (s0 - s1 - s2 - (s3 - (s0 s4 (s5 s6) (s3 (s7 s8) (s9 s10 (s5 #f)))) - (s7 s11) - (s9 s12 (s13 () s14) s15))))))) - ('quoted - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (enter-check . #s(stx-boundary (s0 (s1 s2)))) - (exit-check . #s(stx-boundary (s0 (s1 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 (s1 s2)))) - (return . #s(stx-boundary (s0 (s1 s2)))))) - ((let () - (define-syntax (lift stx) - (syntax-local-lift-require 'racket/list #'foldl)) - (lift)) - . - ((start-top . #f) - (visit - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) - (enter-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) - (exit-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) - (visit - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 s7) (s8 s9))) (s3))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (macro-pre-x - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (macro-post-x - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2))) - . - #s(stx-boundary (s9 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (exit-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (visit - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 s6) (s7 s8))) (s2)))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 s5) (s6 s7))) (s1)))) - (next-group . #f) - (enter-block - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 s5) (s6 s7))) (s1)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 s5) (s6 s7))) (s1))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 s5) (s6 s7))) (s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 s7))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) - . - #s(stx-boundary (s9 (s1 s3) (s4 (s5 s6) (s7 s8))))) - (exit-macro - . - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (exit-check - . - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 s8)))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 (s4 s5) (s6 s7)))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6)))) - . - #s(stx-boundary (s7 (s1) (s2 (s3 s4) (s5 s6))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 s6))))) - (prim-lambda . #f) - (lambda-renames - #s(stx-boundary (s0)) - . - #s(stx-boundary ((s1 (s2 s3) (s4 s5))))) - (enter-block . #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 s4)))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (block->list . #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) - (enter-list . #s(stx-boundary ((s0 (s1 s2) (s3 s4))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 s3) (s4 s5))) - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1))) - (macro-pre-x . #s(stx-boundary (s0 s1))) - (local-value . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (local-value-result . #f) - (local-value . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (local-value-result . #f) - (macro-post-x #s(stx-boundary (s0 s1)) . #s(stx-boundary (s2 s1))) - (exit-macro . #s(stx-boundary (s0 s1))) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (exit-list . #s(stx-boundary (s0 (s1 s2) (s3 s4)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5)))) - (exit-list . #s(stx-boundary ((s0 s1 (s2 s3) (s4 s5))))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s5) (s6 s7))))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s5) (s6 s7))))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0))) - (visit . #s(stx-boundary (s0))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0))) - (macro-pre-x . #s(stx-boundary (s0))) - (lift-require - #s(stx-boundary (s0 s1)) - #s(stx-boundary s2) - . - #s(stx-boundary s2)) - (macro-post-x #s(stx-boundary s0) . #s(stx-boundary (s1))) - (exit-macro . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->letrec - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) () s8))) - (visit - . - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) () s8))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 (s5 s6) (s7 s8))))) () s8))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 (s4 s5) (s6 s7)))))) - () - . - #s(stx-boundary (s7))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (tag . #s(stx-boundary (s0 () s1))) - (exit-prim . #s(stx-boundary (s0 () s1))) - (return . #s(stx-boundary (s0 () s1))) - (exit-prim . #s(stx-boundary (s0 () (s0 () s1)))) - (return . #s(stx-boundary (s0 () (s0 () s1)))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (lift-loop . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) - (prim-begin . #f) - (enter-list . #s(stx-boundary ((s0 s1) (s2 (s3 () (s3 () s4)))))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 () (s0 () s1)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () (s0 () s1)))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary ((s0 () s1)))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 () s1)))) - (block-renames - #s(stx-boundary ((s0 () s1))) - . - #s(stx-boundary ((s0 () s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 () s1))) - (exit-check . #s(stx-boundary (s0 () s1))) - (block->list . #s(stx-boundary ((s0 () s1)))) - (enter-list . #s(stx-boundary ((s0 () s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 () s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () s1))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary (s0))) - (next-group . #f) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 () s1))) - (return . #s(stx-boundary (s0 () s1))) - (exit-list . #s(stx-boundary ((s0 () s1)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () s1)))) - (return . #s(stx-boundary (s0 () (s0 () s1)))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (exit-list . #s(stx-boundary ((s0 s1) (s2 (s3 () (s3 () s4)))))) - (exit-prim . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))) - (return . #s(stx-boundary (s0 (s1 s2) (s3 (s4 () (s4 () s5)))))))) - ((module m '#%kernel 5) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3) 5))) - (enter-check . #s(stx-boundary (s0 s1 (s2 s3) 5))) - (exit-check . #s(stx-boundary (s0 s1 (s2 s3) 5))) - (visit . #s(stx-boundary (s0 s1 (s2 s3) 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) 5))) - (prim-module . #f) - (prepare-env . #f) - (rename-one . #s(stx-boundary 5)) - (enter-check . #s(stx-boundary 5)) - (exit-check . #s(stx-boundary 5)) - (tag . #s(stx-boundary (s0 5))) - (enter-check . #s(stx-boundary (s0 5))) - (exit-check . #s(stx-boundary (s0 5))) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 5))) - (prim-module-begin . #f) - (rename-one . #s(stx-boundary (s0 5))) - (next . #f) - (visit . #s(stx-boundary 5)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) - (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (rename-one . #s(stx-boundary (s0 5))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 5))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (exit-prim . #s(stx-boundary (s0 (s1 5)))) - (return . #s(stx-boundary (s0 (s1 5)))) - (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s2 5))))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s2 5))))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 (s2 5))))))) - ((let-values (((x) __y) ((y z) __w)) __x) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (enter-check . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (exit-check . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) - (prim-let-values . #f) - (let-renames - (#s(stx-boundary ((s0) s1)) #s(stx-boundary ((s2 s3) s4))) - . - #s(stx-boundary (s5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (next-group . #f) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (exit-list . #s(stx-boundary ((s0 . s1)))) - (exit-prim - . - #s(stx-boundary - (s0 (((s1) (s2 . s3)) ((s4 s5) (s2 . s6))) (s2 . s7)))) - (return - . - #s(stx-boundary - (s0 (((s1) (s2 . s3)) ((s4 s5) (s2 . s6))) (s2 . s7)))) - (exit-prim - . - #s(stx-boundary - (s0 (s1 (((s2) (s3 . s4)) ((s5 s6) (s3 . s7))) (s3 . s8))))) - (return - . - #s(stx-boundary - (s0 (s1 (((s2) (s3 . s4)) ((s5 s6) (s3 . s7))) (s3 . s8))))))) - ((module m racket/base - (define-syntax (ok stx) (quote-syntax 8)) - (ok) - (list (ok) (ok))) - . - ((start-top . #f) - (visit - . - #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) - (enter-check - . - #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) - (exit-check - . - #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) - (visit - . - #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 s1 s2 (s3 (s4 s5) (s6 8)) (s4) (s7 (s4) (s4))))) - (prim-module . #f) - (prepare-env . #f) - (tag . #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) - (rename-one - . - #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) - (enter-check - . - #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) - (visit . #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) - (macro-pre-x - . - #s(stx-boundary (s0 (s1 (s2 s3) (s4 8)) (s2) (s5 (s2) (s2))))) - (macro-post-x - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s5 s6) (s7 #f)) - (s8 (s9 s10) (s11 8)) - (s9) - (s12 (s9) (s9)))) - . - #s(stx-boundary (s13 (s8 (s9 s10) (s11 8)) (s9) (s12 (s9) (s9))))) - (exit-macro - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s5 s6) (s7 #f)) - (s8 (s9 s10) (s11 8)) - (s9) - (s12 (s9) (s9))))) - (return - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s5 s6) (s7 #f)) - (s8 (s9 s10) (s11 8)) - (s9) - (s12 (s9) (s9))))) - (visit - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s5 s6) (s7 #f)) - (s8 (s9 s10) (s11 8)) - (s9) - (s12 (s9) (s9))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s5 s6) (s7 #f)) - (s8 (s9 s10) (s11 8)) - (s9) - (s12 (s9) (s9))))) - (macro-pre-x - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4) (s5 s6) (s7 #f)) - (s8 (s9 s10) (s11 8)) - (s9) - (s12 (s9) (s9))))) - (macro-post-x - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11))))) - . - #s(stx-boundary - (s15 - (s3 s4 (s5 s6) (s7 s8) (s9 #f)) - (s10 (s11 s12) (s13 8)) - (s11) - (s14 (s11) (s11))))) - (exit-macro - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11)))))) - (return - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11)))))) - (exit-check - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11)))))) - (visit - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11)))))) - (prim-module-begin . #f) - (rename-one - . - #s(stx-boundary - (s0 - (s1 s2 (s3 s4 (s5 s6) (s7 s8) (s9 #f))) - (s1 s2 (s10 (s11 s12) (s13 8))) - (s1 s2 (s11)) - (s1 s2 (s14 (s11) (s11)))))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) - (macro-pre-x - . - #s(stx-boundary (s0 s1 (s2 s3 (s4 s5) (s6 s7) (s8 #f))))) - (enter-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (local-pre . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (start . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (local-post . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (exit-local . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (macro-post-x - #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f)))) - . - #s(stx-boundary (s8 s9 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (exit-macro . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (visit . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (rename-one . #s(stx-boundary (s0 (s1 s2 (s3 s4) (s5 s6) (s7 #f))))) - (splice - #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f))) - #s(stx-boundary (s7 s8 (s9 (s10 s11) (s12 8)))) - #s(stx-boundary (s7 s8 (s10))) - #s(stx-boundary (s7 s8 (s13 (s10) (s10))))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (rename-one . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-submodule . #f) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3) (s4 s5) (s6 #f)))) - (prim-module . #f) - (prepare-env . #f) - (tag . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (prim-module-begin . #f) - (rename-one . #s(stx-boundary (s0 (s1 s2) (s3 #f)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (rename-one . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-require . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary (s0 #f))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 #f))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (rename-one . #s(stx-boundary (s0 #f))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (next . #f) - (visit . #s(stx-boundary (s0 #f))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #f))) - (enter-prim . #s(stx-boundary (s0 s1 #f))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #f))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary #f)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) - (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-list . #s(stx-boundary (s0 (s1 #f)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #f)))) - (return . #s(stx-boundary (s0 s1 (s2 #f)))) - (module-lift-end-loop) - (next-group . #f) - (next . #f) - (exit-prim . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (return . #s(stx-boundary (s0 (s1 s2) (s3 s4 (s5 #f))))) - (rename-one - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s2 s3) (s4 (s5 s6) (s7 s8 (s2 #f)))))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4) (s5 8))))) - (enter-local . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (local-pre . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (start . #f) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s5 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (local-post . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-local . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (macro-post-x - #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8))))) - . - #s(stx-boundary (s6 s7 (s8 (s2 s4) (s5 8))))) - (exit-macro . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) - (visit . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) - (return . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) - (rename-one . #s(stx-boundary (s0 (s1 (s2) (s3 (s4) (s5 8)))))) - (splice - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - #s(stx-boundary (s5 s6 (s1))) - #s(stx-boundary (s5 s6 (s7 (s1) (s1))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-stop . #f) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (rename-one . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-syntaxes . #f) - (prepare-env . #f) - (phase-up . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 8))) - . - #s(stx-boundary (s3 (s1) (s2 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 8))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)))) - ((let () - (define-syntax (ok stx) (quote-syntax 8)) - (define (ident x) x) - 9) - . - ((start-top . #f) - (visit - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) - (enter-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) - (exit-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) - (visit - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s6 (s7 s8) s8) 9)))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (macro-pre-x - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (macro-post-x - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9)) - . - #s(stx-boundary (s8 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (exit-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (visit - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s5 (s6 s7) s7) 9))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s4 (s5 s6) s6) 9))) - (next-group . #f) - (enter-block - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s4 (s5 s6) s6) 9))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s4 (s5 s6) s6) 9)) - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s4 (s5 s6) s6) 9))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s5 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 8))) - . - #s(stx-boundary (s3 (s1) (s2 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 8))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) - (visit . #s(stx-boundary (s0 (s1 s2) s2))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) s3))) - . - #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) s3))) - . - #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) s2)))) - (next . #f) - (enter-check . #s(stx-boundary 9)) - (exit-check . #s(stx-boundary 9)) - (block->letrec - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8)))) (((s5) (s6 (s7) s7))) 9))) - (visit - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8)))) (((s5) (s6 (s7) s7))) 9))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8)))) (((s5) (s6 (s7) s7))) 9))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - (#s(stx-boundary ((s4) (s5 (s6) s6)))) - . - #s(stx-boundary (9))) - (prepare-env . #f) - (next-group . #f) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) s2)))) - . - #s(stx-boundary (9))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) - (next-group . #f) - (enter-list . #s(stx-boundary (9))) - (next . #f) - (visit . #s(stx-boundary 9)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 9))) - (enter-prim . #s(stx-boundary (s0 . 9))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 9))) - (return . #s(stx-boundary (s0 9))) - (exit-list . #s(stx-boundary ((s0 9)))) - (tag . #s(stx-boundary (s0 (((s1) (s2 (s3) s3))) (s4 9)))) - (exit-prim . #s(stx-boundary (s0 (((s1) (s2 (s3) s3))) (s4 9)))) - (return . #s(stx-boundary (s0 (((s1) (s2 (s3) s3))) (s4 9)))) - (exit-prim - . - #s(stx-boundary (s0 () (s0 (((s1) (s2 (s3) s3))) (s4 9))))) - (return . #s(stx-boundary (s0 () (s0 (((s1) (s2 (s3) s3))) (s4 9))))) - (exit-prim - . - #s(stx-boundary (s0 (s1 () (s1 (((s2) (s3 (s4) s4))) (s5 9)))))) - (return - . - #s(stx-boundary (s0 (s1 () (s1 (((s2) (s3 (s4) s4))) (s5 9)))))))) - ((set! __x 99) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 s2 99)))) - (enter-check . #s(stx-boundary (s0 (s1 s2 99)))) - (exit-check . #s(stx-boundary (s0 (s1 s2 99)))) - (visit . #s(stx-boundary (s0 (s1 s2 99)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2 99)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 s1 99))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 99))) - (prim-set! . #f) - (resolve . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 99)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 99))) - (enter-prim . #s(stx-boundary (s0 . 99))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 99))) - (return . #s(stx-boundary (s0 99))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 99)))) - (return . #s(stx-boundary (s0 s1 (s2 99)))) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 99))))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 99))))))) - ((let () - (define-syntax (lift stx) (syntax-local-lift-expression #'(+ 1 2))) - (lift)) - . - ((start-top . #f) - (visit - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) - (enter-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) - (exit-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) - (visit - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 1 2)))) (s3))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (macro-pre-x - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (macro-post-x - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2))) - . - #s(stx-boundary (s7 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (exit-macro - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 (s5 (s6 1 2)))) (s2)))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 1 2)))) (s1)))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 1 2)))) (s1)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 1 2)))) (s1))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 1 2)))) (s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 1 2)))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2)))))) - . - #s(stx-boundary (s7 (s1 s3) (s4 (s5 (s6 1 2)))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 1 2))))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 (s4 (s5 1 2))))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2))))) - . - #s(stx-boundary (s5 (s1) (s2 (s3 (s4 1 2)))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 1 2)))))) - (prim-lambda . #f) - (lambda-renames - #s(stx-boundary (s0)) - . - #s(stx-boundary ((s1 (s2 (s3 1 2)))))) - (enter-block . #s(stx-boundary ((s0 (s1 (s2 1 2)))))) - (block-renames - #s(stx-boundary ((s0 (s1 (s2 1 2))))) - . - #s(stx-boundary ((s0 (s1 (s2 1 2)))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 (s2 1 2))))) - (exit-check . #s(stx-boundary (s0 (s1 (s2 1 2))))) - (block->list . #s(stx-boundary ((s0 (s1 (s2 1 2)))))) - (enter-list . #s(stx-boundary ((s0 (s1 (s2 1 2)))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 (s2 1 2))))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3 1 2)))) - . - #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 (s2 1 2))))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 1 2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 1 2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 1 2)))) - (local-value . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (local-value-result . #f) - (local-value . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (local-value-result . #f) - (local-value . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (local-value-result . #f) - (macro-post-x - #s(stx-boundary (s0 (s1 1 2))) - . - #s(stx-boundary (s2 (s1 1 2)))) - (exit-macro . #s(stx-boundary (s0 (s1 1 2)))) - (visit . #s(stx-boundary (s0 (s1 1 2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 1 2)))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 (s1 1 2)))) - (return . #s(stx-boundary (s0 (s1 1 2)))) - (exit-list . #s(stx-boundary (s0 (s1 (s2 1 2))))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3 1 2))))) - (exit-list . #s(stx-boundary ((s0 s1 (s2 (s3 1 2)))))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 (s4 (s5 1 2)))))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 (s4 (s5 1 2)))))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0))) - (visit . #s(stx-boundary (s0))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0))) - (macro-pre-x . #s(stx-boundary (s0))) - (lift-expr (#s(stx-boundary s0)) . #s(stx-boundary (s1 1 2))) - (macro-post-x #s(stx-boundary s0) . #s(stx-boundary (s1))) - (exit-macro . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->letrec - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 (s5 (s6 1 2)))))) () s7))) - (visit - . - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 (s5 (s6 1 2)))))) () s7))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 (s5 (s6 1 2)))))) () s7))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 (s4 (s5 1 2))))))) - () - . - #s(stx-boundary (s6))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (tag . #s(stx-boundary (s0 () s1))) - (exit-prim . #s(stx-boundary (s0 () s1))) - (return . #s(stx-boundary (s0 () s1))) - (exit-prim . #s(stx-boundary (s0 () (s0 () s1)))) - (return . #s(stx-boundary (s0 () (s0 () s1)))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (lift-loop - . - #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) - (visit - . - #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (s1 (s2) (s3 1 2)) (s4 (s5 () (s5 () s2)))))) - (prim-begin . #f) - (enter-list - . - #s(stx-boundary ((s0 (s1) (s2 1 2)) (s3 (s4 () (s4 () s1)))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 1 2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 1 2)))) - (prim-define-values . #f) - (visit . #s(stx-boundary (s0 1 2))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 1 2))) - (enter-macro . #s(stx-boundary (s0 s1 1 2))) - (macro-pre-x . #s(stx-boundary (s0 s1 1 2))) - (macro-post-x - #s(stx-boundary (s0 s1 1 2)) - . - #s(stx-boundary (s0 s1 1 2))) - (exit-macro . #s(stx-boundary (s0 s1 1 2))) - (visit . #s(stx-boundary (s0 s1 1 2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 1 2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 1 2))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 1)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 1))) - (enter-prim . #s(stx-boundary (s0 . 1))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 1))) - (return . #s(stx-boundary (s0 1))) - (next . #f) - (visit . #s(stx-boundary 2)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 2))) - (enter-prim . #s(stx-boundary (s0 . 2))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 2))) - (return . #s(stx-boundary (s0 2))) - (exit-list . #s(stx-boundary (s0 (s1 1) (s1 2)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 1) (s2 2)))) - (return . #s(stx-boundary (s0 s1 (s2 1) (s2 2)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 (s4 1) (s4 2))))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 (s4 1) (s4 2))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 () (s0 () s1)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () (s0 () s1)))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary ((s0 () s1)))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 () s1)))) - (block-renames - #s(stx-boundary ((s0 () s1))) - . - #s(stx-boundary ((s0 () s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 () s1))) - (exit-check . #s(stx-boundary (s0 () s1))) - (block->list . #s(stx-boundary ((s0 () s1)))) - (enter-list . #s(stx-boundary ((s0 () s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 () s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () s1))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary (s0))) - (next-group . #f) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 () s1))) - (return . #s(stx-boundary (s0 () s1))) - (exit-list . #s(stx-boundary ((s0 () s1)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () s1)))) - (return . #s(stx-boundary (s0 () (s0 () s1)))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () s2))))) - (exit-list - . - #s(stx-boundary - ((s0 (s1) (s2 s3 (s4 1) (s4 2))) (s5 (s6 () (s6 () s1)))))) - (exit-prim - . - #s(stx-boundary - (s0 (s1 (s2) (s3 s4 (s5 1) (s5 2))) (s6 (s7 () (s7 () s2)))))) - (return - . - #s(stx-boundary - (s0 (s1 (s2) (s3 s4 (s5 1) (s5 2))) (s6 (s7 () (s7 () s2)))))))) - ((let () (define (ok x) '8) (ok 5)) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (enter-check - . - #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (exit-check . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (visit . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 () (s2 (s3 s4) (s5 8)) (s3 5))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (macro-pre-x . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (macro-post-x - #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5))) - . - #s(stx-boundary (s5 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (exit-macro . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (visit . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 () (s1 (s2 s3) (s4 8)) (s2 5)))) - (prim-let-values . #f) - (let-renames () . #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5)))) - (next-group . #f) - (enter-block . #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s1 5)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s0 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s5 s1 (s2 (s3) (s4 8))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 5))) - (exit-check . #s(stx-boundary (s0 5))) - (block->letrec #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) (s1 5)))) - (visit . #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) (s1 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) (s1 5)))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - . - #s(stx-boundary ((s0 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 8))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 5))) - (enter-macro . #s(stx-boundary (s0 s1 5))) - (macro-pre-x . #s(stx-boundary (s0 s1 5))) - (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) - (exit-macro . #s(stx-boundary (s0 s1 5))) - (visit . #s(stx-boundary (s0 s1 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 5)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) - (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary (s0 (s1 5)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (return . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-list . #s(stx-boundary ((s0 s1 (s2 5))))) - (exit-prim - . - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) (s5 s1 (s4 5))))) - (return - . - #s(stx-boundary (s0 (((s1) (s2 (s3) (s4 8)))) (s5 s1 (s4 5))))) - (exit-prim - . - #s(stx-boundary - (s0 () (s0 (((s1) (s2 (s3) (s4 8)))) (s5 s1 (s4 5)))))) - (return - . - #s(stx-boundary - (s0 () (s0 (((s1) (s2 (s3) (s4 8)))) (s5 s1 (s4 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 (s1 () (s1 (((s2) (s3 (s4) (s5 8)))) (s6 s2 (s5 5))))))) - (return - . - #s(stx-boundary - (s0 (s1 () (s1 (((s2) (s3 (s4) (s5 8)))) (s6 s2 (s5 5))))))))) - ((begin0 '3 '5) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) - (enter-check . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) - (exit-check . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) - (visit . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 (s1 3) (s1 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 3) (s1 5)))) - (prim-begin0 . #f) - (next . #f) - (visit . #s(stx-boundary (s0 3))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 3))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 3))) - (return . #s(stx-boundary (s0 3))) - (next . #f) - (enter-list . #s(stx-boundary ((s0 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 5))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary ((s0 5)))) - (exit-prim . #s(stx-boundary (s0 (s1 3) (s1 5)))) - (return . #s(stx-boundary (s0 (s1 3) (s1 5)))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))) - (return . #s(stx-boundary (s0 (s1 (s2 3) (s2 5))))))) - ((case-lambda ((x) x) ((x y) (+ x y))) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) - (enter-check - . - #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) - (exit-check - . - #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) - (visit . #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s2 s3)))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s1 s2))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s1 s2))))) - (prim-case-lambda . #f) - (next . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (next . #f) - (lambda-renames - #s(stx-boundary (s0 s1)) - . - #s(stx-boundary ((s2 s0 s1)))) - (enter-block . #s(stx-boundary ((s0 s1 s2)))) - (block-renames - #s(stx-boundary ((s0 s1 s2))) - . - #s(stx-boundary ((s0 s1 s2)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1 s2))) - (exit-check . #s(stx-boundary (s0 s1 s2))) - (block->list . #s(stx-boundary ((s0 s1 s2)))) - (enter-list . #s(stx-boundary ((s0 s1 s2)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2 s3))) - (enter-macro . #s(stx-boundary (s0 s1 s2 s3))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2 s3))) - (macro-post-x - #s(stx-boundary (s0 s1 s2 s3)) - . - #s(stx-boundary (s0 s1 s2 s3))) - (exit-macro . #s(stx-boundary (s0 s1 s2 s3))) - (visit . #s(stx-boundary (s0 s1 s2 s3))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2 s3))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1 s2))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1 s2))) - (exit-prim . #s(stx-boundary (s0 s1 s2 s3))) - (return . #s(stx-boundary (s0 s1 s2 s3))) - (exit-list . #s(stx-boundary ((s0 s1 s2 s3)))) - (exit-prim . #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s4 s1 s2))))) - (return . #s(stx-boundary (s0 ((s1) s1) ((s1 s2) (s3 s4 s1 s2))))) - (exit-prim - . - #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s5 s2 s3)))))) - (return - . - #s(stx-boundary (s0 (s1 ((s2) s2) ((s2 s3) (s4 s5 s2 s3)))))))) - ((let () - (define-syntax (ok stx) - (local-expand (cadr (syntax-e stx)) 'expression #f)) - (ok 9)) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) - (enter-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) - (exit-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 (s6 (s7 s4)) (s8 s9) #f)) (s3 9))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (macro-pre-x - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (macro-post-x - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9))) - . - #s(stx-boundary - (s9 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (exit-macro - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (visit - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)) (s2 9)))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)) (s1 9)))) - (next-group . #f) - (enter-block - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)) (s1 9)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)) (s1 9))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)) (s1 9)))) - (next . #f) - (enter-check - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) - (macro-pre-x - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s2)) (s6 s7) #f)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) - . - #s(stx-boundary (s9 (s1 s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) - (exit-macro - . - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) - (return - . - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) - (exit-check - . - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f))))) - (prim-define-syntaxes . #f) - (rename-one - . - #s(stx-boundary ((s0) (s1 (s2) (s3 (s4 (s5 s2)) (s6 s7) #f))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f))) - . - #s(stx-boundary (s7 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 (s4 s1)) (s5 s6) #f)))) - (prim-lambda . #f) - (lambda-renames - #s(stx-boundary (s0)) - . - #s(stx-boundary ((s1 (s2 (s3 s0)) (s4 s5) #f)))) - (enter-block . #s(stx-boundary ((s0 (s1 (s2 s3)) (s4 s5) #f)))) - (block-renames - #s(stx-boundary ((s0 (s1 (s2 s3)) (s4 s5) #f))) - . - #s(stx-boundary ((s0 (s1 (s2 s3)) (s4 s5) #f)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) - (exit-check . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) - (block->list . #s(stx-boundary ((s0 (s1 (s2 s3)) (s4 s5) #f)))) - (enter-list . #s(stx-boundary ((s0 (s1 (s2 s3)) (s4 s5) #f)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f)) - . - #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 s4)) (s5 s6) #f))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 (s2 s3)) (s4 s5) #f))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 s3)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 s3))) - . - #s(stx-boundary (s0 s1 (s2 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 s3)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 s2)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2)) - . - #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary (s0 (s1 s2 s3)))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 s3)))) - (return . #s(stx-boundary (s0 s1 (s0 s2 s3)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary #f)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #f))) - (enter-prim . #s(stx-boundary (s0 . #f))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #f))) - (return . #s(stx-boundary (s0 #f))) - (exit-list . #s(stx-boundary (s0 (s1 s2 (s1 s3 s4)) (s5 s6) (s5 #f)))) - (exit-prim - . - #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4)) (s5 s6) (s5 #f)))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4)) (s5 s6) (s5 #f)))) - (exit-list - . - #s(stx-boundary ((s0 s1 (s0 s2 (s0 s3 s4)) (s5 s6) (s5 #f))))) - (exit-prim - . - #s(stx-boundary (s0 (s1) (s2 s3 (s2 s4 (s2 s5 s1)) (s6 s7) (s6 #f))))) - (return - . - #s(stx-boundary (s0 (s1) (s2 s3 (s2 s4 (s2 s5 s1)) (s6 s7) (s6 #f))))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 9))) - (visit . #s(stx-boundary (s0 9))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 9))) - (macro-pre-x . #s(stx-boundary (s0 9))) - (enter-local . #s(stx-boundary 9)) - (local-pre . #s(stx-boundary 9)) - (enter-check . #s(stx-boundary 9)) - (exit-check . #s(stx-boundary 9)) - (local-post . #s(stx-boundary 9)) - (exit-local . #s(stx-boundary 9)) - (macro-post-x #s(stx-boundary 9) . #s(stx-boundary (s0 9))) - (exit-macro . #s(stx-boundary 9)) - (return . #s(stx-boundary 9)) - (exit-check . #s(stx-boundary 9)) - (block->letrec - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) () 9))) - (visit - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) () 9))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 (s5 (s6 s3)) (s7 s8) #f)))) () 9))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 (s4 (s5 s2)) (s6 s7) #f))))) - () - . - #s(stx-boundary (9))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary (9))) - (next . #f) - (visit . #s(stx-boundary 9)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 9))) - (enter-prim . #s(stx-boundary (s0 . 9))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 9))) - (return . #s(stx-boundary (s0 9))) - (exit-list . #s(stx-boundary ((s0 9)))) - (tag . #s(stx-boundary (s0 () (s1 9)))) - (exit-prim . #s(stx-boundary (s0 () (s1 9)))) - (return . #s(stx-boundary (s0 () (s1 9)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () (s1 9))))) - (return . #s(stx-boundary (s0 () (s0 () (s1 9))))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () (s2 9)))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () (s2 9)))))))) - ((let () - (define (first z) z) - (define (ok x) (second x)) - (printf "extra expression\n") - (define (second y) 8) - (ok (first 5))) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s8 #:opaque) - (s2 (s7 s9) 8) - (s5 (s3 5)))))) - (enter-check - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s8 #:opaque) - (s2 (s7 s9) 8) - (s5 (s3 5)))))) - (exit-check - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s8 #:opaque) - (s2 (s7 s9) 8) - (s5 (s3 5)))))) - (visit - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s8 #:opaque) - (s2 (s7 s9) 8) - (s5 (s3 5)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s8 #:opaque) - (s2 (s7 s9) 8) - (s5 (s3 5)))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (macro-pre-x - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (macro-post-x - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5)))) - . - #s(stx-boundary - (s9 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (exit-macro - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (visit - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s7 #:opaque) - (s1 (s6 s8) 8) - (s4 (s2 5))))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s6 #:opaque) - (s0 (s5 s7) 8) - (s3 (s1 5))))) - (next-group . #f) - (enter-block - . - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s6 #:opaque) - (s0 (s5 s7) 8) - (s3 (s1 5))))) - (block-renames - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s6 #:opaque) - (s0 (s5 s7) 8) - (s3 (s1 5)))) - . - #s(stx-boundary - ((s0 (s1 s2) s2) - (s0 (s3 s4) (s5 s4)) - (s6 #:opaque) - (s0 (s5 s7) 8) - (s3 (s1 5))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) - (visit . #s(stx-boundary (s0 (s1 s2) s2))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) s3))) - . - #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) s3))) - . - #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) s2)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s0 (s1 s3) (s4 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 s2))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 #:opaque))) - (exit-check . #s(stx-boundary (s0 #:opaque))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) 8))) - (visit . #s(stx-boundary (s0 (s1 s2) 8))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) 8))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) 8))) - . - #s(stx-boundary (s0 (s1 s3) 8))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) 8))) - . - #s(stx-boundary (s4 s1 (s2 (s3) 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 5)))) - (exit-check . #s(stx-boundary (s0 (s1 5)))) - (block->letrec - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s5))) - (() (s7 (s8 #:opaque) (s9))) - ((s6) (s2 (s10) 8))) - (s4 (s1 5))))) - (visit - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s5))) - (() (s7 (s8 #:opaque) (s9))) - ((s6) (s2 (s10) 8))) - (s4 (s1 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s5))) - (() (s7 (s8 #:opaque) (s9))) - ((s6) (s2 (s10) 8))) - (s4 (s1 5))))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) s2))) - #s(stx-boundary ((s3) (s1 (s4) (s5 s4)))) - #s(stx-boundary (() (s6 (s7 #:opaque) (s8)))) - #s(stx-boundary ((s5) (s1 (s9) 8)))) - . - #s(stx-boundary ((s3 (s0 5))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 s0)))) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2)) - . - #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary ((s0 s1 s2)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 #:opaque) (s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 #:opaque) (s2)))) - (prim-begin . #f) - (enter-list . #s(stx-boundary ((s0 #:opaque) (s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 #:opaque))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 #:opaque))) - (enter-macro . #s(stx-boundary (s0 s1 #:opaque))) - (macro-pre-x . #s(stx-boundary (s0 s1 #:opaque))) - (macro-post-x - #s(stx-boundary (s0 s1 #:opaque)) - . - #s(stx-boundary (s0 s1 #:opaque))) - (exit-macro . #s(stx-boundary (s0 s1 #:opaque))) - (visit . #s(stx-boundary (s0 s1 #:opaque))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 #:opaque))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 #:opaque))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary #:opaque)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . #:opaque))) - (enter-prim . #s(stx-boundary (s0 . #:opaque))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 #:opaque))) - (return . #s(stx-boundary (s0 #:opaque))) - (exit-list . #s(stx-boundary (s0 (s1 #:opaque)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 #:opaque)))) - (return . #s(stx-boundary (s0 s1 (s2 #:opaque)))) - (next . #f) - (visit . #s(stx-boundary (s0))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1))) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (exit-list . #s(stx-boundary ((s0 s1 (s2 #:opaque)) (s0 s3)))) - (exit-prim . #s(stx-boundary (s0 (s1 s2 (s3 #:opaque)) (s1 s4)))) - (return . #s(stx-boundary (s0 (s1 s2 (s3 #:opaque)) (s1 s4)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) 8))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (8))) - (enter-block . #s(stx-boundary (8))) - (block-renames #s(stx-boundary (8)) . #s(stx-boundary (8))) - (next . #f) - (enter-check . #s(stx-boundary 8)) - (exit-check . #s(stx-boundary 8)) - (block->list . #s(stx-boundary (8))) - (enter-list . #s(stx-boundary (8))) - (next . #f) - (visit . #s(stx-boundary 8)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) - (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 (s1 5))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 5)))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 5)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 5)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 5)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 5))) - . - #s(stx-boundary (s0 s1 (s2 5)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 5)))) - (visit . #s(stx-boundary (s0 s1 (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 5)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 5))) - (enter-macro . #s(stx-boundary (s0 s1 5))) - (macro-pre-x . #s(stx-boundary (s0 s1 5))) - (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) - (exit-macro . #s(stx-boundary (s0 s1 5))) - (visit . #s(stx-boundary (s0 s1 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 5)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) - (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary (s0 (s1 5)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (return . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-list . #s(stx-boundary (s0 (s1 s2 (s3 5))))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (exit-list . #s(stx-boundary ((s0 s1 (s0 s2 (s3 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3))) - (s4 - (((s5) (s2 (s6) (s7 s8 s6))) - (() (s9 (s7 s10 (s11 #:opaque)) (s7 s12))) - ((s8) (s2 (s13) (s11 8)))) - (s7 s5 (s7 s1 (s11 5))))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3))) - (s4 - (((s5) (s2 (s6) (s7 s8 s6))) - (() (s9 (s7 s10 (s11 #:opaque)) (s7 s12))) - ((s8) (s2 (s13) (s11 8)))) - (s7 s5 (s7 s1 (s11 5))))))) - (exit-prim - . - #s(stx-boundary - (s0 - () - (s0 - (((s1) (s2 (s3) s3))) - (s4 - (((s5) (s2 (s6) (s7 s8 s6))) - (() (s9 (s7 s10 (s11 #:opaque)) (s7 s12))) - ((s8) (s2 (s13) (s11 8)))) - (s7 s5 (s7 s1 (s11 5)))))))) - (return - . - #s(stx-boundary - (s0 - () - (s0 - (((s1) (s2 (s3) s3))) - (s4 - (((s5) (s2 (s6) (s7 s8 s6))) - (() (s9 (s7 s10 (s11 #:opaque)) (s7 s12))) - ((s8) (s2 (s13) (s11 8)))) - (s7 s5 (s7 s1 (s11 5)))))))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s1 - (((s2) (s3 (s4) s4))) - (s5 - (((s6) (s3 (s7) (s8 s9 s7))) - (() (s10 (s8 s11 (s12 #:opaque)) (s8 s13))) - ((s9) (s3 (s14) (s12 8)))) - (s8 s6 (s8 s2 (s12 5))))))))) - (return - . - #s(stx-boundary - (s0 - (s1 - () - (s1 - (((s2) (s3 (s4) s4))) - (s5 - (((s6) (s3 (s7) (s8 s9 s7))) - (() (s10 (s8 s11 (s12 #:opaque)) (s8 s13))) - ((s9) (s3 (s14) (s12 8)))) - (s8 s6 (s8 s2 (s12 5))))))))))) - ((#%variable-reference __z) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (enter-check . #s(stx-boundary (s0 (s1 s2)))) - (exit-check . #s(stx-boundary (s0 (s1 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 s2)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1))) - (prim-#%variable-reference . #f) - (exit-prim . #s(stx-boundary (s0 s1))) - (return . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 (s1 s2)))) - (return . #s(stx-boundary (s0 (s1 s2)))))) - ((let () - (define-syntax (ok stx) - (define-values - (exp opaque) - (syntax-local-expand-expression (cadr (syntax-e stx)))) - opaque) - (#%expression (ok 9))) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) - (s0 (s3 9)))))) - (enter-check - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) - (s0 (s3 9)))))) - (exit-check - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) - (s0 (s3 9)))))) - (visit - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) - (s0 (s3 9)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 (s6 s7) (s8 (s9 (s10 s4)))) s7) - (s0 (s3 9)))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (macro-pre-x - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (macro-post-x - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9)))) - . - #s(stx-boundary - (s11 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (exit-macro - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (visit - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6) - (s10 (s2 9))))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary - ((s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5) (s9 (s1 9))))) - (next-group . #f) - (enter-block - . - #s(stx-boundary - ((s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5) (s9 (s1 9))))) - (block-renames - #s(stx-boundary - ((s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5) (s9 (s1 9)))) - . - #s(stx-boundary - ((s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5) (s9 (s1 9))))) - (next . #f) - (enter-check - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) - (visit - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) - (macro-pre-x - . - #s(stx-boundary (s0 (s1 s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) - . - #s(stx-boundary (s10 (s1 s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) - (exit-macro - . - #s(stx-boundary - (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) - (return - . - #s(stx-boundary - (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) - (exit-check - . - #s(stx-boundary - (s0 (s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6)))) - (prim-define-syntaxes . #f) - (rename-one - . - #s(stx-boundary ((s0) (s1 (s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (macro-pre-x - . - #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4)) - . - #s(stx-boundary (s8 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (exit-macro - . - #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary (s0 (s1) (s2 (s3 s4) (s5 (s6 (s7 s1)))) s4))) - (prim-lambda . #f) - (lambda-renames - #s(stx-boundary (s0)) - . - #s(stx-boundary ((s1 (s2 s3) (s4 (s5 (s6 s0)))) s3))) - (enter-block . #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s6)))) s2))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s6)))) s2)) - . - #s(stx-boundary ((s0 (s1 s2) (s3 (s4 (s5 s6)))) s2))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6)))))) - (exit-check . #s(stx-boundary (s0 (s1 s2) (s3 (s4 (s5 s6)))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0 s1) (s2 (s3 (s4 s5)))))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->letrec #s(stx-boundary (s0 (((s1 s2) (s3 (s4 (s5 s6))))) s2))) - (visit . #s(stx-boundary (s0 (((s1 s2) (s3 (s4 (s5 s6))))) s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (((s1 s2) (s3 (s4 (s5 s6))))) s2))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0 s1) (s2 (s3 (s4 s5)))))) - . - #s(stx-boundary (s1))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 (s2 s3))))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3 s4)))) - . - #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3 s4))))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 (s2 s3))))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 s2)))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 s3)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 s3))) - . - #s(stx-boundary (s0 s1 (s2 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 s3)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 s3)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 s2)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2)) - . - #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary (s0 (s1 s2 s3)))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 s3)))) - (return . #s(stx-boundary (s0 s1 (s0 s2 s3)))) - (exit-list . #s(stx-boundary (s0 (s1 s2 (s1 s3 s4))))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4))))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s0 s3 s4))))) - (next-group . #f) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim - . - #s(stx-boundary (s0 (((s1 s2) (s3 s4 (s3 s5 (s3 s6 s7))))) s2))) - (return - . - #s(stx-boundary (s0 (((s1 s2) (s3 s4 (s3 s5 (s3 s6 s7))))) s2))) - (exit-prim - . - #s(stx-boundary - (s0 (s1) (s2 (((s3 s4) (s5 s6 (s5 s7 (s5 s8 s1))))) s4)))) - (return - . - #s(stx-boundary - (s0 (s1) (s2 (((s3 s4) (s5 s6 (s5 s7 (s5 s8 s1))))) s4)))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 9)))) - (exit-check . #s(stx-boundary (s0 (s1 9)))) - (block->letrec - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) - () - (s10 (s1 9))))) - (visit - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) - () - (s10 (s1 9))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 (s5 s6) (s7 (s8 (s9 s3)))) s6))) - () - (s10 (s1 9))))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 (s4 s5) (s6 (s7 (s8 s2)))) s5)))) - () - . - #s(stx-boundary ((s9 (s0 9))))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 (s1 9))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 9)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 9)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 9))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 9))) - (macro-pre-x . #s(stx-boundary (s0 9))) - (enter-local . #s(stx-boundary 9)) - (local-pre . #s(stx-boundary 9)) - (start . #f) - (visit . #s(stx-boundary 9)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 9))) - (enter-prim . #s(stx-boundary (s0 . 9))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 9))) - (return . #s(stx-boundary (s0 9))) - (local-post . #s(stx-boundary (s0 9))) - (opaque-expr . #s(stx-boundary #:opaque)) - (exit-local . #s(stx-boundary (s0 9))) - (macro-post-x #s(stx-boundary #:opaque) . #s(stx-boundary (s0 9))) - (exit-macro . #s(stx-boundary #:opaque)) - (visit . #s(stx-boundary #:opaque)) - (opaque-expr . #s(stx-boundary (s0 9))) - (tag . #s(stx-boundary (s0 9))) - (exit-prim . #s(stx-boundary (s0 9))) - (return . #s(stx-boundary (s0 9))) - (exit-list . #s(stx-boundary ((s0 9)))) - (tag . #s(stx-boundary (s0 () (s1 9)))) - (exit-prim . #s(stx-boundary (s0 () (s1 9)))) - (return . #s(stx-boundary (s0 () (s1 9)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () (s1 9))))) - (return . #s(stx-boundary (s0 () (s0 () (s1 9))))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () (s2 9)))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () (s2 9)))))))) - ((letrec-values (((x) __y) ((y z) __w)) __x) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (enter-check . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (exit-check . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (visit . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (((s2) s3) ((s4 s5) s6)) s7)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (((s1) s2) ((s3 s4) s5)) s6))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) s1)) #s(stx-boundary ((s2 s3) s4))) - . - #s(stx-boundary (s5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (next-group . #f) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (exit-list . #s(stx-boundary ((s0 . s1)))) - (exit-prim - . - #s(stx-boundary - (s0 (((s1) (s2 . s3)) ((s4 s5) (s2 . s6))) (s2 . s7)))) - (return - . - #s(stx-boundary - (s0 (((s1) (s2 . s3)) ((s4 s5) (s2 . s6))) (s2 . s7)))) - (exit-prim - . - #s(stx-boundary - (s0 (s1 (((s2) (s3 . s4)) ((s5 s6) (s3 . s7))) (s3 . s8))))) - (return - . - #s(stx-boundary - (s0 (s1 (((s2) (s3 . s4)) ((s5 s6) (s3 . s7))) (s3 . s8))))))) - ((lambda (x) (define y (+ x x)) y) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) - (enter-check . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) - (exit-check . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) - (visit . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2) (s3 s4 (s5 s2 s2)) s4)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3)) - . - #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (visit . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 s3 (s4 s1 s1)) s3))) - (prim-lambda . #f) - (lambda-renames - #s(stx-boundary (s0)) - . - #s(stx-boundary ((s1 s2 (s3 s0 s0)) s2))) - (enter-block . #s(stx-boundary ((s0 s1 (s2 s3 s3)) s1))) - (block-renames - #s(stx-boundary ((s0 s1 (s2 s3 s3)) s1)) - . - #s(stx-boundary ((s0 s1 (s2 s3 s3)) s1))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 s3 s3))) - . - #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (return . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 s3 s3)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 s3 s3))) - . - #s(stx-boundary (s4 s1 (s2 s3 s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 s3 s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 s3 s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 s2 s2)))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->letrec #s(stx-boundary (s0 (((s1) (s2 s3 s3))) s1))) - (visit . #s(stx-boundary (s0 (((s1) (s2 s3 s3))) s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (((s1) (s2 s3 s3))) s1))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 s2 s2)))) - . - #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary (s0 s1 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2 s2)) - . - #s(stx-boundary (s0 s1 s2 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2 s2))) - (visit . #s(stx-boundary (s0 s1 s2 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2 s2))) - (return . #s(stx-boundary (s0 s1 s2 s2))) - (next-group . #f) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (((s1) (s2 s3 s4 s4))) s1))) - (return . #s(stx-boundary (s0 (((s1) (s2 s3 s4 s4))) s1))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (((s3) (s4 s5 s1 s1))) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (((s3) (s4 s5 s1 s1))) s3)))) - (exit-prim - . - #s(stx-boundary (s0 (s1 (s2) (s3 (((s4) (s5 s6 s2 s2))) s4))))) - (return - . - #s(stx-boundary (s0 (s1 (s2) (s3 (((s4) (s5 s6 s2 s2))) s4))))))) - ((if 1 2 3) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 1 2 3)))) - (enter-check . #s(stx-boundary (s0 (s1 1 2 3)))) - (exit-check . #s(stx-boundary (s0 (s1 1 2 3)))) - (visit . #s(stx-boundary (s0 (s1 1 2 3)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 1 2 3)))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 1 2 3))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 1 2 3))) - (prim-if . #f) - (visit . #s(stx-boundary 1)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 1))) - (enter-prim . #s(stx-boundary (s0 . 1))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 1))) - (return . #s(stx-boundary (s0 1))) - (next . #f) - (visit . #s(stx-boundary 2)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 2))) - (enter-prim . #s(stx-boundary (s0 . 2))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 2))) - (return . #s(stx-boundary (s0 2))) - (next . #f) - (visit . #s(stx-boundary 3)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 3))) - (enter-prim . #s(stx-boundary (s0 . 3))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 3))) - (return . #s(stx-boundary (s0 3))) - (exit-prim . #s(stx-boundary (s0 (s1 1) (s1 2) (s1 3)))) - (return . #s(stx-boundary (s0 (s1 1) (s1 2) (s1 3)))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 1) (s2 2) (s2 3))))) - (return . #s(stx-boundary (s0 (s1 (s2 1) (s2 2) (s2 3))))))) - ((begin 1 __x (+ 3 4)) - . - ((start-top . #f) - (visit . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) - (enter-check . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) - (exit-check . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) - (visit . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 1 s2 (s3 3 4))))) - (prim-#%expression . #f) - (visit . #s(stx-boundary (s0 1 s1 (s2 3 4)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 1 s1 (s2 3 4)))) - (prim-begin . #f) - (enter-list . #s(stx-boundary (1 s0 (s1 3 4)))) - (next . #f) - (visit . #s(stx-boundary 1)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 1))) - (enter-prim . #s(stx-boundary (s0 . 1))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 1))) - (return . #s(stx-boundary (s0 1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . s1))) - (enter-prim . #s(stx-boundary (s0 . s1))) - (prim-#%top . #f) - (exit-prim . #s(stx-boundary (s0 . s1))) - (return . #s(stx-boundary (s0 . s1))) - (next . #f) - (visit . #s(stx-boundary (s0 3 4))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 3 4))) - (enter-macro . #s(stx-boundary (s0 s1 3 4))) - (macro-pre-x . #s(stx-boundary (s0 s1 3 4))) - (macro-post-x - #s(stx-boundary (s0 s1 3 4)) - . - #s(stx-boundary (s0 s1 3 4))) - (exit-macro . #s(stx-boundary (s0 s1 3 4))) - (visit . #s(stx-boundary (s0 s1 3 4))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 3 4))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 3 4))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 3)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 3))) - (enter-prim . #s(stx-boundary (s0 . 3))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 3))) - (return . #s(stx-boundary (s0 3))) - (next . #f) - (visit . #s(stx-boundary 4)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 4))) - (enter-prim . #s(stx-boundary (s0 . 4))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 4))) - (return . #s(stx-boundary (s0 4))) - (exit-list . #s(stx-boundary (s0 (s1 3) (s1 4)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 3) (s2 4)))) - (return . #s(stx-boundary (s0 s1 (s2 3) (s2 4)))) - (exit-list . #s(stx-boundary ((s0 1) (s1 . s2) (s3 s4 (s0 3) (s0 4))))) - (exit-prim - . - #s(stx-boundary (s0 (s1 1) (s2 . s3) (s4 s5 (s1 3) (s1 4))))) - (return . #s(stx-boundary (s0 (s1 1) (s2 . s3) (s4 s5 (s1 3) (s1 4))))) - (exit-prim - . - #s(stx-boundary (s0 (s1 (s2 1) (s3 . s4) (s5 s6 (s2 3) (s2 4)))))) - (return - . - #s(stx-boundary (s0 (s1 (s2 1) (s3 . s4) (s5 s6 (s2 3) (s2 4)))))))) - ((#%stratified-body - (define (first z) z) - (define (ok x) (second x)) - (define (second y) 8) - (ok (first 5))) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 - (s1 - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s2 (s7 s8) 8) - (s5 (s3 5)))))) - (enter-check - . - #s(stx-boundary - (s0 - (s1 - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s2 (s7 s8) 8) - (s5 (s3 5)))))) - (exit-check - . - #s(stx-boundary - (s0 - (s1 - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s2 (s7 s8) 8) - (s5 (s3 5)))))) - (visit - . - #s(stx-boundary - (s0 - (s1 - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s2 (s7 s8) 8) - (s5 (s3 5)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 - (s2 (s3 s4) s4) - (s2 (s5 s6) (s7 s6)) - (s2 (s7 s8) 8) - (s5 (s3 5)))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s1 (s6 s7) 8) - (s4 (s2 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 (s2 s3) s3) - (s1 (s4 s5) (s6 s5)) - (s1 (s6 s7) 8) - (s4 (s2 5))))) - (prim-#%stratified . #f) - (enter-block - . - #s(stx-boundary - ((s0 (s1 s2) s2) (s0 (s3 s4) (s5 s4)) (s0 (s5 s6) 8) (s3 (s1 5))))) - (block-renames - #s(stx-boundary - ((s0 (s1 s2) s2) (s0 (s3 s4) (s5 s4)) (s0 (s5 s6) 8) (s3 (s1 5)))) - . - #s(stx-boundary - ((s0 (s1 s2) s2) (s0 (s3 s4) (s5 s4)) (s0 (s5 s6) 8) (s3 (s1 5))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) - (visit . #s(stx-boundary (s0 (s1 s2) s2))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) s3))) - . - #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) s3))) - . - #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) s2)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s0 (s1 s3) (s4 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 s2))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) 8))) - (visit . #s(stx-boundary (s0 (s1 s2) 8))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) 8))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) 8))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) 8))) - . - #s(stx-boundary (s0 (s1 s3) 8))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) 8))) - . - #s(stx-boundary (s4 s1 (s2 (s3) 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) 8)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 5)))) - (exit-check . #s(stx-boundary (s0 (s1 5)))) - (block->letrec - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) ((s4) (s2 (s5) (s6 s5))) ((s6) (s2 (s7) 8))) - (s8 (s4 (s1 5)))))) - (visit - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) ((s4) (s2 (s5) (s6 s5))) ((s6) (s2 (s7) 8))) - (s8 (s4 (s1 5)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) ((s4) (s2 (s5) (s6 s5))) ((s6) (s2 (s7) 8))) - (s8 (s4 (s1 5)))))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) s2))) - #s(stx-boundary ((s3) (s1 (s4) (s5 s4)))) - #s(stx-boundary ((s5) (s1 (s6) 8)))) - . - #s(stx-boundary ((s7 (s3 (s0 5)))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 s0)))) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2)) - . - #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary ((s0 s1 s2)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) 8))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (8))) - (enter-block . #s(stx-boundary (8))) - (block-renames #s(stx-boundary (8)) . #s(stx-boundary (8))) - (next . #f) - (enter-check . #s(stx-boundary 8)) - (exit-check . #s(stx-boundary 8)) - (block->list . #s(stx-boundary (8))) - (enter-list . #s(stx-boundary (8))) - (next . #f) - (visit . #s(stx-boundary 8)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) - (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 (s1 (s2 5)))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 (s2 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 (s2 5))))) - (prim-#%stratified . #f) - (enter-block . #s(stx-boundary ((s0 (s1 5))))) - (block-renames - #s(stx-boundary ((s0 (s1 5)))) - . - #s(stx-boundary ((s0 (s1 5))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 5)))) - (exit-check . #s(stx-boundary (s0 (s1 5)))) - (block->list . #s(stx-boundary ((s0 (s1 5))))) - (enter-list . #s(stx-boundary ((s0 (s1 5))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 5)))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 5)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 5)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 5)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 5))) - . - #s(stx-boundary (s0 s1 (s2 5)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 5)))) - (visit . #s(stx-boundary (s0 s1 (s2 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 5)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 5))) - (enter-macro . #s(stx-boundary (s0 s1 5))) - (macro-pre-x . #s(stx-boundary (s0 s1 5))) - (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) - (exit-macro . #s(stx-boundary (s0 s1 5))) - (visit . #s(stx-boundary (s0 s1 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 5)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) - (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary (s0 (s1 5)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (return . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-list . #s(stx-boundary (s0 (s1 s2 (s3 5))))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (exit-list . #s(stx-boundary ((s0 s1 (s0 s2 (s3 5)))))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s3 5))))) - (exit-list . #s(stx-boundary ((s0 s1 (s0 s2 (s3 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s7 s5))) - ((s7) (s2 (s8) (s9 8)))) - (s6 s4 (s6 s1 (s9 5)))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s7 s5))) - ((s7) (s2 (s8) (s9 8)))) - (s6 s4 (s6 s1 (s9 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s7 s5))) - ((s7) (s2 (s8) (s9 8)))) - (s6 s4 (s6 s1 (s9 5)))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3)) - ((s4) (s2 (s5) (s6 s7 s5))) - ((s7) (s2 (s8) (s9 8)))) - (s6 s4 (s6 s1 (s9 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 - (((s2) (s3 (s4) s4)) - ((s5) (s3 (s6) (s7 s8 s6))) - ((s8) (s3 (s9) (s10 8)))) - (s7 s5 (s7 s2 (s10 5))))))) - (return - . - #s(stx-boundary - (s0 - (s1 - (((s2) (s3 (s4) s4)) - ((s5) (s3 (s6) (s7 s8 s6))) - ((s8) (s3 (s9) (s10 8)))) - (s7 s5 (s7 s2 (s10 5))))))))) - ((let () (define (ok x) '8) (define (second y) (ok y)) (second 5)) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) - (enter-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) - (exit-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s7) (s3 s7)) (s6 5))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (macro-pre-x - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (macro-post-x - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5))) - . - #s(stx-boundary - (s7 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (exit-macro - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (visit - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s6) (s2 s6)) (s5 5)))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s0 (s4 s5) (s1 s5)) (s4 5)))) - (next-group . #f) - (enter-block - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s0 (s4 s5) (s1 s5)) (s4 5)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s0 (s4 s5) (s1 s5)) (s4 5))) - . - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s0 (s4 s5) (s1 s5)) (s4 5)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s0 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 8))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s5 s1 (s2 (s3) (s4 8))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 s2)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s0 (s1 s3) (s4 s3)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) (s4 s3))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3)))) - . - #s(stx-boundary (s5 s1 (s2 (s3) (s4 s3))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 s3))))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 s2))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 5))) - (exit-check . #s(stx-boundary (s0 5))) - (block->letrec - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s6) (s1 s6)))) (s5 5)))) - (visit - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s6) (s1 s6)))) (s5 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s6) (s1 s6)))) (s5 5)))) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 8)))) - #s(stx-boundary ((s4) (s1 (s5) (s0 s5))))) - . - #s(stx-boundary ((s4 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 8))) - (prim-quote . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 s1)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 s1)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 s0)))) - (enter-block . #s(stx-boundary ((s0 s1)))) - (block-renames #s(stx-boundary ((s0 s1))) . #s(stx-boundary ((s0 s1)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 s1))) - (exit-check . #s(stx-boundary (s0 s1))) - (block->list . #s(stx-boundary ((s0 s1)))) - (enter-list . #s(stx-boundary ((s0 s1)))) - (next . #f) - (visit . #s(stx-boundary (s0 s1))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 s2))) - (enter-macro . #s(stx-boundary (s0 s1 s2))) - (macro-pre-x . #s(stx-boundary (s0 s1 s2))) - (macro-post-x - #s(stx-boundary (s0 s1 s2)) - . - #s(stx-boundary (s0 s1 s2))) - (exit-macro . #s(stx-boundary (s0 s1 s2))) - (visit . #s(stx-boundary (s0 s1 s2))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 s2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 s1))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0 s1))) - (exit-prim . #s(stx-boundary (s0 s1 s2))) - (return . #s(stx-boundary (s0 s1 s2))) - (exit-list . #s(stx-boundary ((s0 s1 s2)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (return . #s(stx-boundary (s0 (s1) (s2 s3 s1)))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 5)))) - (next . #f) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 5))) - (enter-macro . #s(stx-boundary (s0 s1 5))) - (macro-pre-x . #s(stx-boundary (s0 s1 5))) - (macro-post-x #s(stx-boundary (s0 s1 5)) . #s(stx-boundary (s0 s1 5))) - (exit-macro . #s(stx-boundary (s0 s1 5))) - (visit . #s(stx-boundary (s0 s1 5))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 5))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 5))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary 5)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 5))) - (enter-prim . #s(stx-boundary (s0 . 5))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 5))) - (return . #s(stx-boundary (s0 5))) - (exit-list . #s(stx-boundary (s0 (s1 5)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 5)))) - (return . #s(stx-boundary (s0 s1 (s2 5)))) - (exit-list . #s(stx-boundary ((s0 s1 (s2 5))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 8)))) - (s0 (((s5) (s2 (s6) (s7 s1 s6)))) (s7 s5 (s4 5)))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 8)))) - (s0 (((s5) (s2 (s6) (s7 s1 s6)))) (s7 s5 (s4 5)))))) - (exit-prim - . - #s(stx-boundary - (s0 - () - (s0 - (((s1) (s2 (s3) (s4 8)))) - (s0 (((s5) (s2 (s6) (s7 s1 s6)))) (s7 s5 (s4 5))))))) - (return - . - #s(stx-boundary - (s0 - () - (s0 - (((s1) (s2 (s3) (s4 8)))) - (s0 (((s5) (s2 (s6) (s7 s1 s6)))) (s7 s5 (s4 5))))))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s1 - (((s2) (s3 (s4) (s5 8)))) - (s1 (((s6) (s3 (s7) (s8 s2 s7)))) (s8 s6 (s5 5)))))))) - (return - . - #s(stx-boundary - (s0 - (s1 - () - (s1 - (((s2) (s3 (s4) (s5 8)))) - (s1 (((s6) (s3 (s7) (s8 s2 s7)))) (s8 s6 (s5 5)))))))))) + (prim-#%datum . #s(stx-boundary (s0 . 5))) + (exit-prim/return . #s(stx-boundary (s0 5))) + (exit-list #s(stx-boundary (s0 5))) + (finish-block #s(stx-boundary (s0 () (s1 5)))) + (exit-prim/return . #s(stx-boundary (s0 () (s0 () (s1 5))))) + (exit-prim/return . #s(stx-boundary (s0 (s1 () (s1 () (s2 5)))))))) ((#%plain-app 1 2) . ((start-top . #f) (visit . #s(stx-boundary (s0 (s1 1 2)))) - (enter-check . #s(stx-boundary (s0 (s1 1 2)))) - (exit-check . #s(stx-boundary (s0 (s1 1 2)))) + (visit . #s(stx-boundary (s0 (s1 1 2)))) + (resolve . #s(stx-boundary s0)) + (stop/return . #s(stx-boundary (s0 (s1 1 2)))) (visit . #s(stx-boundary (s0 (s1 1 2)))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 (s1 1 2)))) - (prim-#%expression . #f) + (prim-#%expression . #s(stx-boundary (s0 (s1 1 2)))) (visit . #s(stx-boundary (s0 1 2))) (resolve . #s(stx-boundary s0)) (enter-prim . #s(stx-boundary (s0 1 2))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (1 2))) + (prim-#%app . #s(stx-boundary (s0 1 2))) (next . #f) (visit . #s(stx-boundary 1)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 1))) + (tag2 #s(stx-boundary (s0 . 1)) . #s(stx-boundary 1)) (enter-prim . #s(stx-boundary (s0 . 1))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 1))) - (return . #s(stx-boundary (s0 1))) + (prim-#%datum . #s(stx-boundary (s0 . 1))) + (exit-prim/return . #s(stx-boundary (s0 1))) (next . #f) (visit . #s(stx-boundary 2)) (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 2))) + (tag2 #s(stx-boundary (s0 . 2)) . #s(stx-boundary 2)) (enter-prim . #s(stx-boundary (s0 . 2))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 2))) - (return . #s(stx-boundary (s0 2))) - (exit-list . #s(stx-boundary ((s0 1) (s0 2)))) - (exit-prim . #s(stx-boundary (s0 (s1 1) (s1 2)))) - (return . #s(stx-boundary (s0 (s1 1) (s1 2)))) - (exit-prim . #s(stx-boundary (s0 (s1 (s2 1) (s2 2))))) - (return . #s(stx-boundary (s0 (s1 (s2 1) (s2 2))))))) - ((let () - (define-syntax (ok stx) (quote-syntax 8)) - (define-syntax (second stx) (quote-syntax (ok 6))) - (second 5)) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) - (enter-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) - (exit-check - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) - (visit - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (s1 () (s2 (s3 s4) (s5 8)) (s2 (s6 s4) (s5 (s3 6))) (s6 5))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (macro-pre-x - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (macro-post-x - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5))) - . - #s(stx-boundary - (s6 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (exit-macro - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (visit - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 () (s1 (s2 s3) (s4 8)) (s1 (s5 s3) (s4 (s2 6))) (s5 5)))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) (s0 (s4 s2) (s3 (s1 6))) (s4 5)))) - (next-group . #f) - (enter-block - . - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) (s0 (s4 s2) (s3 (s1 6))) (s4 5)))) - (block-renames - #s(stx-boundary ((s0 (s1 s2) (s3 8)) (s0 (s4 s2) (s3 (s1 6))) (s4 5))) - . - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) (s0 (s4 s2) (s3 (s1 6))) (s4 5)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s5 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 8))) - . - #s(stx-boundary (s3 (s1) (s2 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 8))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6))))) - . - #s(stx-boundary (s6 (s1 s3) (s4 (s5 6))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 (s4 6)))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3 6)))) - . - #s(stx-boundary (s4 (s1) (s2 (s3 6))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 (s2 6))))) - (enter-block . #s(stx-boundary ((s0 (s1 6))))) - (block-renames - #s(stx-boundary ((s0 (s1 6)))) - . - #s(stx-boundary ((s0 (s1 6))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 6)))) - (exit-check . #s(stx-boundary (s0 (s1 6)))) - (block->list . #s(stx-boundary ((s0 (s1 6))))) - (enter-list . #s(stx-boundary ((s0 (s1 6))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 6)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 6)))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 (s1 6)))) - (return . #s(stx-boundary (s0 (s1 6)))) - (exit-list . #s(stx-boundary ((s0 (s1 6))))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 5))) - (visit . #s(stx-boundary (s0 5))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 5))) - (macro-pre-x . #s(stx-boundary (s0 5))) - (macro-post-x #s(stx-boundary (s0 6)) . #s(stx-boundary (s1 5))) - (exit-macro . #s(stx-boundary (s0 6))) - (return . #s(stx-boundary (s0 6))) - (visit . #s(stx-boundary (s0 6))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 6))) - (macro-pre-x . #s(stx-boundary (s0 6))) - (macro-post-x #s(stx-boundary 8) . #s(stx-boundary (s0 6))) - (exit-macro . #s(stx-boundary 8)) - (return . #s(stx-boundary 8)) - (exit-check . #s(stx-boundary 8)) - (block->letrec - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s3) (s4 (s1 6))))) () 8))) - (visit - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s3) (s4 (s1 6))))) () 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s3) (s4 (s1 6))))) () 8))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 8)))) - #s(stx-boundary ((s4) (s1 (s2) (s3 (s0 6)))))) - () - . - #s(stx-boundary (8))) - (prepare-env . #f) - (next-group . #f) - (enter-list . #s(stx-boundary (8))) - (next . #f) - (visit . #s(stx-boundary 8)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) - (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (tag . #s(stx-boundary (s0 () (s1 8)))) - (exit-prim . #s(stx-boundary (s0 () (s1 8)))) - (return . #s(stx-boundary (s0 () (s1 8)))) - (exit-prim . #s(stx-boundary (s0 () (s0 () (s1 8))))) - (return . #s(stx-boundary (s0 () (s0 () (s1 8))))) - (exit-prim . #s(stx-boundary (s0 (s1 () (s1 () (s2 8)))))) - (return . #s(stx-boundary (s0 (s1 () (s1 () (s2 8)))))))) - ((let () - (define-syntax (ok stx) (quote-syntax 8)) - (define-syntax (second stx) (quote-syntax (ok 6))) - (define (ident x) x) - (define (second-ident y) y) - (ident (second-ident (second)))) - . - ((start-top . #f) - (visit - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 8)) - (s2 (s6 s4) (s5 (s3 6))) - (s7 (s8 s9) s9) - (s7 (s10 s11) s11) - (s8 (s10 (s6))))))) - (enter-check - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 8)) - (s2 (s6 s4) (s5 (s3 6))) - (s7 (s8 s9) s9) - (s7 (s10 s11) s11) - (s8 (s10 (s6))))))) - (exit-check - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 8)) - (s2 (s6 s4) (s5 (s3 6))) - (s7 (s8 s9) s9) - (s7 (s10 s11) s11) - (s8 (s10 (s6))))))) - (visit - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 8)) - (s2 (s6 s4) (s5 (s3 6))) - (s7 (s8 s9) s9) - (s7 (s10 s11) s11) - (s8 (s10 (s6))))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s2 (s3 s4) (s5 8)) - (s2 (s6 s4) (s5 (s3 6))) - (s7 (s8 s9) s9) - (s7 (s10 s11) s11) - (s8 (s10 (s6))))))) - (prim-#%expression . #f) - (visit - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (resolve . #s(stx-boundary s0)) - (enter-macro - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (macro-pre-x - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (macro-post-x - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5))))) - . - #s(stx-boundary - (s11 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (exit-macro - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (visit - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - () - (s1 (s2 s3) (s4 8)) - (s1 (s5 s3) (s4 (s2 6))) - (s6 (s7 s8) s8) - (s6 (s9 s10) s10) - (s7 (s9 (s5)))))) - (prim-let-values . #f) - (let-renames - () - . - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) - (s0 (s4 s2) (s3 (s1 6))) - (s5 (s6 s7) s7) - (s5 (s8 s9) s9) - (s6 (s8 (s4)))))) - (next-group . #f) - (enter-block - . - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) - (s0 (s4 s2) (s3 (s1 6))) - (s5 (s6 s7) s7) - (s5 (s8 s9) s9) - (s6 (s8 (s4)))))) - (block-renames - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) - (s0 (s4 s2) (s3 (s1 6))) - (s5 (s6 s7) s7) - (s5 (s8 s9) s9) - (s6 (s8 (s4))))) - . - #s(stx-boundary - ((s0 (s1 s2) (s3 8)) - (s0 (s4 s2) (s3 (s1 6))) - (s5 (s6 s7) s7) - (s5 (s8 s9) s9) - (s6 (s8 (s4)))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8)))) - . - #s(stx-boundary (s5 (s1 s3) (s4 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 8))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 8))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 8)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 8))) - . - #s(stx-boundary (s3 (s1) (s2 8)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 8)))) - (visit . #s(stx-boundary (s0 (s1) (s2 8)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 8)))) - (enter-block . #s(stx-boundary ((s0 8)))) - (block-renames #s(stx-boundary ((s0 8))) . #s(stx-boundary ((s0 8)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 8))) - (exit-check . #s(stx-boundary (s0 8))) - (block->list . #s(stx-boundary ((s0 8)))) - (enter-list . #s(stx-boundary ((s0 8)))) - (next . #f) - (visit . #s(stx-boundary (s0 8))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 8))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary ((s0 8)))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 8)))) - (return . #s(stx-boundary (s0 (s1) (s2 8)))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (visit . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) (s3 (s4 6))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6))))) - . - #s(stx-boundary (s6 (s1 s3) (s4 (s5 6))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) (s4 (s5 6)))))) - (prim-define-syntaxes . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) (s3 (s4 6)))))) - (prepare-env . #f) - (enter-bind . #f) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (macro-pre-x . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3 6)))) - . - #s(stx-boundary (s4 (s1) (s2 (s3 6))))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (visit . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary ((s1 (s2 6))))) - (enter-block . #s(stx-boundary ((s0 (s1 6))))) - (block-renames - #s(stx-boundary ((s0 (s1 6)))) - . - #s(stx-boundary ((s0 (s1 6))))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 6)))) - (exit-check . #s(stx-boundary (s0 (s1 6)))) - (block->list . #s(stx-boundary ((s0 (s1 6))))) - (enter-list . #s(stx-boundary ((s0 (s1 6))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 6)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1 6)))) - (prim-quote-syntax . #f) - (exit-prim . #s(stx-boundary (s0 (s1 6)))) - (return . #s(stx-boundary (s0 (s1 6)))) - (exit-list . #s(stx-boundary ((s0 (s1 6))))) - (exit-prim . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3 6))))) - (next . #f) - (exit-bind . #f) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) - (visit . #s(stx-boundary (s0 (s1 s2) s2))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) s3))) - . - #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) s3))) - . - #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) s2)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 s2) s2))) - (visit . #s(stx-boundary (s0 (s1 s2) s2))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-pre-x . #s(stx-boundary (s0 (s1 s2) s2))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3) s3))) - . - #s(stx-boundary (s0 (s1 s3) s3))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3) s3)))) - (macro-post-x - #s(stx-boundary (s0 (s1) (s2 (s3) s3))) - . - #s(stx-boundary (s4 s1 (s2 (s3) s3)))) - (exit-macro . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (return . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (exit-check . #s(stx-boundary (s0 (s1) (s2 (s3) s3)))) - (prim-define-values . #f) - (rename-one . #s(stx-boundary ((s0) (s1 (s2) s2)))) - (next . #f) - (enter-check . #s(stx-boundary (s0 (s1 (s2))))) - (exit-check . #s(stx-boundary (s0 (s1 (s2))))) - (block->letrec - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s3) (s4 (s1 6))))) - (((s6) (s7 (s8) s8)) ((s9) (s7 (s10) s10))) - (s6 (s9 (s5)))))) - (visit - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s3) (s4 (s1 6))))) - (((s6) (s7 (s8) s8)) ((s9) (s7 (s10) s10))) - (s6 (s9 (s5)))))) - (resolve . #s(stx-boundary s0)) - (enter-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) (s4 8))) ((s5) (s2 (s3) (s4 (s1 6))))) - (((s6) (s7 (s8) s8)) ((s9) (s7 (s10) s10))) - (s6 (s9 (s5)))))) - (prim-letrec-syntaxes+values . #f) - (letrec-syntaxes-renames - (#s(stx-boundary ((s0) (s1 (s2) (s3 8)))) - #s(stx-boundary ((s4) (s1 (s2) (s3 (s0 6)))))) - (#s(stx-boundary ((s5) (s6 (s7) s7))) - #s(stx-boundary ((s8) (s6 (s9) s9)))) - . - #s(stx-boundary ((s5 (s8 (s4)))))) - (prepare-env . #f) - (next-group . #f) - (prim-letrec-values . #f) - (let-renames - (#s(stx-boundary ((s0) (s1 (s2) s2))) - #s(stx-boundary ((s3) (s1 (s4) s4)))) - . - #s(stx-boundary ((s0 (s3 (s5)))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1) s1))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 (s1) s1))) - (prim-lambda . #f) - (lambda-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (enter-block . #s(stx-boundary (s0))) - (block-renames #s(stx-boundary (s0)) . #s(stx-boundary (s0))) - (next . #f) - (enter-check . #s(stx-boundary s0)) - (exit-check . #s(stx-boundary s0)) - (block->list . #s(stx-boundary (s0))) - (enter-list . #s(stx-boundary (s0))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (exit-list . #s(stx-boundary (s0))) - (exit-prim . #s(stx-boundary (s0 (s1) s1))) - (return . #s(stx-boundary (s0 (s1) s1))) - (next-group . #f) - (enter-list . #s(stx-boundary ((s0 (s1 (s2)))))) - (next . #f) - (visit . #s(stx-boundary (s0 (s1 (s2))))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2 (s3))))) - (enter-macro . #s(stx-boundary (s0 s1 (s2 (s3))))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2 (s3))))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2 (s3)))) - . - #s(stx-boundary (s0 s1 (s2 (s3))))) - (exit-macro . #s(stx-boundary (s0 s1 (s2 (s3))))) - (visit . #s(stx-boundary (s0 s1 (s2 (s3))))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2 (s3))))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1 (s2))))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0 (s1)))) - (resolve . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 s1 (s2)))) - (enter-macro . #s(stx-boundary (s0 s1 (s2)))) - (macro-pre-x . #s(stx-boundary (s0 s1 (s2)))) - (macro-post-x - #s(stx-boundary (s0 s1 (s2))) - . - #s(stx-boundary (s0 s1 (s2)))) - (exit-macro . #s(stx-boundary (s0 s1 (s2)))) - (visit . #s(stx-boundary (s0 s1 (s2)))) - (resolve . #s(stx-boundary s0)) - (enter-prim . #s(stx-boundary (s0 s1 (s2)))) - (prim-#%app . #f) - (enter-list . #s(stx-boundary (s0 (s1)))) - (next . #f) - (visit . #s(stx-boundary s0)) - (resolve . #s(stx-boundary s0)) - (variable #s(stx-boundary s0) . #s(stx-boundary s0)) - (return . #s(stx-boundary s0)) - (next . #f) - (visit . #s(stx-boundary (s0))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0))) - (macro-pre-x . #s(stx-boundary (s0))) - (macro-post-x #s(stx-boundary (s0 6)) . #s(stx-boundary (s1))) - (exit-macro . #s(stx-boundary (s0 6))) - (visit . #s(stx-boundary (s0 6))) - (resolve . #s(stx-boundary s0)) - (enter-macro . #s(stx-boundary (s0 6))) - (macro-pre-x . #s(stx-boundary (s0 6))) - (macro-post-x #s(stx-boundary 8) . #s(stx-boundary (s0 6))) - (exit-macro . #s(stx-boundary 8)) - (visit . #s(stx-boundary 8)) - (resolve . #s(stx-boundary s0)) - (tag . #s(stx-boundary (s0 . 8))) - (enter-prim . #s(stx-boundary (s0 . 8))) - (prim-#%datum . #f) - (exit-prim . #s(stx-boundary (s0 8))) - (return . #s(stx-boundary (s0 8))) - (exit-list . #s(stx-boundary (s0 (s1 8)))) - (exit-prim . #s(stx-boundary (s0 s1 (s2 8)))) - (return . #s(stx-boundary (s0 s1 (s2 8)))) - (exit-list . #s(stx-boundary (s0 (s1 s2 (s3 8))))) - (exit-prim . #s(stx-boundary (s0 s1 (s0 s2 (s3 8))))) - (return . #s(stx-boundary (s0 s1 (s0 s2 (s3 8))))) - (exit-list . #s(stx-boundary ((s0 s1 (s0 s2 (s3 8)))))) - (tag - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3))) - (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8))))))) - (exit-prim - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3))) - (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8))))))) - (return - . - #s(stx-boundary - (s0 - (((s1) (s2 (s3) s3))) - (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8))))))) - (exit-prim - . - #s(stx-boundary - (s0 - () - (s0 - (((s1) (s2 (s3) s3))) - (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8)))))))) - (return - . - #s(stx-boundary - (s0 - () - (s0 - (((s1) (s2 (s3) s3))) - (s0 (((s4) (s2 (s5) s5))) (s6 s1 (s6 s4 (s7 8)))))))) - (exit-prim - . - #s(stx-boundary - (s0 - (s1 - () - (s1 - (((s2) (s3 (s4) s4))) - (s1 (((s5) (s3 (s6) s6))) (s7 s2 (s7 s5 (s8 8))))))))) - (return - . - #s(stx-boundary - (s0 - (s1 - () - (s1 - (((s2) (s3 (s4) s4))) - (s1 (((s5) (s3 (s6) s6))) (s7 s2 (s7 s5 (s8 8)))))))))))) + (prim-#%datum . #s(stx-boundary (s0 . 2))) + (exit-prim/return . #s(stx-boundary (s0 2))) + (exit-prim/return . #s(stx-boundary (s0 (s1 1) (s1 2)))) + (exit-prim/return . #s(stx-boundary (s0 (s1 (s2 1) (s2 2)))))))) diff --git a/racket/src/expander/boot/expobs-primitive.rkt b/racket/src/expander/boot/expobs-primitive.rkt index 8f2d6e1c5a..088b206eb5 100644 --- a/racket/src/expander/boot/expobs-primitive.rkt +++ b/racket/src/expander/boot/expobs-primitive.rkt @@ -1,7 +1,9 @@ #lang racket/base -(require "../expand/context.rkt") +(require "../expand/context.rkt" + "../expand/syntax-local.rkt") (provide expobs-primitives) (define expobs-primitives - (hasheq 'current-expand-observe current-expand-observe)) + (hasheq 'current-expand-observe current-expand-observe + 'syntax-local-expand-observer syntax-local-expand-observer)) diff --git a/racket/src/expander/eval/main.rkt b/racket/src/expander/eval/main.rkt index 33218595ba..20b29245b4 100644 --- a/racket/src/expander/eval/main.rkt +++ b/racket/src/expander/eval/main.rkt @@ -163,27 +163,13 @@ (expand-single form ns observer to-parsed? #:serializable? serializable?)))] [else - (log-top-lift-begin-before ctx require-lifts lifts exp-s ns) (define new-s (wrap-lifts-as-begin (append require-lifts lifts) - #:adjust-form (lambda (form) - (log-expand ctx 'next) - (expand-single form ns observer to-parsed? - #:serializable? serializable?)) - #:adjust-body (lambda (form) - (cond - [to-parsed? form] - [else - (log-expand ctx 'next) - ;; This re-expansion should be unnecessary, but we do it - ;; for a kind of consistentcy with `expand/capture-lifts` - ;; and for expansion observers - (expand-single form ns observer to-parsed? - #:serializable? serializable?)])) exp-s (namespace-phase ns))) - (log-top-begin-after ctx new-s) - new-s])) + (log-expand ctx 'lift-loop new-s) + (expand-single new-s ns observer to-parsed? + #:serializable? serializable?)])) (define (expand-once s [ns (current-namespace)]) (per-top-level s ns @@ -262,7 +248,7 @@ [else (case (core-form-sym disarmed-exp-s phase) [(begin) - (log-expand ctx 'prim-begin) + (log-expand ctx 'prim-begin disarmed-exp-s) (define-match m disarmed-exp-s '(begin e ...)) ;; Map `loop` over the `e`s, but in the case of `eval`, ;; tail-call for last one: @@ -289,7 +275,7 @@ new-s] [else (begin-loop (m 'e))])] [(begin-for-syntax) - (log-expand tl-ctx 'prim-begin-for-syntax) + (log-expand tl-ctx 'prim-begin-for-syntax disarmed-exp-s) (define-match m disarmed-exp-s '(begin-for-syntax e ...)) (define next-phase (add1 phase)) (define next-ns (namespace->namespace-at-phase ns next-phase)) @@ -389,25 +375,12 @@ (define new-s (wrap-lifts-as-begin (append require-lifts lifts) exp-s (namespace-phase ns))) - (...log-expand obs ['lift-loop new-s]) - (log-top-begin-before ctx new-s)))) + (define-match m new-s '(begin e ...)) + (...log-expand obs ['enter-lift-loop new-s])))) -(define (log-top-begin-before ctx new-s) +(define (log-top-lift-begin-after ctx new-s) (log-expand... ctx (lambda (obs) - (define-match m new-s '(begin e ...)) - (...log-expand obs - ['visit new-s] ['resolve (m 'begin)] - ['enter-prim new-s] ['prim-begin] - ['enter-list (datum->syntax #f (m 'e) new-s)])))) - -(define (log-top-begin-after ctx new-s) - (log-expand... - ctx - (lambda (obs) - (define-match m new-s '(begin e ...)) (log-expand* ctx - ['exit-list (datum->syntax #f (m 'e) new-s)] - ['exit-prim new-s] - ['return new-s])))) + ['end-lift-loop new-s])))) diff --git a/racket/src/expander/expand/body.rkt b/racket/src/expander/expand/body.rkt index 97e580d6cb..ba41ab3320 100644 --- a/racket/src/expander/expand/body.rkt +++ b/racket/src/expander/expand/body.rkt @@ -29,7 +29,7 @@ (define (expand-body bodys ctx #:source s #:stratified? [stratified? #f]) - (log-expand ctx 'enter-block (datum->syntax #f bodys)) + (log-expand ctx 'enter-block bodys) ;; In principle, we have an outside-edge scope that identifies the ;; original content of the definition context --- but a body always ;; exists inside some binding form, so that form's scope will do; @@ -39,7 +39,7 @@ (define init-bodys (for/list ([body (in-list bodys)]) (add-scope body inside-sc))) - (log-expand ctx 'block-renames (datum->syntax #f init-bodys) (datum->syntax #f bodys)) + (log-expand ctx 'block-renames init-bodys bodys) (define phase (expand-context-phase ctx)) (define frame-id (make-reference-record)) ; accumulates info on referenced variables (define def-ctx-scopes (box null)) @@ -105,7 +105,7 @@ (case (core-form-sym disarmed-exp-body phase) [(begin) ;; Splice a `begin` form - (log-expand body-ctx 'prim-begin) + (log-expand body-ctx 'prim-begin disarmed-exp-body) (define-match m disarmed-exp-body '(begin e ...)) (define (track e) (syntax-track-origin e exp-body)) (define splice-bodys (append (map track (m 'e)) rest-bodys)) @@ -125,10 +125,10 @@ [(define-values) ;; Found a variable definition; add bindings, extend the ;; environment, and continue - (log-expand body-ctx 'prim-define-values) + (log-expand body-ctx 'prim-define-values disarmed-exp-body) (define-match m disarmed-exp-body '(define-values (id ...) rhs)) (define ids (remove-use-site-scopes (m 'id) body-ctx)) - (log-expand body-ctx 'rename-one (datum->syntax #f (list ids (m 'rhs)))) + (log-expand body-ctx 'rename-one (list ids (m 'rhs))) (define new-dups (check-no-duplicate-ids ids phase exp-body dups)) (define counter (root-expand-context-counter ctx)) (define local-sym (and (expand-context-normalize-locals? ctx) 'loc)) @@ -175,10 +175,10 @@ ;; Found a macro definition; add bindings, evaluate the ;; compile-time right-hand side, install the compile-time ;; values in the environment, and continue - (log-expand body-ctx 'prim-define-syntaxes) + (log-expand body-ctx 'prim-define-syntaxes disarmed-exp-body) (define-match m disarmed-exp-body '(define-syntaxes (id ...) rhs)) (define ids (remove-use-site-scopes (m 'id) body-ctx)) - (log-expand body-ctx 'rename-one (datum->syntax #f (list ids (m 'rhs)))) + (log-expand body-ctx 'rename-one (list ids (m 'rhs))) (define new-dups (check-no-duplicate-ids ids phase exp-body dups)) (define counter (root-expand-context-counter ctx)) (define local-sym (and (expand-context-normalize-locals? ctx) 'mac)) @@ -276,10 +276,8 @@ [post-expansion #:parent root-expand-context #f])) ;; Helper to expand and wrap the ending expressions in `begin`, if needed: (define (finish-bodys) - (define block->list? (null? val-idss)) - (unless block->list? (log-expand body-ctx 'next-group)) ; to go with 'block->letrec (define last-i (sub1 (length done-bodys))) - (log-expand body-ctx 'enter-list (datum->syntax #f done-bodys)) + (log-expand body-ctx 'enter-list done-bodys) (define exp-bodys (for/list ([done-body (in-list done-bodys)] [i (in-naturals)]) @@ -288,20 +286,17 @@ (struct*-copy expand-context finish-ctx [name name]) finish-ctx)))) - (log-expand body-ctx 'exit-list (datum->syntax #f exp-bodys)) + (log-expand body-ctx 'exit-list exp-bodys) (reference-record-clear! frame-id) exp-bodys) (cond [(and (null? val-idss) (null? disappeared-transformer-bindings)) ;; No definitions, so just return the body list - (log-expand finish-ctx 'block->list (datum->syntax s done-bodys)) + (log-expand finish-ctx 'block->list) (finish-bodys)] [else - (log-expand... finish-ctx (lambda (obs) - ;; Simulate old expansion steps - (log-letrec-values obs finish-ctx s val-idss val-rhss track-stxs - stx-clauses done-bodys))) + (log-expand finish-ctx 'block->letrec val-idss val-rhss done-bodys) ;; Roughly, finish expanding the right-hand sides, finish the body ;; expression, then add a `letrec-values` wrapper: (define exp-s (expand-and-split-bindings-by-reference @@ -310,15 +305,17 @@ #:frame-id frame-id #:ctx finish-ctx #:source s #:had-stxes? (pair? stx-clauses) #:get-body finish-bodys #:track? #f)) - (log-expand* body-ctx ['exit-prim exp-s] ['return exp-s]) (if (expand-context-to-parsed? body-ctx) (list exp-s) (let ([exp-s (attach-disappeared-transformer-bindings exp-s disappeared-transformer-bindings)]) - (list (for/fold ([exp-s exp-s]) ([form (in-list disappeared-transformer-forms)] - #:when form) - (syntax-track-origin exp-s form)))))])) + (let ([tracked-exp-s + (for/fold ([exp-s exp-s]) ([form (in-list disappeared-transformer-forms)] + #:when form) + (syntax-track-origin exp-s form))]) + (log-expand finish-ctx 'finish-block (list tracked-exp-s)) + (list tracked-exp-s))))])) ;; Roughly, create a `letrec-values` for for the given ids, right-hand sides, and ;; body. While expanding right-hand sides, though, keep track of whether any @@ -334,7 +331,7 @@ (define phase (expand-context-phase ctx)) (let loop ([idss idss] [keyss keyss] [rhss rhss] [track-stxs track-stxs] [accum-idss null] [accum-keyss null] [accum-rhss null] [accum-track-stxs null] - [track? track?] [get-list? #f] [can-log? #t]) + [track? track?] [get-list? #f]) (cond [(null? idss) (cond @@ -359,7 +356,6 @@ (core-id 'letrec-values phase)) ,(build-clauses accum-idss accum-rhss accum-track-stxs) ,@exp-body)))) - (log-expand* ctx #:when (and can-log? (log-tag? had-stxes? ctx)) ['tag result-s]) (if get-list? (list result-s) result-s)])] [else (log-expand ctx 'next) @@ -377,7 +373,7 @@ (unless (null? accum-idss) (error "internal error: accumulated ids not empty")) (define exp-rest (loop (cdr idss) (cdr keyss) (cdr rhss) (cdr track-stxs) null null null null - #f #t #f)) + #f #t)) (define result-s (if (expand-context-to-parsed? ctx) (parsed-let-values (keep-properties-only s) @@ -390,13 +386,12 @@ `(,(core-id 'let-values phase) (,(build-clause ids expanded-rhs track-stx)) ,@exp-rest)))) - (log-expand* ctx #:when (and can-log? (log-tag? had-stxes? ctx)) ['tag result-s]) (if get-list? (list result-s) result-s)] [(and (not forward-references?) (or split? (null? (cdr idss)))) (define exp-rest (loop (cdr idss) (cdr keyss) (cdr rhss) (cdr track-stxs) null null null null - #f #t #f)) + #f #t)) (define result-s (if (expand-context-to-parsed? ctx) (parsed-letrec-values (keep-properties-only s) @@ -413,13 +408,12 @@ (cons expanded-rhs accum-rhss) (cons track-stx accum-track-stxs)) ,@exp-rest)))) - (log-expand* ctx #:when (and can-log? (log-tag? had-stxes? ctx)) ['tag result-s]) (if get-list? (list result-s) result-s)] [else (loop (cdr idss) (cdr keyss) (cdr rhss) (cdr track-stxs) (cons ids accum-idss) (cons (car keyss) accum-keyss) (cons expanded-rhs accum-rhss) (cons track-stx accum-track-stxs) - track? get-list? can-log?)])]))) + track? get-list?)])]))) (define (build-clauses accum-idss accum-rhss accum-track-stxs) (map build-clause @@ -446,39 +440,3 @@ (define (log-tag? had-stxes? ctx) (and had-stxes? (not (expand-context-only-immediate? ctx)))) - -;; Generate observer actions that simulate the old expander -;; going back through `letrec-values`: -(define (log-letrec-values obs ctx s val-idss val-rhss track-stxs - stx-clauses done-bodys) - (define phase (expand-context-phase ctx)) - (define clauses (for/list ([val-ids (in-list val-idss)] - [val-rhs (in-list val-rhss)] - [track-stx (in-list track-stxs)]) - (datum->syntax #f `[,val-ids ,val-rhs] track-stx))) - (define had-stxes? (not (null? stx-clauses))) - (define lv-id (core-id (if had-stxes? 'letrec-syntaxes+values 'letrec-values) phase)) - (define lv-s (datum->syntax #f (if had-stxes? - `(,lv-id ,stx-clauses ,clauses ,@done-bodys) - `(,lv-id ,clauses ,@done-bodys)) - s)) - (...log-expand obs - ['block->letrec (list lv-s)] - ['visit lv-s] - ['resolve lv-id] - ['enter-prim lv-s]) - (cond - [had-stxes? - (...log-expand obs - ['prim-letrec-syntaxes+values] - ['letrec-syntaxes-renames stx-clauses clauses (datum->syntax #f done-bodys s)] - ['prepare-env] - ['next-group]) - (unless (null? val-idss) - (...log-expand obs - ['prim-letrec-values] - ['let-renames clauses (datum->syntax #f done-bodys s)]))] - [else - (...log-expand obs - ['prim-letrec-values] - ['let-renames clauses (datum->syntax #f done-bodys s)])])) diff --git a/racket/src/expander/expand/context.rkt b/racket/src/expander/expand/context.rkt index 06d2366dd2..a3823e76b6 100644 --- a/racket/src/expander/expand/context.rkt +++ b/racket/src/expander/expand/context.rkt @@ -18,6 +18,7 @@ copy-root-expand-context current-expand-context get-current-expand-context + without-expand-context current-expand-observe @@ -145,6 +146,11 @@ #f (raise-arguments-error who "not currently expanding")))) +(define-syntax-rule (without-expand-context body ...) + (parameterize-like + #:with ([current-expand-context #f]) + body ...)) + ;; ---------------------------------------- ;; For macro debugging. This parameter is only used by the expander diff --git a/racket/src/expander/expand/definition-context.rkt b/racket/src/expander/expand/definition-context.rkt index f748792a17..ba5a1ac20b 100644 --- a/racket/src/expander/expand/definition-context.rkt +++ b/racket/src/expander/expand/definition-context.rkt @@ -132,16 +132,20 @@ (raise-argument-error 'internal-definition-context-introduce "internal-definition-context?" intdef)) (unless (syntax? s) (raise-argument-error 'internal-definition-context-introduce "syntax?" s)) - (add-intdef-scopes s intdef - #:always? #t - #:action (case mode - [(add) add-scope] - [(remove) remove-scope] - [(flip) flip-scope] - [else (raise-argument-error - 'internal-definition-context-introduce - "(or/c 'add 'remove 'flip)" - mode)]))) + (define new-s + (add-intdef-scopes s intdef + #:always? #t + #:action (case mode + [(add) add-scope] + [(remove) remove-scope] + [(flip) flip-scope] + [else (raise-argument-error + 'internal-definition-context-introduce + "(or/c 'add 'remove 'flip)" + mode)]))) + (define ctx (get-current-expand-context #:fail-ok? #t)) + (when ctx (log-expand ctx 'track-syntax 'internal-definition-context-introduce new-s s)) + new-s) ;; internal-definition-context-seal (define (internal-definition-context-seal intdef) diff --git a/racket/src/expander/expand/expr.rkt b/racket/src/expander/expand/expr.rkt index 3c513fb861..7405c6cdf1 100644 --- a/racket/src/expander/expand/expr.rkt +++ b/racket/src/expander/expand/expr.rkt @@ -31,7 +31,7 @@ ;; ---------------------------------------- ;; Common expansion for `lambda` and `case-lambda` -(define (lambda-clause-expander s disarmed-s formals bodys ctx log-renames-tag) +(define (lambda-clause-expander s disarmed-s formals bodys ctx) (define sc (new-scope 'local)) (define phase (expand-context-phase ctx)) ;; Parse and check formal arguments: @@ -48,7 +48,7 @@ (env-extend env key (local-variable id)))) (define sc-formals (add-scope formals sc)) (define sc-bodys (for/list ([body (in-list bodys)]) (add-scope body sc))) - (log-expand ctx log-renames-tag sc-formals (datum->syntax #f sc-bodys)) + (log-expand ctx 'lambda-renames sc-formals sc-bodys) ;; Expand the function body: (define body-ctx (struct*-copy expand-context ctx [env body-env] @@ -65,12 +65,12 @@ (add-core-form! 'lambda (lambda (s ctx) - (log-expand ctx 'prim-lambda) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-lambda disarmed-s) (define-match m disarmed-s '(lambda formals body ...+)) (define rebuild-s (keep-as-needed ctx s #:keep-for-parsed? #t)) (define-values (formals body) - (lambda-clause-expander s disarmed-s (m 'formals) (m 'body) ctx 'lambda-renames)) + (lambda-clause-expander s disarmed-s (m 'formals) (m 'body) ctx)) (if (expand-context-to-parsed? ctx) (parsed-lambda rebuild-s formals body) (rebuild @@ -101,8 +101,8 @@ (add-core-form! 'case-lambda (lambda (s ctx) - (log-expand ctx 'prim-case-lambda) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-case-lambda disarmed-s) (define-match m disarmed-s '(case-lambda [formals body ...+] ...)) (define-match cm disarmed-s '(case-lambda clause ...)) (define rebuild-s (keep-as-needed ctx s #:keep-for-parsed? #t)) @@ -113,7 +113,7 @@ (log-expand ctx 'next) (define rebuild-clause (keep-as-needed ctx clause)) (define-values (exp-formals exp-body) - (lambda-clause-expander s disarmed-s formals body ctx 'lambda-renames)) + (lambda-clause-expander s disarmed-s formals body ctx)) (if (expand-context-to-parsed? ctx) (list exp-formals exp-body) (rebuild rebuild-clause `[,exp-formals ,@exp-body])))) @@ -159,11 +159,10 @@ (define (make-let-values-form #:log-tag log-tag #:syntaxes? [syntaxes? #f] #:rec? [rec? #f] - #:split-by-reference? [split-by-reference? #f] - #:renames-log-tag [renames-log-tag 'let-renames]) + #:split-by-reference? [split-by-reference? #f]) (lambda (s ctx) - (log-expand ctx log-tag) (define disarmed-s (syntax-disarm s)) + (log-expand ctx log-tag disarmed-s) (define-match stx-m disarmed-s #:when syntaxes? '(letrec-syntaxes+values ([(id:trans ...) trans-rhs] ...) @@ -181,6 +180,10 @@ (define trans-idss (for/list ([ids (in-list (if syntaxes? (stx-m 'id:trans) null))]) (for/list ([id (in-list ids)]) (add-scope id sc)))) + (define trans-rhss (if syntaxes? ; implies rec? + (for/list ([rhs (in-list (stx-m 'trans-rhs))]) + (add-scope rhs sc)) + '())) (define val-idss (for/list ([ids (in-list (if syntaxes? (stx-m 'id:val) (val-m 'id:val)))]) (for/list ([id (in-list ids)]) (add-scope id sc)))) @@ -217,18 +220,16 @@ (if rec? (add-scope new-body body-sc) new-body))) - (log-expand... ctx (lambda (obs) - (log-let-renames obs renames-log-tag val-idss val-rhss bodys - trans-idss (and syntaxes? (stx-m 'trans-rhs)) sc))) + (log-expand ctx 'letX-renames trans-idss trans-rhss val-idss val-rhss bodys) ;; Evaluate compile-time expressions (if any): (when syntaxes? (log-expand ctx 'prepare-env) (prepare-next-phase-namespace ctx)) - (define trans-valss (for/list ([rhs (in-list (if syntaxes? (stx-m 'trans-rhs) '()))] + (define trans-valss (for/list ([rhs (in-list trans-rhss)] [ids (in-list trans-idss)]) (log-expand* ctx ['next] ['enter-bind]) (define trans-val (eval-for-syntaxes-binding 'letrec-syntaxes+values - (add-scope rhs sc) ids ctx)) + rhs ids ctx)) (log-expand ctx 'exit-bind) trans-val)) ;; Fill expansion-time environment: @@ -247,6 +248,8 @@ [id (in-list ids)]) (maybe-install-free=id-in-context! val id phase ctx) (env-extend env key val)))) + (when syntaxes? + (log-expand ctx 'next-group)) ;; Expand right-hand sides and body (define expr-ctx (as-expression-context ctx)) (define orig-rrs (expand-context-reference-records expr-ctx)) @@ -276,11 +279,7 @@ (datum->syntax #f (syntax-e val-id) val-id val-id))) val-idss)) - (when syntaxes? - (log-expand... ctx (lambda (obs) (log-letrec-values obs val-idss val-rhss bodys)))) - (define (get-body) - (log-expand* ctx #:unless (and syntaxes? (null? val-idss)) ['next-group]) (define body-ctx (struct*-copy expand-context rec-ctx [reference-records orig-rrs])) (expand-body bodys (as-tail-context body-ctx #:wrt ctx) #:source rebuild-s)) @@ -322,27 +321,6 @@ result-s (attach-disappeared-transformer-bindings result-s trans-idss)))) -(define (log-let-renames obs renames-log-tag val-idss val-rhss bodys - trans-idss trans-rhss sc) - (define vals+body (cons (for/list ([val-ids (in-list val-idss)] - [val-rhs (in-list val-rhss)]) - (datum->syntax #f `[,val-ids ,val-rhs])) - (datum->syntax #f bodys))) - (...log-expand obs [renames-log-tag (if (not trans-rhss) - vals+body - (cons - (for/list ([trans-ids (in-list trans-idss)] - [trans-rhs (in-list trans-rhss)]) - (datum->syntax #f `[,trans-ids ,(add-scope trans-rhs sc)])) - vals+body))])) - -(define (log-letrec-values obs val-idss val-rhss bodys) - (...log-expand obs ['next-group]) - (unless (null? val-idss) - (...log-expand obs ['prim-letrec-values]) - (log-let-renames obs 'let-renames val-idss val-rhss bodys - #f #f #f))) - (add-core-form! 'let-values (make-let-values-form #:log-tag 'prim-let-values)) @@ -354,16 +332,15 @@ (add-core-form! 'letrec-syntaxes+values (make-let-values-form #:syntaxes? #t #:rec? #t #:split-by-reference? #t - #:log-tag 'prim-letrec-syntaxes+values - #:renames-log-tag 'letrec-syntaxes-renames)) + #:log-tag 'prim-letrec-syntaxes+values)) ;; ---------------------------------------- (add-core-form! '#%stratified-body (lambda (s ctx) - (log-expand ctx 'prim-#%stratified) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-#%stratified disarmed-s) (define-match m disarmed-s '(#%stratified-body body ...+)) (define rebuild-s (keep-as-needed ctx s #:keep-for-error? #t)) (define exp-body (expand-body (m 'body) ctx #:stratified? #t #:source rebuild-s)) @@ -381,8 +358,8 @@ (add-core-form! '#%datum (lambda (s ctx) - (log-expand ctx 'prim-#%datum) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-#%datum disarmed-s) (define-match m disarmed-s '(#%datum . datum)) (define datum (m 'datum)) (when (and (syntax? datum) @@ -401,8 +378,8 @@ (add-core-form! '#%app (lambda (s ctx) - (log-expand ctx 'prim-#%app) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-#%app disarmed-s) (define-match m disarmed-s '(#%app e ...)) (define es (m 'e)) (cond @@ -421,7 +398,7 @@ (define rebuild-prefixless (and (syntax? prefixless) (keep-as-needed ctx prefixless #:keep-for-parsed? keep-for-parsed?))) (define expr-ctx (as-expression-context ctx)) - (log-expand* expr-ctx ['enter-list (datum->syntax #f es s)] ['next]) + (log-expand expr-ctx 'next) (define rest-es (cdr es)) (define exp-rator (expand (car es) expr-ctx)) (define exp-es (for/list ([e (in-list rest-es)]) @@ -435,14 +412,13 @@ (if rebuild-prefixless (rebuild rebuild-prefixless exp-es) exp-es))) - (log-expand expr-ctx 'exit-list (datum->syntax #f es rebuild-s)) (rebuild rebuild-s (cons (m '#%app) es))])]))) (add-core-form! 'quote (lambda (s ctx) - (log-expand ctx 'prim-quote) + (log-expand ctx 'prim-quote #f) (define-match m (syntax-disarm s) '(quote datum)) (if (expand-context-to-parsed? ctx) (parsed-quote (keep-properties-only~ s) (syntax->datum (m 'datum))) @@ -451,8 +427,8 @@ (add-core-form! 'quote-syntax (lambda (s ctx) - (log-expand ctx 'prim-quote-syntax) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-quote-syntax disarmed-s) (define-match m-local disarmed-s #:try '(quote-syntax datum #:local)) (define-match m disarmed-s #:unless (m-local) '(quote-syntax datum)) (cond @@ -482,8 +458,8 @@ (add-core-form! 'if (lambda (s ctx) - (log-expand ctx 'prim-if) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-if disarmed-s) (define-match bad-m disarmed-s #:try '(_ _ _)) (when (bad-m) (raise-syntax-error #f "missing an \"else\" expression" s)) (define-match m disarmed-s '(if tst thn els)) @@ -504,8 +480,8 @@ (add-core-form! 'with-continuation-mark (lambda (s ctx) - (log-expand ctx 'prim-with-continuation-mark) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-with-continuation-mark disarmed-s) (define-match m disarmed-s '(with-continuation-mark key val body)) (define expr-ctx (as-expression-context ctx)) (define rebuild-s (keep-as-needed ctx s)) @@ -521,24 +497,17 @@ (list (m 'with-continuation-mark) exp-key exp-val exp-body))))) (define (make-begin log-tag parsed-begin - #:list-start-index list-start-index #:last-is-tail? last-is-tail?) (lambda (s ctx) - (log-expand ctx log-tag) (define disarmed-s (syntax-disarm s)) + (log-expand ctx log-tag disarmed-s) (define-match m disarmed-s '(begin e ...+)) (define expr-ctx (if last-is-tail? (as-begin-expression-context ctx) (as-expression-context ctx))) (define rebuild-s (keep-as-needed ctx s)) (define exp-es - (let loop ([es (m 'e)] [index list-start-index]) - (when (zero? index) - (log-expand... ctx - (lambda (obs) - (unless (zero? list-start-index) - (...log-expand obs ['next])) - (...log-expand obs ['enter-list (datum->syntax #f es rebuild-s)])))) + (let loop ([es (m 'e)]) (cond [(null? es) null] [else @@ -547,8 +516,7 @@ (cons (expand (car es) (if (and last-is-tail? (null? rest-es)) (as-tail-context expr-ctx #:wrt ctx) expr-ctx)) - (loop rest-es (sub1 index)))]))) - (log-expand ctx 'exit-list (datum->syntax #f (list-tail exp-es list-start-index) rebuild-s)) + (loop rest-es))]))) (if (expand-context-to-parsed? ctx) (parsed-begin rebuild-s exp-es) (rebuild @@ -557,7 +525,7 @@ (add-core-form! 'begin - (let ([nonempty-begin (make-begin 'prim-begin parsed-begin #:list-start-index 0 #:last-is-tail? #t)]) + (let ([nonempty-begin (make-begin 'prim-begin parsed-begin #:last-is-tail? #t)]) (lambda (s ctx) ;; Empty `begin` allowed in 'top-level and 'module contexts, ;; which might get here via `local-expand`: @@ -574,7 +542,7 @@ (add-core-form! 'begin0 - (make-begin 'prim-begin0 parsed-begin0 #:list-start-index 1 #:last-is-tail? #f)) + (make-begin 'prim-begin0 parsed-begin0 #:last-is-tail? #f)) (define (register-eventual-variable!? id ctx) (cond @@ -592,8 +560,8 @@ (add-core-form! '#%top (lambda (s ctx [implicit-omitted? #f]) - (log-expand ctx 'prim-#%top) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-#%top disarmed-s) (define id (cond [implicit-omitted? ;; As a special favor to `local-expand`, the expander @@ -653,8 +621,8 @@ (add-core-form! 'set! (lambda (s ctx) - (log-expand ctx 'prim-set!) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-set! disarmed-s) (define-match m disarmed-s '(set! id rhs)) (define orig-id (m 'id)) (let rename-loop ([id orig-id] [from-rename? #f]) @@ -723,8 +691,8 @@ (add-core-form! '#%variable-reference (lambda (s ctx) - (log-expand ctx 'prim-#%variable-reference) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-#%variable-reference disarmed-s) (define-match id-m disarmed-s #:try '(#%variable-reference id)) (define-match top-m disarmed-s #:unless (id-m) #:try '(#%variable-reference (#%top . id))) (define-match empty-m disarmed-s #:unless (or (id-m) (top-m)) '(#%variable-reference)) @@ -762,8 +730,8 @@ (add-core-form! '#%expression (lambda (s ctx) - (log-expand ctx 'prim-#%expression) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-#%expression disarmed-s) (define-match m disarmed-s '(#%expression e)) (define rebuild-s (keep-as-needed ctx s #:for-track? #t)) (define exp-e (expand (m 'e) (as-tail-context (as-expression-context ctx) diff --git a/racket/src/expander/expand/local-expand.rkt b/racket/src/expander/expand/local-expand.rkt index e2bcdb9642..0bfc85403b 100644 --- a/racket/src/expander/expand/local-expand.rkt +++ b/racket/src/expander/expand/local-expand.rkt @@ -110,7 +110,8 @@ (expand-context-keep-#%expression? ctx))) #:track-to-be-defined? track-to-be-defined?)) - (namespace-visit-available-modules! (expand-context-namespace ctx) phase) + (without-expand-context + (namespace-visit-available-modules! (expand-context-namespace ctx) phase)) (log-expand local-ctx 'enter-local s) (define input-s (add-intdef-scopes (flip-introduction-scopes s ctx) intdefs)) @@ -119,29 +120,30 @@ (log-expand local-ctx 'local-pre input-s) (when stop-ids (log-expand local-ctx 'start)) - (define output-s (cond - [(and as-transformer? capture-lifts?) - (expand-transformer input-s local-ctx - #:context context - #:expand-lifts? #f - #:begin-form? #t - #:lift-key lift-key - #:always-wrap? #t - #:keep-stops? #t)] - [as-transformer? - (expand-transformer input-s local-ctx - #:context context - #:expand-lifts? #f - #:begin-form? (eq? 'top-level context) - #:lift-key lift-key - #:keep-stops? #t)] - [capture-lifts? - (expand/capture-lifts input-s local-ctx + (define output-s (without-expand-context + (cond + [(and as-transformer? capture-lifts?) + (expand-transformer input-s local-ctx + #:context context + #:expand-lifts? #f #:begin-form? #t #:lift-key lift-key - #:always-wrap? #t)] - [else - (expand input-s local-ctx)])) + #:always-wrap? #t + #:keep-stops? #t)] + [as-transformer? + (expand-transformer input-s local-ctx + #:context context + #:expand-lifts? #f + #:begin-form? (eq? 'top-level context) + #:lift-key lift-key + #:keep-stops? #t)] + [capture-lifts? + (expand/capture-lifts input-s local-ctx + #:begin-form? #t + #:lift-key lift-key + #:always-wrap? #t)] + [else + (expand input-s local-ctx)]))) (log-expand local-ctx 'local-post output-s) diff --git a/racket/src/expander/expand/log.rkt b/racket/src/expander/expand/log.rkt index 8201f47c9e..679fdfb1fe 100644 --- a/racket/src/expander/expand/log.rkt +++ b/racket/src/expander/expand/log.rkt @@ -44,6 +44,25 @@ [(null? args) #f] [else (apply list* args)]))) +;; Expansion logging is interpreted by the macro stepper: see +;; +;; (lib macro-debugger/model/deriv-{tokens,parser}) +;; +;; In particular, deriv-tokens.rkt describes the payloads carried by each of the +;; events listed below, and deriv-parser.rkt describes the grammar of events and +;; how it corresponds to the procedures in the expander implementation. + +;; Here are a few non-obvious considerations for the logging design: +;; +;; - 'prim-X events should occur before error checking (including define-match) +;; - payloads should contain no artificial syntax objects (that is, they should +;; only contain syntax objects from the input or that will be the basis for +;; results (possibly adjusted by scopes, etc)) +;; - arming and disarming should be reported separately from rewrites, so that +;; the macro stepper can track the identity of terms (it's complicated---some +;; adjustments can be collapsed, as long as the intermediate syntax objects +;; are not externally visible) + (define key->arity ;; event-symbol => (U Nat 'any) #hash(;; basic empty tokens @@ -56,34 +75,39 @@ (exit-bind . 0) (exit-local-bind . 0) (prepare-env . 0) + (enter-begin-for-syntax . 0) + (exit-begin-for-syntax . 0) ;; basic tokens (visit . 1) (resolve . 1) - (enter-macro . 1) + (enter-macro . 2) (macro-pre-x . 1) (macro-post-x . 2) - (exit-macro . 1) + (exit-macro . 2) (enter-prim . 1) (exit-prim . 1) (return . 1) + (stop/return . 1) + (exit-prim/return . 1) + (enter-block . 1) - (block->list . 1) - (block->letrec . 1) + (block->list . 0) + (block->letrec . 3) + (finish-block . 1) (splice . 1) (enter-list . 1) (exit-list . 1) - (enter-check . 1) - (exit-check . 1) (module-body . 1) (lift-loop . 1) (letlift-loop . 1) (module-lift-loop . 1) (module-lift-end-loop . 1) - (lift-expr . 2) - (lift-statement . 1) + (lift-expr . 3) + (lift-end-decl . 3) (lift-require . 3) (lift-provide . 1) + (lift-module . 2) (enter-local . 1) (local-pre . 1) (local-post . 1) @@ -92,44 +116,52 @@ (opaque-expr . 1) (variable . 2) (tag . 1) + (tag2 . 2) + (tag/context . 1) (rename-one . 1) (rename-list . 1) - (track-origin . 2) + (track-syntax . 3) (local-value . 1) (local-value-result . 1) + (rename-transformer . 1) + (module-end-lifts . 1) + (module-pass1-lifts . 3) + (module-pass2-lifts . 3) + (module-pass1-case . 1) + (exit-case . 1) ;; renames tokens ** (lambda-renames . 2) - (let-renames . any) ;; renames consed by expander... sometimes - (letrec-syntaxes-renames . any) ;; renames consed by expander... sometimes + (letX-renames . 5) (block-renames . 2) ;; prim tokens - (prim-stop . 0) - (prim-module . 0) - (prim-module-begin . 0) - (prim-define-syntaxes . 0) - (prim-define-values . 0) - (prim-if . 0) - (prim-with-continuation-mark . 0) - (prim-begin . 0) - (prim-begin0 . 0) - (prim-#%app . 0) - (prim-lambda . 0) - (prim-case-lambda . 0) - (prim-let-values . 0) - (prim-letrec-values . 0) - (prim-letrec-syntaxes+values . 0) - (prim-#%datum . 0) - (prim-#%top . 0) - (prim-quote . 0) - (prim-quote-syntax . 0) - (prim-require . 0) - (prim-provide . 0) - (prim-set! . 0) - (prim-#%expression . 0) - (prim-#%variable-reference . 0) - (prim-#%stratified . 0) - (prim-begin-for-syntax . 0) - (prim-submodule . 0) - (prim-submodule* . 0))) + (prim-stop . 1) + (prim-module . 1) + (prim-module-begin . 1) + (prim-define-syntaxes . 1) + (prim-define-values . 1) + (prim-if . 1) + (prim-with-continuation-mark . 1) + (prim-begin . 1) + (prim-begin0 . 1) + (prim-#%app . 1) + (prim-lambda . 1) + (prim-case-lambda . 1) + (prim-let-values . 1) + (prim-letrec-values . 1) + (prim-letrec-syntaxes+values . 1) + (prim-#%datum . 1) + (prim-#%top . 1) + (prim-quote . 1) + (prim-quote-syntax . 1) + (prim-require . 1) + (prim-provide . 1) + (prim-set! . 1) + (prim-#%expression . 1) + (prim-#%variable-reference . 1) + (prim-#%stratified . 1) + (prim-begin-for-syntax . 1) + (prim-declare . 1) + (prim-submodule . 1) + (prim-submodule* . 1))) diff --git a/racket/src/expander/expand/main.rkt b/racket/src/expander/expand/main.rkt index 32a76bf299..076dafe3e2 100644 --- a/racket/src/expander/expand/main.rkt +++ b/racket/src/expander/expand/main.rkt @@ -67,13 +67,12 @@ ;; Main expander dispatch (define (expand s ctx - ;; Aplying a rename transformer substitutes + ;; Applying a rename transformer substitutes ;; an id without changing `s` #:alternate-id [alternate-id #f] - #:skip-log? [skip-log? #f] ;; For expanding an implicit implemented by a rename transformer: #:fail-non-transformer [fail-non-transformer #f]) - (log-expand* ctx #:unless skip-log? [(if (expand-context-only-immediate? ctx) 'enter-check 'visit) s]) + (log-expand ctx 'visit s) (cond [(syntax-identifier? s) (expand-identifier s ctx alternate-id)] @@ -101,7 +100,7 @@ (define binding (resolve+shift id (expand-context-phase ctx) #:ambiguous-value 'ambiguous #:immediate? #t)) - (log-expand* ctx #:unless (expand-context-only-immediate? ctx) ['resolve id]) + (log-expand ctx 'resolve id) (cond [(eq? binding 'ambiguous) (raise-ambiguous-error id ctx)] @@ -125,7 +124,7 @@ (define binding (resolve+shift id (expand-context-phase ctx) #:ambiguous-value 'ambiguous #:immediate? #t)) - (log-expand* ctx #:unless (expand-context-only-immediate? ctx) ['resolve id]) + (log-expand ctx 'resolve id) (cond [(eq? binding 'ambiguous) (when fail-non-transformer (fail-non-transformer)) @@ -157,17 +156,17 @@ (define (expand-implicit sym s ctx trigger-id) (cond [(expand-context-only-immediate? ctx) - (log-expand* ctx ['exit-check s]) + (log-expand ctx 'stop/return s) s] [else (define disarmed-s (syntax-disarm s)) (define id (datum->syntax disarmed-s sym)) (guard-stop id ctx s - (log-expand* ctx ['resolve id]) (define b (resolve+shift id (expand-context-phase ctx) #:ambiguous-value 'ambiguous #:immediate? #t)) + (log-expand ctx 'resolve id) (cond [(eq? b 'ambiguous) (raise-ambiguous-error id ctx)] @@ -205,7 +204,9 @@ (if (and (expand-context-to-parsed? ctx) (free-id-set-empty? (expand-context-stops ctx))) (parsed-id tl-id tl-b #f) - tl-id)] + (begin + (log-expand* ctx ['variable tl-id] ['return tl-id]) + tl-id))] [else (raise-syntax-implicit-error s sym trigger-id ctx)])])]))])) @@ -225,11 +226,12 @@ (and (not (parsed? exp-s)) exp-s))) (cond [(expand-context-only-immediate? ctx) + (log-expand ctx 'stop/return s) s] [(parsed? exp-s) exp-s] [else (define result-s (syntax-track-origin exp-s s)) - (log-expand ctx 'opaque-expr result-s) + (log-expand ctx 'opaque-expr result-s) ;; FIXME: or exp-s? (if (and (expand-context-to-parsed? ctx) (free-id-set-empty? (expand-context-stops ctx))) (expand result-s ctx) ; fully expanded to compiled @@ -237,7 +239,7 @@ (define (make-explicit ctx sym s disarmed-s) (define new-s (syntax-rearm (datum->syntax disarmed-s (cons sym disarmed-s) s s) s)) - (log-expand ctx 'tag new-s) + (log-expand ctx 'tag2 new-s disarmed-s) new-s) ;; ---------------------------------------- @@ -269,12 +271,12 @@ (define (dispatch-core-form t s ctx) (cond [(expand-context-only-immediate? ctx) - (log-expand* ctx ['exit-check s]) + (log-expand ctx 'stop/return s) s] [(expand-context-observer ctx) (log-expand ctx 'enter-prim s) (define result-s ((core-form-expander t) s ctx)) - (log-expand* ctx ['exit-prim (extract-syntax result-s)] ['return (extract-syntax result-s)]) + (log-expand ctx 'exit-prim/return (extract-syntax result-s)) result-s] [else ;; As previous case, but as a tail call: @@ -285,7 +287,7 @@ (define (dispatch-implicit-#%top-core-form t s ctx) (log-expand ctx 'enter-prim s) (define result-s ((core-form-expander t) s ctx #t)) - (log-expand* ctx ['exit-prim result-s] ['return result-s]) + (log-expand ctx 'exit-prim/return result-s) result-s) ;; Call a macro expander, taking into account whether it works @@ -294,9 +296,8 @@ #:fail-non-transformer fail-non-transformer) (cond [(not-in-this-expand-context? t ctx) - (log-expand ctx 'enter-macro s) (define adj-s (avoid-current-expand-context (substitute-alternate-id s id) t ctx)) - (log-expand ctx 'exit-macro s) + (log-expand ctx 'tag/context adj-s) (expand adj-s ctx)] [(and (expand-context-should-not-encounter-macros? ctx) ;; It's ok to have a rename transformer whose target @@ -306,33 +307,28 @@ (raise-syntax-error #f "encountered a macro binding in form that should be fully expanded" s)] + [(rename-transformer? t) + (cond + [(expand-context-just-once? ctx) s] + [else + (define alt-id (apply-rename-transformer t id ctx)) + (log-expand ctx 'rename-transformer alt-id) + (expand s ctx + #:alternate-id alt-id + #:fail-non-transformer fail-non-transformer)])] [else - (log-expand* ctx #:when (and (expand-context-only-immediate? ctx) - (not (rename-transformer? t))) - ;; The old expander would emit 'resolve for a rename transformer - ;; as long as it's not the first one encountered in immediate mode - ['visit s] ['resolve id]) ;; Apply transformer and expand again (define-values (exp-s re-ctx) - (if (rename-transformer? t) - (values s ctx) - (apply-transformer t insp-of-t s id ctx binding))) - (log-expand* ctx #:when (and (expand-context-only-immediate? ctx) - (not (rename-transformer? t))) - ['return exp-s]) + (apply-transformer t insp-of-t s id ctx binding)) (cond - [(expand-context-just-once? ctx) exp-s] - [else (expand exp-s re-ctx - #:alternate-id (and (rename-transformer? t) (apply-rename-transformer t id ctx)) - #:skip-log? (or (expand-context-only-immediate? ctx) - (rename-transformer? t)) - #:fail-non-transformer (and (rename-transformer? t) fail-non-transformer))])])) + [(expand-context-just-once? ctx) exp-s] + [else (expand exp-s re-ctx)])])) ;; Handle the expansion of a variable to itself (define (dispatch-variable t s id ctx binding primitive? protected?) (cond [(expand-context-only-immediate? ctx) - (log-expand* ctx ['exit-check s]) + (log-expand ctx 'stop/return id) id] [else (log-expand ctx 'variable s id) @@ -366,8 +362,8 @@ (performance-region ['expand '_ 'macro] - (log-expand ctx 'enter-macro s) (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'enter-macro disarmed-s s) (define intro-scope (new-scope 'macro)) (define intro-s (flip-scope disarmed-s intro-scope)) ;; In a definition context, we need use-site scopes @@ -393,7 +389,7 @@ ;; Track expansion: (define tracked-s (syntax-track-origin post-s cleaned-s (or origin-id (if (syntax-identifier? s) s (car (syntax-e s)))))) (define rearmed-s (taint-dispatch tracked-s (lambda (t-s) (syntax-rearm t-s s)) (expand-context-phase ctx))) - (log-expand ctx 'exit-macro rearmed-s) + (log-expand ctx 'exit-macro rearmed-s post-s) (values rearmed-s (accumulate-def-ctx-scopes ctx def-ctx-scopes)))) @@ -510,8 +506,7 @@ (free-id-set-member? (expand-context-stops ctx) (expand-context-phase ctx) id)) - (log-expand* ctx #:unless (expand-context-only-immediate? ctx) - ['resolve id] ['enter-prim s] ['prim-stop] ['exit-prim s] ['return s]) + (log-expand* ctx ['resolve id] ['stop/return s]) s] [else otherwise ...])) @@ -539,8 +534,8 @@ ;; ---------------------------------------- -;; Expand `s` as a compile-time expression relative to the current -;; expansion context +;; Expand `s` and capture lifted expressions, combining expanded term +;; and lifts using `begin` or `let` wrapper (define (expand/capture-lifts s ctx #:expand-lifts? [expand-lifts? #f] #:begin-form? [begin-form? #f] diff --git a/racket/src/expander/expand/module.rkt b/racket/src/expander/expand/module.rkt index cbd41ade14..4416f8e79a 100644 --- a/racket/src/expander/expand/module.rkt +++ b/racket/src/expander/expand/module.rkt @@ -46,7 +46,7 @@ 'module (lambda (s ctx) (unless (eq? (expand-context-context ctx) 'top-level) - (log-expand ctx 'prim-module) + (log-expand ctx 'prim-module #f) (raise-syntax-error #f "allowed only at the top level" s)) (performance-region ['expand 'module] @@ -55,13 +55,13 @@ (add-core-form! 'module* (lambda (s ctx) - (log-expand ctx 'prim-module) + (log-expand ctx 'prim-module #f) (raise-syntax-error #f "illegal use (not in a module top-level)" s))) (add-core-form! '#%module-begin (lambda (s ctx) - (log-expand ctx 'prim-module-begin) + (log-expand ctx 'prim-module-begin #f) (unless (eq? (expand-context-context ctx) 'module-begin) (raise-syntax-error #f "not in a module-definition context" s)) (unless (expand-context-module-begin-k ctx) @@ -77,7 +77,7 @@ (add-core-form! '#%declare (lambda (s ctx) - (log-expand ctx 'prim-declare) + (log-expand ctx 'prim-declare #f) ;; The `#%module-begin` expander handles `#%declare` (raise-syntax-error #f "not allowed outside of a module body" s))) @@ -91,8 +91,8 @@ #:mpis-for-enclosing-reset [mpis-for-enclosing-reset #f] ;; For cross-linklet inlining among submodules compiled together: #:modules-being-compiled [modules-being-compiled (make-hasheq)]) - (log-expand init-ctx 'prim-module) (define disarmed-s (syntax-disarm s)) + (log-expand init-ctx 'prim-module disarmed-s) (define-match m disarmed-s '(module id:module-name initial-require body ...)) (define rebuild-s (keep-as-needed init-ctx s #:keep-for-parsed? #t #:keep-for-error? #t)) @@ -211,6 +211,7 @@ keep-enclosing-scope-at-phase)])) (log-expand init-ctx 'prepare-env) (initial-require! #:bind? #t) + (log-expand init-ctx 'rename-one bodys) ;; To detect whether the body is expanded multiple times: (define again? #f) @@ -260,11 +261,11 @@ ;; that wasn't already introduced into the mdoule's inside scope, ;; add it to all the given body forms (define added-s (add-scope mb-s inside-scope)) - (log-expand ctx 'rename-one added-s) (define disarmed-mb-s (syntax-disarm added-s)) (define-match mb-m disarmed-mb-s '(#%module-begin body ...)) (define bodys (mb-m 'body)) + (log-expand ctx 'rename-one added-s) (define rebuild-mb-s (keep-as-needed ctx mb-s)) @@ -364,14 +365,16 @@ #:shared-module-ends module-ends #:end-as-expressions? #t)])) - (finish-expanding-body-expressons partially-expanded-bodys - #:phase phase - #:ctx body-ctx - #:self self - #:declared-submodule-names declared-submodule-names - #:compiled-submodules compiled-submodules - #:modules-being-compiled modules-being-compiled - #:mpis-to-reset mpis-to-reset))) + (finish-expanding-body-expressions partially-expanded-bodys + #:phase phase + #:ctx body-ctx + #:self self + #:declared-submodule-names declared-submodule-names + #:compiled-submodules compiled-submodules + #:modules-being-compiled modules-being-compiled + #:mpis-to-reset mpis-to-reset))) + + (log-expand ctx 'next-group) ;; Check that any tentatively allowed reference at phase >= 1 is ok (check-defined-by-now need-eventually-defined self ctx requires+provides) @@ -402,7 +405,7 @@ ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;; Pass 4: expand `module*` submodules - (log-expand ctx 'next) + (log-expand ctx 'next-group) ;; Create a new namespace to avoid retaining the instance that ;; was needed to expand this module body: @@ -501,7 +504,8 @@ #:def-ctx-scopes mb-def-ctx-scopes #:phase phase #:s s)) - + (log-expand ctx 'next) + ;; Expand the body (define expanded-mb (performance-region ['expand 'module-begin] @@ -588,7 +592,6 @@ [(= 1 (length bodys)) ;; Maybe it's already a `#%module-begin` form, or maybe it ;; will expand to one - (log-expand ctx 'rename-one (car bodys)) (cond [(eq? '#%module-begin (core-form-sym (syntax-disarm (car bodys)) phase)) ;; Done @@ -596,10 +599,12 @@ [else ;; A single body form might be a macro that expands to ;; the primitive `#%module-begin` form: + (define named-body-s (add-enclosing-name-property (car bodys) module-name-sym)) + (log-expand ctx 'track-syntax 'property named-body-s (car bodys)) (define partly-expanded-body (performance-region ['expand 'module-begin] - (expand (add-enclosing-name-property (car bodys) module-name-sym) + (expand named-body-s (make-mb-ctx)))) (cond [(eq? '#%module-begin (core-form-sym (syntax-disarm partly-expanded-body) phase)) @@ -614,7 +619,9 @@ ;; Multiple body forms definitely need a `#%module-begin` wrapper (add-module-begin bodys s scopes-s phase module-name-sym (make-mb-ctx))])) - (add-enclosing-name-property mb module-name-sym)) + (define named-mb (add-enclosing-name-property mb module-name-sym)) + (log-expand ctx 'track-syntax 'property named-mb mb) + named-mb) ;; Add `#%module-begin`, because it's needed (define (add-module-begin bodys s scopes-s phase module-name-sym mb-ctx @@ -626,11 +633,11 @@ (raise-syntax-error #f "no #%module-begin binding in the module's language" s)) (define mb (datum->syntax disarmed-scopes-s `(,mb-id ,@bodys) s s)) (log-expand mb-ctx 'tag mb) - (when log-rename-one? - (log-expand mb-ctx 'rename-one mb)) + (define named-mb (add-enclosing-name-property mb module-name-sym)) + (log-expand mb-ctx 'track-syntax 'property named-mb mb) (define partly-expanded-mb (performance-region ['expand 'module-begin] - (expand (add-enclosing-name-property mb module-name-sym) + (expand named-mb mb-ctx))) (unless (eq? '#%module-begin (core-form-sym (syntax-disarm partly-expanded-mb) phase)) (raise-syntax-error #f "expansion of #%module-begin is not a #%plain-module-begin form" s @@ -708,7 +715,6 @@ [(null? bodys) (cond [(and tail? (not (zero? phase))) - (log-expand partial-body-ctx 'module-lift-end-loop '()) null] [tail? ;; Were at the very end of the module; if there are any lifted-to-end @@ -717,10 +723,12 @@ (append (get-and-clear-end-lifts! (expand-context-to-module-lifts partial-body-ctx)) (get-and-clear-provide-lifts! (expand-context-to-module-lifts partial-body-ctx)))) - (log-expand partial-body-ctx 'module-lift-end-loop bodys) (cond [(null? bodys) null] - [else (loop #t (add-post-expansion-scope bodys partial-body-ctx))])] + [else + (define added-bodys (add-post-expansion-scope bodys partial-body-ctx)) + (log-expand partial-body-ctx 'module-end-lifts added-bodys) + (loop #t added-bodys)])] [else null])] [else (define rest-bodys (cdr bodys)) @@ -731,46 +739,53 @@ (expand (car bodys) partial-body-ctx))) (define disarmed-exp-body (syntax-disarm exp-body)) (define lifted-defns (get-and-clear-lifts! (expand-context-lifts partial-body-ctx))) - (when (pair? lifted-defns) - (log-lifted-defns partial-body-ctx lifted-defns exp-body rest-bodys)) - (log-expand partial-body-ctx 'rename-one exp-body) + (define lifted-reqs (get-and-clear-require-lifts! (expand-context-require-lifts partial-body-ctx))) + (define lifted-mods (get-and-clear-module-lifts! (expand-context-module-lifts partial-body-ctx))) + (define added-lifted-mods (add-post-expansion-scope lifted-mods partial-body-ctx)) + (unless (and (null? lifted-defns) (null? lifted-reqs) (null? lifted-mods)) + (log-expand partial-body-ctx 'module-pass1-lifts + (lifted-defns-extract-syntax lifted-defns) + lifted-reqs + added-lifted-mods)) + (define exp-lifted-mods (loop #f added-lifted-mods)) + (log-expand partial-body-ctx 'module-pass1-case exp-body) (append/tail-on-null ;; Save any requires lifted during partial expansion - (get-and-clear-require-lifts! (expand-context-require-lifts partial-body-ctx)) + lifted-reqs ;; Ditto for expressions lifted-defns ;; Ditto for modules, which need to be processed - (loop #f (add-post-expansion-scope - (get-and-clear-module-lifts! (expand-context-module-lifts partial-body-ctx)) - partial-body-ctx)) + exp-lifted-mods ;; Dispatch on form revealed by partial expansion (case (core-form-sym disarmed-exp-body phase) [(begin) + (log-expand partial-body-ctx 'prim-begin disarmed-exp-body) (define-match m disarmed-exp-body '(begin e ...)) (define (track e) (syntax-track-origin e exp-body)) (define spliced-bodys (append (map track (m 'e)) rest-bodys)) (log-expand partial-body-ctx 'splice spliced-bodys) (loop tail? spliced-bodys)] [(begin-for-syntax) - (log-expand* partial-body-ctx ['enter-prim exp-body] ['prim-begin-for-syntax] ['prepare-env]) + (log-expand partial-body-ctx 'prim-begin-for-syntax disarmed-exp-body) + (define-match m disarmed-exp-body '(begin-for-syntax e ...)) + (log-expand partial-body-ctx 'prepare-env) (define ct-m-ns (namespace->namespace-at-phase m-ns (add1 phase))) (prepare-next-phase-namespace partial-body-ctx) (log-expand partial-body-ctx 'phase-up) - (define-match m disarmed-exp-body '(begin-for-syntax e ...)) (define nested-bodys (pass-1-and-2-loop (m 'e) (add1 phase) #f)) (log-expand partial-body-ctx 'next-group) (namespace-run-available-modules! m-ns (add1 phase)) ; to support running `begin-for-syntax` (eval-nested-bodys nested-bodys (add1 phase) ct-m-ns self partial-body-ctx) (namespace-visit-available-modules! m-ns phase) ; since we're shifting back a phase - (log-expand partial-body-ctx 'exit-prim + (log-expand partial-body-ctx 'exit-case (let ([s-nested-bodys (for/list ([nested-body (in-list nested-bodys)]) (extract-syntax nested-body))]) - (datum->syntax #f (cons (m 'begin-for-syntax) s-nested-bodys) exp-body))) + (cons (m 'begin-for-syntax) s-nested-bodys))) (cons (semi-parsed-begin-for-syntax exp-body nested-bodys) (loop tail? rest-bodys))] [(define-values) - (log-expand* partial-body-ctx ['enter-prim exp-body] ['prim-define-values]) + (log-expand partial-body-ctx 'prim-define-values disarmed-exp-body) (define-match m disarmed-exp-body '(define-values (id ...) rhs)) (define ids (remove-use-site-scopes (m 'id) partial-body-ctx)) (check-no-duplicate-ids ids phase exp-body) @@ -784,16 +799,16 @@ ;; In case `local-expand` created a binding with `sym` to a transformer (namespace-unset-transformer! m-ns phase sym)) (add-defined-syms! requires+provides syms phase) - (log-expand partial-body-ctx 'exit-prim - (datum->syntax #f `(,(m 'define-values) ,ids ,(m 'rhs)) exp-body)) + (log-expand partial-body-ctx 'exit-case `(,(m 'define-values) ,ids ,(m 'rhs))) (cons (semi-parsed-define-values exp-body syms ids (m 'rhs)) (loop tail? rest-bodys))] [(define-syntaxes) - (log-expand* partial-body-ctx ['enter-prim exp-body] ['prim-define-syntaxes] ['prepare-env]) + (log-expand partial-body-ctx 'prim-define-syntaxes disarmed-exp-body) + (define-match m disarmed-exp-body '(define-syntaxes (id ...) rhs)) + (log-expand partial-body-ctx 'prepare-env) (prepare-next-phase-namespace partial-body-ctx) (log-expand partial-body-ctx 'phase-up) - (define-match m disarmed-exp-body '(define-syntaxes (id ...) rhs)) (define ids (remove-use-site-scopes (m 'id) partial-body-ctx)) (check-no-duplicate-ids ids phase exp-body) (check-ids-unbound ids phase requires+provides #:in exp-body) @@ -821,7 +836,7 @@ [id (in-list ids)]) (maybe-install-free=id-in-context! val id phase partial-body-ctx) (namespace-set-transformer! m-ns phase sym val)) - (log-expand partial-body-ctx 'exit-prim (datum->syntax #f `(,(m 'define-syntaxes) ,ids ,exp-rhs))) + (log-expand partial-body-ctx 'exit-case `(,(m 'define-syntaxes) ,ids ,exp-rhs)) (define parsed-body (parsed-define-syntaxes (keep-properties-only exp-body) ids syms parsed-rhs)) (cons (if (expand-context-to-parsed? partial-body-ctx) parsed-body @@ -832,7 +847,7 @@ parsed-body)) (loop tail? rest-bodys))] [(#%require) - (log-expand* partial-body-ctx ['enter-prim exp-body] ['prim-require]) + (log-expand partial-body-ctx 'prim-require disarmed-exp-body) (define ready-body (remove-use-site-scopes disarmed-exp-body partial-body-ctx)) (define-match m ready-body '(#%require req ...)) (parse-and-perform-requires! (m 'req) exp-body #:self self @@ -840,15 +855,17 @@ requires+provides #:declared-submodule-names declared-submodule-names #:who 'module) - (log-expand partial-body-ctx 'exit-prim ready-body) + (log-expand partial-body-ctx 'exit-case ready-body) (cons exp-body (loop tail? rest-bodys))] [(#%provide) + (log-expand partial-body-ctx 'prim-stop #f) ;; save for last pass (cons exp-body (loop tail? rest-bodys))] [(module) ;; Submodule to parse immediately + (log-expand partial-body-ctx 'prim-submodule #f) (define ready-body (remove-use-site-scopes exp-body partial-body-ctx)) (define submod (expand-submodule ready-body self partial-body-ctx @@ -861,11 +878,11 @@ (loop tail? rest-bodys))] [(module*) ;; Submodule to save for after this module - (log-expand* partial-body-ctx ['enter-prim exp-body] ['prim-submodule*] - ['exit-prim exp-body]) + (log-expand partial-body-ctx 'prim-stop #f) (cons exp-body (loop tail? rest-bodys))] [(#%declare) + (log-expand partial-body-ctx 'prim-declare disarmed-exp-body) (define-match m disarmed-exp-body '(#%declare kw ...)) (for ([kw (in-list (m 'kw))]) (unless (keyword? (syntax-e kw)) @@ -882,6 +899,7 @@ (loop tail? rest-bodys))] [else ;; save expression for next pass + (log-expand partial-body-ctx 'prim-stop #f) (cons exp-body (loop tail? rest-bodys))]))]))) @@ -917,20 +935,19 @@ ;; ---------------------------------------- ;; Pass 2 of `module` expansion, which expands all expressions -(define (finish-expanding-body-expressons partially-expanded-bodys - #:phase phase - #:ctx body-ctx - #:self self - #:declared-submodule-names declared-submodule-names - #:compiled-submodules compiled-submodules - #:modules-being-compiled modules-being-compiled - #:mpis-to-reset mpis-to-reset) +(define (finish-expanding-body-expressions partially-expanded-bodys + #:phase phase + #:ctx body-ctx + #:self self + #:declared-submodule-names declared-submodule-names + #:compiled-submodules compiled-submodules + #:modules-being-compiled modules-being-compiled + #:mpis-to-reset mpis-to-reset) (let loop ([tail? #t] [bodys partially-expanded-bodys]) (cond [(null? bodys) (cond [(and tail? (not (zero? phase))) - (log-expand body-ctx 'module-lift-end-loop '()) null] [tail? ;; We're at the very end of the module, again, so check for lifted-to-end @@ -941,9 +958,9 @@ (get-and-clear-provide-lifts! (expand-context-to-module-lifts body-ctx)))) (cond [(null? bodys) - (log-expand body-ctx 'module-lift-end-loop '()) null] [else + (log-expand body-ctx 'module-end-lifts bodys) (loop #t (add-post-expansion-scope bodys body-ctx))])] [else null])] [else @@ -965,11 +982,11 @@ (define-match m (syntax-disarm s) #:unless (expand-context-to-parsed? rhs-ctx) '(define-values _ _)) (define rebuild-s (keep-as-needed rhs-ctx s #:keep-for-parsed? #t)) - (log-defn-enter body-ctx body) + (log-expand* body-ctx ['visit #f] ['enter-prim #f] ['prim-define-values #f]) (define exp-rhs (performance-region ['expand 'form-in-module/2] (expand (semi-parsed-define-values-rhs body) rhs-ctx))) - (log-defn-exit body-ctx body exp-rhs) + (log-expand* body-ctx ['exit-prim/return #f]) (define comp-form (parsed-define-values rebuild-s ids syms (if (expand-context-to-parsed? rhs-ctx) @@ -1008,9 +1025,10 @@ (define lifted-modules (get-and-clear-module-lifts! (expand-context-module-lifts body-ctx))) (define no-lifts? (and (null? lifted-defns) (null? lifted-modules) (null? lifted-requires))) (unless no-lifts? - (log-expand body-ctx 'module-lift-loop (append lifted-requires - (lifted-defns-extract-syntax lifted-defns) - (add-post-expansion-scope lifted-modules body-ctx)))) + (log-expand body-ctx 'module-pass2-lifts + lifted-requires + (add-post-expansion-scope lifted-modules body-ctx) + (lifted-defns-extract-syntax lifted-defns))) (define exp-lifted-modules ;; If there were any module lifts, the `module` forms need to ;; be expanded @@ -1022,14 +1040,15 @@ #:declared-submodule-names declared-submodule-names #:compiled-submodules compiled-submodules #:modules-being-compiled modules-being-compiled)) + (unless no-lifts? (log-expand body-ctx 'next-group)) (define exp-lifted-defns ;; If there were any lifts, the right-hand sides need to be expanded (loop #f lifted-defns)) - (unless no-lifts? (log-expand body-ctx 'next)) + (unless no-lifts? (log-expand body-ctx 'next-group)) (append lifted-requires - exp-lifted-defns exp-lifted-modules + exp-lifted-defns (cons exp-body (loop tail? rest-bodys)))]))) @@ -1075,10 +1094,13 @@ [(null? bodys) null] [(or (parsed? (car bodys)) (expanded+parsed? (car bodys))) + (log-expand ctx 'next) (cons (car bodys) (loop (cdr bodys) phase))] [(semi-parsed-begin-for-syntax? (car bodys)) + (log-expand ctx 'enter-begin-for-syntax) (define nested-bodys (loop (semi-parsed-begin-for-syntax-body (car bodys)) (add1 phase))) + (log-expand ctx 'exit-begin-for-syntax) ;; Stil semi-parsed; finished in pass 4 (cons (struct-copy semi-parsed-begin-for-syntax (car bodys) [body nested-bodys]) @@ -1087,7 +1109,7 @@ (define disarmed-body (syntax-disarm (car bodys))) (case (core-form-sym disarmed-body phase) [(#%provide) - (log-expand* ctx ['enter-prim (car bodys)] ['prim-provide]) + (log-expand* ctx ['enter-prim (car bodys)] ['prim-provide disarmed-body]) (define-match m disarmed-body '(#%provide spec ...)) (define-values (track-stxes specs) (parse-and-expand-provides! (m 'spec) (car bodys) @@ -1112,6 +1134,7 @@ (cons new-s (loop (cdr bodys) phase))])] [else + (log-expand ctx 'next) (cons (car bodys) (loop (cdr bodys) phase))])])))) @@ -1203,10 +1226,12 @@ (cond [(semi-parsed-begin-for-syntax? body) (define body-s (semi-parsed-begin-for-syntax-s body)) + (log-expand submod-ctx 'enter-begin-for-syntax) (define-match m (syntax-disarm body-s) '(begin-for-syntax _ ...)) (define rebuild-body-s (keep-as-needed submod-ctx body-s)) (define nested-bodys (loop (semi-parsed-begin-for-syntax-body body) (add1 phase))) (define parsed-bfs (parsed-begin-for-syntax rebuild-body-s (parsed-only nested-bodys))) + (log-expand submod-ctx 'exit-begin-for-syntax) (cons (if (expand-context-to-parsed? submod-ctx) parsed-bfs @@ -1217,6 +1242,7 @@ [(or (parsed? body) (expanded+parsed? body)) ;; We can skip any other parsed form + (log-expand submod-ctx 'next) (cons body (loop rest-bodys phase))] [else @@ -1260,6 +1286,7 @@ (loop rest-bodys phase))] [else ;; We can skip any other unparsed form + (log-expand submod-ctx 'next) (cons body (loop rest-bodys phase))])])]))) @@ -1322,8 +1349,7 @@ #:declared-submodule-names declared-submodule-names #:compiled-submodules compiled-submodules #:modules-being-compiled modules-being-compiled) - (unless is-star? - (log-expand* ctx ['enter-prim s] [(if is-star? 'prim-submodule* 'prim-submodule)])) + (log-expand* ctx ['enter-prim s] [(if is-star? 'prim-submodule* 'prim-submodule) #f]) ;; Register name and check for duplicates (define-match m s '(module name . _)) @@ -1373,9 +1399,6 @@ (eval-module compiled-submodule #:with-submodules? #f)) - (unless is-star? - (log-expand ctx 'exit-prim (extract-syntax submod))) - ;; Return the expanded submodule (cond [(not is-star?) @@ -1395,6 +1418,7 @@ #:compiled-submodules compiled-submodules #:modules-being-compiled modules-being-compiled) (for/list ([body (in-list bodys)]) + (log-expand ctx 'next) (case (core-form-sym (syntax-disarm body) phase) [(module) (expand-submodule body self ctx @@ -1427,63 +1451,3 @@ (define (lifted-defns-extract-syntax lifted-defns) (for/list ([lifted-defn (in-list lifted-defns)]) (defn-extract-syntax lifted-defn))) - -(define (log-lifted-defns partial-body-ctx lifted-defns exp-body rest-bodys) - (log-expand... - partial-body-ctx - (lambda (obs) - (define s-lifted-defns (lifted-defns-extract-syntax lifted-defns)) - (...log-expand obs ['rename-list (cons exp-body rest-bodys)] ['module-lift-loop s-lifted-defns]) - ;; The old expander retried expanding the lifted definitions. - ;; We know that they immediately stop, so we don't do that here, - ;; but we simulate the observer events. - (for ([s-lifted-defn (in-list s-lifted-defns)]) - (define-match m s-lifted-defn '(define-values _ ...)) - (...log-expand obs - ['next] - ['visit s-lifted-defn] - ['resolve (m 'define-values)] - ['enter-prim s-lifted-defn] - ['prim-stop] - ['exit-prim s-lifted-defn] - ['return s-lifted-defn] - ['rename-one s-lifted-defn] - ['enter-prim s-lifted-defn] - ['prim-define-values] - ['exit-prim s-lifted-defn])) - ;; A 'next, etc., to simulate retrying the expression that - ;; generated the lifts --- which we know must be a stop form, - ;; but we need to simulate the trip back around the loop: - (define-match m exp-body '(form-id . _)) - (...log-expand obs - ['next] - ['visit exp-body] - ['resolve (m 'form-id)] - ['enter-prim exp-body] - ['prim-stop] - ['exit-prim exp-body] - ['return exp-body])))) - -(define (log-defn-enter ctx defn) - (log-expand... - ctx - (lambda (obs) - (define s-defn (defn-extract-syntax defn)) - (define-match m s-defn '(define-values _ ...)) - (...log-expand obs - ['visit s-defn] - ['resolve (m 'define-values)] - ['enter-prim s-defn] - ['prim-define-values])))) - -(define (log-defn-exit ctx defn exp-rhs) - (log-expand... - ctx - (lambda (obs) - (define s-defn - (datum->syntax #f `(define-values ,(semi-parsed-define-values-ids defn) - ,exp-rhs) - (semi-parsed-define-values-s defn))) - (...log-expand obs - ['exit-prim s-defn] - ['return s-defn])))) diff --git a/racket/src/expander/expand/syntax-local.rkt b/racket/src/expander/expand/syntax-local.rkt index c767c2a59d..b6e0f955f9 100644 --- a/racket/src/expander/expand/syntax-local.rkt +++ b/racket/src/expander/expand/syntax-local.rkt @@ -57,6 +57,8 @@ syntax-local-module-required-identifiers syntax-local-module-exports syntax-local-submodules + + syntax-local-expand-observer syntax-local-get-shadower) @@ -92,12 +94,16 @@ (define/who (syntax-local-introduce s) (check who syntax? s) (define ctx (get-current-expand-context 'syntax-local-introduce)) - (flip-introduction-and-use-scopes s ctx)) + (define new-s (flip-introduction-and-use-scopes s ctx)) + (log-expand ctx 'track-syntax 'syntax-local-introduce new-s s) + new-s) (define/who (syntax-local-identifier-as-binding id) (check who identifier? id) (define ctx (get-current-expand-context 'syntax-local-identifier-as-binding)) - (remove-use-site-scopes id ctx)) + (define new-id (remove-use-site-scopes id ctx)) + (log-expand ctx 'track-syntax 'syntax-local-identifier-as-binding new-id id) + new-id) (define (syntax-local-phase-level) (define ctx (get-current-expand-context #:fail-ok? #t)) @@ -124,11 +130,15 @@ (define (do-make-syntax-introducer sc) (lambda (s [mode 'flip]) (check 'syntax-introducer syntax? s) - (case mode - [(add) (add-scope s sc)] - [(remove) (remove-scope s sc)] - [(flip) (flip-scope s sc)] - [else (raise-argument-error 'syntax-introducer "(or/c 'add 'remove 'flip)" mode)]))) + (define new-s + (case mode + [(add) (add-scope s sc)] + [(remove) (remove-scope s sc)] + [(flip) (flip-scope s sc)] + [else (raise-argument-error 'syntax-introducer "(or/c 'add 'remove 'flip)" mode)])) + (define ctx (get-current-expand-context #:fail-ok? #t)) + (when ctx (log-expand ctx 'track-syntax mode new-s s)) + new-s)) (define/who (make-syntax-delta-introducer ext-s base-s [phase (syntax-local-phase-level)]) (check who syntax? ext-s) @@ -145,12 +155,16 @@ (define maybe-taint (if (syntax-clean? ext-s) values syntax-taint)) (define shifts (syntax-mpi-shifts ext-s)) (lambda (s [mode 'add]) - (maybe-taint - (case mode - [(add) (syntax-add-shifts (add-scopes s delta-scs) shifts #:non-source? #t)] - [(remove) (remove-scopes s delta-scs)] - [(flip) (syntax-add-shifts (flip-scopes s delta-scs) shifts #:non-source? #t)] - [else (raise-argument-error 'syntax-introducer "(or/c 'add 'remove 'flip)" mode)])))) + (define new-s + (maybe-taint + (case mode + [(add) (syntax-add-shifts (add-scopes s delta-scs) shifts #:non-source? #t)] + [(remove) (remove-scopes s delta-scs)] + [(flip) (syntax-add-shifts (flip-scopes s delta-scs) shifts #:non-source? #t)] + [else (raise-argument-error 'syntax-introducer "(or/c 'add 'remove 'flip)" mode)]))) + (define ctx (get-current-expand-context #:fail-ok? #t)) + (when ctx (log-expand ctx 'track-syntax mode new-s s)) + new-s)) (define/who (syntax-local-make-delta-introducer id-stx) (check who identifier? id-stx) @@ -223,12 +237,13 @@ (set-box! counter (add1 (unbox counter))) (define name (string->unreadable-symbol (format "lifted/~a" (unbox counter)))) (add-scope (datum->syntax #f name) (new-scope 'macro)))) - (log-expand ctx 'lift-expr ids s) + (define added-s (flip-introduction-scopes s ctx)) + (log-expand ctx 'lift-expr ids s added-s) (map (lambda (id) (flip-introduction-scopes id ctx)) ;; returns converted ids: (add-lifted! lifts ids - (flip-introduction-scopes s ctx) + added-s (expand-context-phase ctx)))) (define/who (syntax-local-lift-expression s) @@ -254,15 +269,17 @@ (raise-arguments-error who "not currently transforming within a module declaration or top level" "form to lift" s)) - (add-lifted-module! lifts (flip-introduction-scopes s ctx) phase)] + (define added-s (flip-introduction-scopes s ctx)) + (add-lifted-module! lifts added-s phase) + (log-expand ctx 'lift-module s added-s)] [else (raise-arguments-error who "not a module form" - "given form" s)]) - (log-expand ctx 'lift-statement s)) + "given form" s)])) ;; ---------------------------------------- (define (do-local-lift-to-module who s + #:log-tag [log-tag #f] #:no-target-msg no-target-msg #:intro? [intro? #t] #:more-checks [more-checks void] @@ -285,6 +302,9 @@ (define shift-s (for/fold ([s pre-s]) ([phase (in-range phase wrt-phase -1)]) ; shift from lift-context phase (shift-wrap s (sub1 phase) lift-ctx))) (define post-s (post-wrap shift-s wrt-phase lift-ctx)) ; post-wrap at lift-context phase + (when log-tag + ;; Separate changes in scopes (s -> added-s) from wrapping (added-s -> post-s). + (log-expand ctx log-tag s added-s post-s)) (add-lifted! lift-ctx post-s wrt-phase) ; record lift for the target phase (values ctx post-s)) @@ -307,8 +327,9 @@ #:post-wrap (lambda (s phase require-lift-ctx) (wrap-form '#%require (add-scope s sc) phase)))) - (namespace-visit-available-modules! (expand-context-namespace ctx) - (expand-context-phase ctx)) + (without-expand-context + (namespace-visit-available-modules! (expand-context-namespace ctx) + (expand-context-phase ctx))) (define result-s (add-scope use-s sc)) (log-expand ctx 'lift-require added-s use-s result-s) result-s) @@ -333,6 +354,7 @@ (define-values (ctx also-s) (do-local-lift-to-module who s + #:log-tag 'lift-end-decl #:no-target-msg "not currently transforming an expression within a module declaration" #:get-lift-ctx expand-context-to-module-lifts #:get-wrt-phase (lambda (lift-ctx) 0) ; always relative to 0 @@ -345,7 +367,7 @@ #:shift-wrap (lambda (s phase to-module-lift-ctx) (wrap-form 'begin-for-syntax s phase)))) - (log-expand ctx 'lift-statement s)) + (void)) (define (wrap-form sym s phase) (datum->syntax @@ -429,6 +451,13 @@ ;; ---------------------------------------- +;; Exported via #%expobs, not #%kernel +(define/who (syntax-local-expand-observer) + (define ctx (get-current-expand-context 'syntax-local-expand-observer)) + (expand-context-observer ctx)) + +;; ---------------------------------------- + ;; Works well enough for some backward compatibility: (define/who (syntax-local-get-shadower id [only-generated? #f]) (check who identifier? id) diff --git a/racket/src/expander/expand/top.rkt b/racket/src/expander/expand/top.rkt index 9f27684e16..2d66dcdf20 100644 --- a/racket/src/expander/expand/top.rkt +++ b/racket/src/expander/expand/top.rkt @@ -22,10 +22,10 @@ (add-core-form! 'define-values (lambda (s ctx) - (log-expand ctx 'prim-define-values) + (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-define-values disarmed-s) (unless (eq? (expand-context-context ctx) 'top-level) (raise-syntax-error #f "not allowed in an expression position" s)) - (define disarmed-s (syntax-disarm s)) (define-match m s '(define-values (id ...) rhs)) (define-values (ids syms) (as-expand-time-top-level-bindings (m 'id) s ctx)) (define exp-rhs (expand (m 'rhs) (as-named-context (as-expression-context ctx) ids))) @@ -38,13 +38,13 @@ (add-core-form! 'define-syntaxes (lambda (s ctx) - (log-expand ctx 'prim-define-syntaxes) - (log-expand ctx 'prepare-env) + (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-define-syntaxes disarmed-s) (unless (eq? (expand-context-context ctx) 'top-level) (raise-syntax-error #f "not in a definition context" s)) - (define disarmed-s (syntax-disarm s)) (define-match m disarmed-s '(define-syntaxes (id ...) rhs)) (define-values (ids syms) (as-expand-time-top-level-bindings (m 'id) s ctx)) + (log-expand ctx 'prepare-env) (define exp-rhs (expand-transformer (m 'rhs) (as-named-context ctx ids))) (if (expand-context-to-parsed? ctx) (parsed-define-syntaxes s ids syms exp-rhs) @@ -55,10 +55,10 @@ (add-core-form! 'begin-for-syntax (lambda (s ctx) + (log-expand ctx 'prim-begin-for-syntax #f) (unless (eq? (expand-context-context ctx) 'top-level) (raise-syntax-error #f "not in a definition context" s)) (define-match m s '(begin-for-syntax form ...)) - (log-expand ctx 'prim-begin-for-syntax) (log-expand ctx 'prepare-env) (define trans-ctx (context->transformer-context ctx 'top-level #:keep-stops? #t)) (define lift-ctx (make-lift-context @@ -68,13 +68,13 @@ [lifts lift-ctx])) (define all-exp-forms (let loop ([forms (m 'form)]) - (log-expand ctx 'enter-list (datum->syntax #f (m 'form) s)) + (log-expand ctx 'enter-list (m 'form)) (define exp-forms (let loop ([forms forms] [accum null]) (cond [(null? forms) (define forms (reverse accum)) - (log-expand ctx 'exit-list (datum->syntax #f forms s)) + (log-expand ctx 'exit-list forms) forms] [else (log-expand ctx 'next) @@ -97,10 +97,10 @@ (add-core-form! '#%require (lambda (s ctx) - (log-expand ctx 'prim-require) + (define disarmed-s (syntax-disarm s)) + (log-expand ctx 'prim-require disarmed-s) (unless (eq? (expand-context-context ctx) 'top-level) (raise-syntax-error #f "allowed only in a module or the top level" s)) - (define disarmed-s (syntax-disarm s)) (define-match m disarmed-s '(#%require req ...)) (define sc (new-scope 'macro)) ; to hide bindings (define ns (expand-context-namespace ctx)) @@ -125,5 +125,5 @@ (add-core-form! '#%provide (lambda (s ctx) - (log-expand ctx 'prim-provide) + (log-expand ctx 'prim-provide #f) (raise-syntax-error #f "not allowed outside of a module body" s))) diff --git a/racket/src/expander/syntax/api-taint.rkt b/racket/src/expander/syntax/api-taint.rkt index d950b3bb78..9d592241d8 100644 --- a/racket/src/expander/syntax/api-taint.rkt +++ b/racket/src/expander/syntax/api-taint.rkt @@ -12,7 +12,9 @@ (only-in "../expand/syntax-local.rkt" syntax-local-phase-level) "../namespace/core.rkt" "../namespace/inspector.rkt" - "../common/contract.rkt") + "../common/contract.rkt" + (only-in "../expand/context.rkt" get-current-expand-context) + "../expand/log.rkt") ;; Provides public versions of taint-related syntax functions @@ -32,14 +34,18 @@ (inspector? maybe-insp)) (raise-argument-error who "(or/c inspector? #f)" maybe-insp)) (define insp (inspector-for-taint maybe-insp)) - (cond - [use-mode? - (taint-dispatch - s - (lambda (s) (raw:syntax-arm s insp)) - (syntax-local-phase-level))] - [else - (raw:syntax-arm s insp)])) + (define armed-s + (cond + [use-mode? + (taint-dispatch + s + (lambda (s) (raw:syntax-arm s insp)) + (syntax-local-phase-level))] + [else + (raw:syntax-arm s insp)])) + (define ctx (get-current-expand-context #:fail-ok? #t)) + (when ctx (log-expand ctx 'track-syntax 'arm armed-s s)) + armed-s) (define/who (syntax-disarm s maybe-insp) (check who syntax? s) @@ -47,18 +53,25 @@ (inspector? maybe-insp)) (raise-argument-error who "(or/c inspector? #f)" maybe-insp)) (define insp (inspector-for-taint maybe-insp)) - (raw:syntax-disarm s insp)) - + (define disarmed-s (raw:syntax-disarm s insp)) + (define ctx (get-current-expand-context #:fail-ok? #t)) + (when ctx (log-expand ctx 'track-syntax 'disarm disarmed-s s)) + disarmed-s) + (define/who (syntax-rearm s from-s [use-mode? #f]) (check who syntax? s) (check who syntax? from-s) - (cond - [use-mode? (taint-dispatch - s - (lambda (s) (raw:syntax-rearm s from-s)) - (syntax-local-phase-level))] - [else - (raw:syntax-rearm s from-s)])) + (define rearmed-s + (cond + [use-mode? (taint-dispatch + s + (lambda (s) (raw:syntax-rearm s from-s)) + (syntax-local-phase-level))] + [else + (raw:syntax-rearm s from-s)])) + (define ctx (get-current-expand-context #:fail-ok? #t)) + (when ctx (log-expand ctx 'track-syntax 'rearm rearmed-s s)) + rearmed-s) (define/who (syntax-taint s) (check who syntax? s) diff --git a/racket/src/expander/syntax/api.rkt b/racket/src/expander/syntax/api.rkt index a2627afda5..b1f1dd584b 100644 --- a/racket/src/expander/syntax/api.rkt +++ b/racket/src/expander/syntax/api.rkt @@ -219,5 +219,5 @@ (check who identifier? id) (define s (raw:syntax-track-origin new-stx old-stx id)) (define ctx (get-current-expand-context #:fail-ok? #t)) - (when ctx (log-expand ctx 'track-origin new-stx s)) + (when ctx (log-expand ctx 'track-syntax 'track-origin new-stx s)) s) diff --git a/racket/src/racket/src/schvers.h b/racket/src/racket/src/schvers.h index 6a9472b964..978868c72e 100644 --- a/racket/src/racket/src/schvers.h +++ b/racket/src/racket/src/schvers.h @@ -16,7 +16,7 @@ #define MZSCHEME_VERSION_X 7 #define MZSCHEME_VERSION_Y 5 #define MZSCHEME_VERSION_Z 0 -#define MZSCHEME_VERSION_W 11 +#define MZSCHEME_VERSION_W 12 /* A level of indirection makes `#` work as needed: */ #define AS_a_STR_HELPER(x) #x diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 58001e2d90..7b16a061f5 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -18270,13 +18270,14 @@ static const char *startup_source = "(define-values(fasl-hash-eqv-variant) 2)" "(define-values" "(s-exp->fasl.1)" -"(lambda(handle-fail6_0 keep-mutable?5_0 v10_0 orig-o9_0)" +"(lambda(external-lift?7_0 handle-fail6_0 keep-mutable?5_0 v12_0 orig-o11_0)" "(begin" " 's-exp->fasl" -"(let-values(((v_0) v10_0))" -"(let-values(((orig-o_0) orig-o9_0))" +"(let-values(((v_0) v12_0))" +"(let-values(((orig-o_0) orig-o11_0))" "(let-values(((keep-mutable?_0) keep-mutable?5_0))" "(let-values(((handle-fail_0) handle-fail6_0))" +"(let-values(((external-lift?_0) external-lift?7_0))" "(let-values()" "(let-values((()" "(begin" @@ -18285,25 +18286,44 @@ static const char *startup_source = "(if(output-port? orig-o_0)" "(void)" "(let-values()" -" (raise-argument-error 'fasl->s-exp \"(or/c output-port? #f)\" orig-o_0))))" +" (raise-argument-error 'fasl->s-exp \"(or/c output-port? #f)\" orig-o_0))))" "(void))" "(values))))" "(let-values((()" "(begin" "(if handle-fail_0" "(let-values()" -"(if(if(procedure? handle-fail_0)(procedure-arity-includes? handle-fail_0 1) #f)" +"(if(if(procedure? handle-fail_0)" +"(procedure-arity-includes? handle-fail_0 1)" +" #f)" "(void)" "(let-values()" "(raise-argument-error" " 'fasl->s-exp" -" \"(or/c (procedure-arity-includes/c 1) #f)\"" +" \"(or/c (procedure-arity-includes/c 1) #f)\"" " handle-fail_0))))" "(void))" "(values))))" +"(let-values((()" +"(begin" +"(if external-lift?_0" +"(let-values()" +"(if(if(procedure? external-lift?_0)" +"(procedure-arity-includes? external-lift?_0 1)" +" #f)" +"(void)" +"(let-values()" +"(raise-argument-error" +" 'fasl->s-exp" +" \"(or/c (procedure-arity-includes/c 1) #f)\"" +" external-lift?_0))))" +"(void))" +"(values))))" "(let-values(((o_0)" -"(let-values(((or-part_0) orig-o_0))(if or-part_0 or-part_0(open-output-bytes)))))" +"(let-values(((or-part_0) orig-o_0))" +"(if or-part_0 or-part_0(open-output-bytes)))))" "(let-values(((shared_0)(make-hasheq)))" +"(let-values(((external-lift_0)(if external-lift?_0(make-hasheq) #f)))" "(let-values(((shared-counter_0) 0))" "(let-values((()" "(begin" @@ -18311,30 +18331,54 @@ static const char *startup_source = "(lambda(v_1)" "(begin" " 'loop" +"(if(if external-lift_0" +"(hash-ref external-lift_0 v_1 #f)" +" #f)" +"(let-values()(void))" +"(if(if external-lift?_0" +"(external-lift?_0 v_1)" +" #f)" +"(let-values()" +"(begin" +"(hash-set! external-lift_0 v_1 #t)" +"(set! shared-counter_0" +"(add1 shared-counter_0))" +"(hash-set!" +" shared_0" +" v_1" +"(- shared-counter_0))))" "(if(let-values(((or-part_0)(symbol? v_1)))" "(if or-part_0" " or-part_0" -"(let-values(((or-part_1)(keyword? v_1)))" +"(let-values(((or-part_1)" +"(keyword? v_1)))" "(if or-part_1" " or-part_1" -"(let-values(((or-part_2)(string? v_1)))" +"(let-values(((or-part_2)" +"(string? v_1)))" "(if or-part_2" " or-part_2" -"(let-values(((or-part_3)(bytes? v_1)))" +"(let-values(((or-part_3)" +"(bytes? v_1)))" "(if or-part_3" " or-part_3" "(path? v_1)))))))))" -"(let-values()(hash-update! shared_0 v_1 add1 0))" +"(let-values()" +"(hash-update! shared_0 v_1 add1 0))" "(if(pair? v_1)" "(let-values()" -"(begin(loop_0(car v_1))(loop_0(cdr v_1))))" +"(begin" +"(loop_0(car v_1))" +"(loop_0(cdr v_1))))" "(if(vector? v_1)" "(let-values()" "(begin" "(let-values(((vec_0 len_0)" -"(let-values(((vec_0) v_1))" +"(let-values(((vec_0)" +" v_1))" "(begin" -"(check-vector vec_0)" +"(check-vector" +" vec_0)" "(values" " vec_0" "(unsafe-vector-length" @@ -18362,7 +18406,8 @@ static const char *startup_source = " e_0))" "(values)))))" "(values)))))" -"(if(not #f)" +"(if(not" +" #f)" "(for-loop_0" "(unsafe-fx+" " 1" @@ -18377,11 +18422,15 @@ static const char *startup_source = "(hash-for-each" " v_1" "(lambda(k_0 v_2)" -"(begin(loop_0 k_0)(loop_0 v_2)))" +"(begin" +"(loop_0 k_0)" +"(loop_0 v_2)))" " #t))" "(if(box? v_1)" "(let-values()(loop_0(unbox v_1)))" -"(let-values(((c1_0)(prefab-struct-key v_1)))" +"(let-values(((c1_0)" +"(prefab-struct-key" +" v_1)))" "(if c1_0" "((lambda(k_0)" "(begin" @@ -18392,13 +18441,15 @@ static const char *startup_source = " step*_0)" "(normalise-inputs" " 'in-vector" -" \"vector\"" +" \"vector\"" "(lambda(x_0)" -"(vector? x_0))" +"(vector?" +" x_0))" "(lambda(x_0)" "(unsafe-vector-length" " x_0))" -"(struct->vector v_1)" +"(struct->vector" +" v_1)" " 1" " #f" " 1)))" @@ -18439,12 +18490,16 @@ static const char *startup_source = " c1_0)" "(if(srcloc? v_1)" "(let-values()" -"(loop_0(srcloc-source v_1)))" +"(loop_0" +"(srcloc-source v_1)))" "(if(correlated?$1 v_1)" "(let-values()" "(begin" -"(loop_0(correlated-e$1 v_1))" -"(loop_0(correlated-source$1 v_1))" +"(loop_0" +"(correlated-e$1 v_1))" +"(loop_0" +"(correlated-source$1" +" v_1))" "(let-values(((lst_0)" "(correlated-property-symbol-keys$1" " v_1)))" @@ -18453,7 +18508,8 @@ static const char *startup_source = "(#%variable-reference))" "(void)" "(let-values()" -"(check-list lst_0)))" +"(check-list" +" lst_0)))" "((letrec-values(((for-loop_0)" "(lambda(lst_1)" "(begin" @@ -18490,7 +18546,8 @@ static const char *startup_source = " for-loop_0)" " lst_0)))" "(void)))" -"(let-values()(void)))))))))))))))" +"(let-values()" +"(void)))))))))))))))))" " loop_0)" " v_0)" "(values))))" @@ -18501,7 +18558,8 @@ static const char *startup_source = "(let-values(((or-part_0)(not keep-mutable?_0)))" "(if or-part_0 or-part_0(immutable? v_1)))))))" "(let-values(((path->relative-path-elements_0)" -"(let-values()(make-path->relative-path-elements.1 #f unsafe-undefined))))" +"(let-values()" +"(make-path->relative-path-elements.1 #f unsafe-undefined))))" "(let-values((()(begin(1/write-bytes fasl-prefix o_0)(values))))" "(let-values(((bstr_0)" "(let-values(((o_1)(open-output-bytes)))" @@ -18510,10 +18568,13 @@ static const char *startup_source = "(lambda(v_1)" "(begin" " 'loop" -"(if(not(eq?(hash-ref shared_0 v_1 1) 1))" +"(if(not" +"(eq?(hash-ref shared_0 v_1 1) 1))" "(let-values()" "(let-values(((c_0)" -"(hash-ref shared_0 v_1)))" +"(hash-ref" +" shared_0" +" v_1)))" "(if(negative? c_0)" "(let-values()" "(begin" @@ -18532,8 +18593,12 @@ static const char *startup_source = "(1/write-byte" " fasl-graph-def-type" " o_1)" -"(write-fasl-integer pos_0 o_1)" -"(hash-remove! shared_0 v_1)" +"(write-fasl-integer" +" pos_0" +" o_1)" +"(hash-remove!" +" shared_0" +" v_1)" "(loop_0 v_1)" "(hash-set!" " shared_0" @@ -18541,16 +18606,24 @@ static const char *startup_source = "(-(add1 pos_0)))))))))" "(if(not v_1)" "(let-values()" -"(1/write-byte fasl-false-type o_1))" +"(1/write-byte" +" fasl-false-type" +" o_1))" "(if(eq? v_1 #t)" "(let-values()" -"(1/write-byte fasl-true-type o_1))" +"(1/write-byte" +" fasl-true-type" +" o_1))" "(if(null? v_1)" "(let-values()" -"(1/write-byte fasl-null-type o_1))" +"(1/write-byte" +" fasl-null-type" +" o_1))" "(if(void? v_1)" "(let-values()" -"(1/write-byte fasl-void-type o_1))" +"(1/write-byte" +" fasl-void-type" +" o_1))" "(if(eof-object? v_1)" "(let-values()" "(1/write-byte" @@ -18585,8 +18658,10 @@ static const char *startup_source = " fasl-flonum-type" " o_1)" "(1/write-bytes" -"(if(eqv? v_1 +nan.0)" -" #\"\\0\\0\\0\\0\\0\\0\\370\\177\"" +"(if(eqv?" +" v_1" +" +nan.0)" +" #\"\\0\\0\\0\\0\\0\\0\\370\\177\"" "(real->floating-point-bytes" " v_1" " 8" @@ -18603,7 +18678,7 @@ static const char *startup_source = " v_1" "(real->single-flonum" " +nan.0))" -" #\"\\0\\0\\300\\177\"" +" #\"\\0\\0\\300\\177\"" "(real->floating-point-bytes" " v_1" " 4" @@ -18620,7 +18695,7 @@ static const char *startup_source = "(let-values(((bstr_0)" "(string->bytes/utf-8" "(format" -" \"~a\"" +" \"~a\"" " v_1))))" "(begin" "(write-fasl-integer" @@ -18637,7 +18712,8 @@ static const char *startup_source = " fasl-rational-type" " o_1)" "(loop_0" -"(numerator v_1))" +"(numerator" +" v_1))" "(loop_0" "(denominator" " v_1))))" @@ -18648,7 +18724,8 @@ static const char *startup_source = " fasl-complex-type" " o_1)" "(loop_0" -"(real-part v_1))" +"(real-part" +" v_1))" "(loop_0" "(imag-part" " v_1))))" @@ -18662,7 +18739,8 @@ static const char *startup_source = "(char->integer" " v_1)" " o_1)))" -"(if(symbol? v_1)" +"(if(symbol?" +" v_1)" "(let-values()" "(let-values((()" "(begin" @@ -18695,7 +18773,8 @@ static const char *startup_source = "(1/write-bytes" " bstr_0" " o_1)))))" -"(if(keyword? v_1)" +"(if(keyword?" +" v_1)" "(let-values()" "(let-values((()" "(begin" @@ -19009,7 +19088,7 @@ static const char *startup_source = " step*_0)" "(normalise-inputs" " 'in-vector" -" \"vector\"" +" \"vector\"" "(lambda(x_0)" "(vector?" " x_0))" @@ -19205,8 +19284,8 @@ static const char *startup_source = " v_1))" "(raise-arguments-error" " 's-exp->fasl" -" \"cannot write value\"" -" \"value\"" +" \"cannot write value\"" +" \"value\"" " v_1))))))))))))))))))))))))))))))))))))" " loop_0)" " v_0)" @@ -19215,14 +19294,15 @@ static const char *startup_source = "(write-fasl-integer shared-counter_0 o_0)" "(write-fasl-integer(bytes-length bstr_0) o_0)" "(1/write-bytes bstr_0 o_0)" -"(if orig-o_0(void)(get-output-bytes o_0)))))))))))))))))))))" +"(if orig-o_0(void)(get-output-bytes o_0))))))))))))))))))))))))" "(define-values" "(fasl->s-exp.1)" -"(lambda(datum-intern?12_0 orig-i14_0)" +"(lambda(datum-intern?14_0 external-lifts15_0 orig-i18_0)" "(begin" " 'fasl->s-exp" -"(let-values(((orig-i_0) orig-i14_0))" -"(let-values(((intern?_0) datum-intern?12_0))" +"(let-values(((orig-i_0) orig-i18_0))" +"(let-values(((intern?_0) datum-intern?14_0))" +"(let-values(((external-lifts_0)(if(eq? external-lifts15_0 unsafe-undefined) '#() external-lifts15_0)))" "(let-values()" "(let-values(((init-i_0)" "(if(bytes? orig-i_0)" @@ -19230,22 +19310,76 @@ static const char *startup_source = "(if(input-port? orig-i_0)" "(let-values() orig-i_0)" "(let-values()" -" (raise-argument-error 'fasl->s-exp \"(or/c bytes? input-port?)\" orig-i_0))))))" +" (raise-argument-error 'fasl->s-exp \"(or/c bytes? input-port?)\" orig-i_0))))))" "(let-values((()" "(begin" "(if(bytes=?(read-bytes/exactly fasl-prefix-length init-i_0) fasl-prefix)" "(void)" -" (let-values () (read-error \"unrecognized prefix\")))" +" (let-values () (read-error \"unrecognized prefix\")))" "(values))))" "(let-values(((shared-count_0)(read-fasl-integer init-i_0)))" "(let-values(((shared_0)(make-vector shared-count_0)))" +"(let-values((()" +"(begin" +"(if(if(vector? external-lifts_0)" +"(<=(vector-length external-lifts_0) shared-count_0)" +" #f)" +"(void)" +"(let-values()" +" (error 'fasl->s-exp \"external-lift vector does not match expected size\")))" +"(values))))" +"(let-values((()" +"(begin" +"(let-values(((vec_0 len_0)" +"(let-values(((vec_0) external-lifts_0))" +"(begin" +"(check-vector vec_0)" +"(values vec_0(unsafe-vector-length vec_0)))))" +"((start_0) 0))" +"(begin" +" #f" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-naturals start_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(pos_0 pos_1)" +"(begin" +" 'for-loop" +"(if(if(unsafe-fx< pos_0 len_0) #t #f)" +"(let-values(((v_0)(unsafe-vector-ref vec_0 pos_0))" +"((pos_2) pos_1))" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(vector-set!" +" shared_0" +" pos_2" +"(vector-ref" +" external-lifts_0" +" pos_2)))" +"(values)))))" +"(values)))))" +"(if(not #f)" +"(for-loop_0(unsafe-fx+ 1 pos_0)(+ pos_1 1))" +"(values))))" +"(values))))))" +" for-loop_0)" +" 0" +" start_0)))" +"(values))))" +"(let-values()" "(let-values(((len_0)(read-fasl-integer init-i_0)))" "(let-values(((i_0)" "(if(mpair? init-i_0)" " init-i_0" -"(let-values(((bstr_0)(read-bytes/exactly len_0 init-i_0)))(mcons bstr_0 0)))))" +"(let-values(((bstr_0)(read-bytes/exactly len_0 init-i_0)))" +"(mcons bstr_0 0)))))" "(let-values(((intern_0)" -"(lambda(v_0)(begin 'intern(if intern?_0(datum-intern-literal v_0) v_0)))))" +"(lambda(v_0)" +"(begin 'intern(if intern?_0(datum-intern-literal v_0) v_0)))))" "((letrec-values(((loop_0)" "(lambda()" "(begin" @@ -19299,7 +19433,9 @@ static const char *startup_source = " 11" " 39" " 40)))" -"(unsafe-vector*-ref tbl_0(unsafe-fx- tmp_0 1)))" +"(unsafe-vector*-ref" +" tbl_0" +"(unsafe-fx- tmp_0 1)))" " 0)" " 0)))" "(if(unsafe-fx< index_0 20)" @@ -19313,26 +19449,31 @@ static const char *startup_source = "(- type_0 fasl-small-integer-start)" " fasl-lowest-small-integer))" "(let-values()" -" (read-error \"unrecognized fasl tag\" \"tag\" type_0))))" +"(read-error" +" \"unrecognized fasl tag\"" +" \"tag\"" +" type_0))))" "(if(unsafe-fx< index_0 2)" "(let-values()" -"(let-values(((pos_0)(read-fasl-integer i_0)))" +"(let-values(((pos_0)" +"(read-fasl-integer i_0)))" "(let-values(((v_0)(loop_0)))" "(begin" "(if(< pos_0 shared-count_0)" "(void)" "(let-values()" -" (read-error \"bad graph index\")))" +" (read-error \"bad graph index\")))" "(vector-set! shared_0 pos_0 v_0)" " v_0))))" "(if(unsafe-fx< index_0 3)" "(let-values()" -"(let-values(((pos_0)(read-fasl-integer i_0)))" +"(let-values(((pos_0)" +"(read-fasl-integer i_0)))" "(begin" "(if(< pos_0 shared-count_0)" "(void)" "(let-values()" -" (read-error \"bad graph index\")))" +" (read-error \"bad graph index\")))" "(vector-ref shared_0 pos_0))))" "(let-values() #f))))" "(if(unsafe-fx< index_0 6)" @@ -19343,7 +19484,8 @@ static const char *startup_source = "(let-values()(void))" "(if(unsafe-fx< index_0 8)" "(let-values() eof)" -"(let-values()(intern_0(read-fasl-integer i_0)))))))" +"(let-values()" +"(intern_0(read-fasl-integer i_0)))))))" "(if(unsafe-fx< index_0 14)" "(if(unsafe-fx< index_0 11)" "(if(unsafe-fx< index_0 10)" @@ -19367,20 +19509,26 @@ static const char *startup_source = " 10" " 'read)))" "(if(unsafe-fx< index_0 13)" -"(let-values()(intern_0(/(loop_0)(loop_0))))" "(let-values()" -"(intern_0(make-rectangular(loop_0)(loop_0)))))))" +"(intern_0(/(loop_0)(loop_0))))" +"(let-values()" +"(intern_0" +"(make-rectangular(loop_0)(loop_0)))))))" "(if(unsafe-fx< index_0 16)" "(if(unsafe-fx< index_0 15)" "(let-values()" -"(intern_0(integer->char(read-fasl-integer i_0))))" -"(let-values()(string->symbol(read-fasl-string i_0))))" +"(intern_0" +"(integer->char(read-fasl-integer i_0))))" +"(let-values()" +"(string->symbol(read-fasl-string i_0))))" "(if(unsafe-fx< index_0 17)" "(let-values()" -"(string->unreadable-symbol(read-fasl-string i_0)))" +"(string->unreadable-symbol" +"(read-fasl-string i_0)))" "(if(unsafe-fx< index_0 18)" "(let-values()" -"(string->uninterned-symbol(read-fasl-string i_0)))" +"(string->uninterned-symbol" +"(read-fasl-string i_0)))" "(if(unsafe-fx< index_0 19)" "(let-values()" "(string->keyword(read-fasl-string i_0)))" @@ -19390,15 +19538,19 @@ static const char *startup_source = "(if(unsafe-fx< index_0 21)" "(let-values()" "(intern_0" -"(string->immutable-string(read-fasl-string i_0))))" +"(string->immutable-string" +"(read-fasl-string i_0))))" "(if(unsafe-fx< index_0 22)" "(let-values()(read-fasl-bytes i_0))" "(if(unsafe-fx< index_0 23)" "(let-values()" "(intern_0" -"(bytes->immutable-bytes(read-fasl-bytes i_0))))" +"(bytes->immutable-bytes" +"(read-fasl-bytes i_0))))" "(let-values()" -"(bytes->path(read-fasl-bytes i_0)(loop_0))))))" +"(bytes->path" +"(read-fasl-bytes i_0)" +"(loop_0))))))" "(if(unsafe-fx< index_0 26)" "(if(unsafe-fx< index_0 25)" "(let-values()" @@ -19406,7 +19558,8 @@ static const char *startup_source = "(current-load-relative-directory)))" "(let-values(((rel-elems_0)" "(reverse$1" -"(let-values(((lst_0)(loop_0)))" +"(let-values(((lst_0)" +"(loop_0)))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -19453,7 +19606,10 @@ static const char *startup_source = " lst_0))))))" "(if wrt-dir_0" "(let-values()" -"(apply build-path wrt-dir_0 rel-elems_0))" +"(apply" +" build-path" +" wrt-dir_0" +" rel-elems_0))" "(if(null? rel-elems_0)" "(let-values()(build-path 'same))" "(let-values()" @@ -19465,12 +19621,15 @@ static const char *startup_source = "(intern_0(regexp(read-fasl-string i_0))))" "(if(unsafe-fx< index_0 28)" "(let-values()" -"(intern_0(byte-pregexp(read-fasl-bytes i_0))))" +"(intern_0" +"(byte-pregexp(read-fasl-bytes i_0))))" "(if(unsafe-fx< index_0 29)" "(let-values()" -"(intern_0(byte-regexp(read-fasl-bytes i_0))))" +"(intern_0" +"(byte-regexp(read-fasl-bytes i_0))))" "(let-values()" -"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values(((len_1)" +"(read-fasl-integer i_0)))" "(reverse$1" "(let-values(((start_0) 0)" "((end_0) len_1)" @@ -19480,13 +19639,18 @@ static const char *startup_source = "(#%variable-reference))" "(void)" "(let-values()" -"(check-range start_0 end_0 inc_0)))" +"(check-range" +" start_0" +" end_0" +" inc_0)))" "((letrec-values(((for-loop_0)" "(lambda(fold-var_0" " pos_0)" "(begin" " 'for-loop" -"(if(< pos_0 end_0)" +"(if(<" +" pos_0" +" end_0)" "(let-values()" "(let-values(((fold-var_1)" "(let-values(((fold-var_1)" @@ -19499,7 +19663,8 @@ static const char *startup_source = " fold-var_1))))" "(values" " fold-var_2)))))" -"(if(not #f)" +"(if(not" +" #f)" "(for-loop_0" " fold-var_1" "(+" @@ -19515,7 +19680,8 @@ static const char *startup_source = "(if(unsafe-fx< index_0 31)" "(let-values()(cons(loop_0)(loop_0)))" "(let-values()" -"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values(((len_1)" +"(read-fasl-integer i_0)))" "((letrec-values(((ploop_0)" "(lambda(len_2)" "(begin" @@ -19525,12 +19691,14 @@ static const char *startup_source = "(cons" "(loop_0)" "(ploop_0" -"(sub1 len_2))))))))" +"(sub1" +" len_2))))))))" " ploop_0)" " len_1))))" "(if(unsafe-fx< index_0 33)" "(let-values()" -"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values(((len_1)" +"(read-fasl-integer i_0)))" "(let-values(((vec_0)" "(let-values(((len_2) len_1))" "(begin" @@ -19540,7 +19708,7 @@ static const char *startup_source = "(let-values()" "(raise-argument-error" " 'for/vector" -" \"exact-nonnegative-integer?\"" +" \"exact-nonnegative-integer?\"" " len_2)))" "(let-values(((v_0)" "(make-vector" @@ -19550,10 +19718,12 @@ static const char *startup_source = "(if(zero? len_2)" "(void)" "(let-values()" -"(let-values(((start_0) 0)" +"(let-values(((start_0)" +" 0)" "((end_0)" " len_1)" -"((inc_0) 1))" +"((inc_0)" +" 1))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -19609,7 +19779,9 @@ static const char *startup_source = " 0" " start_0)))))" " v_0))))))" -"(if(eqv? type_0 fasl-immutable-vector-type)" +"(if(eqv?" +" type_0" +" fasl-immutable-vector-type)" "(vector->immutable-vector vec_0)" " vec_0))))" "(if(unsafe-fx< index_0 34)" @@ -19619,7 +19791,8 @@ static const char *startup_source = "(if(unsafe-fx< index_0 36)" "(let-values()" "(let-values(((key_0)(loop_0)))" -"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values(((len_1)" +"(read-fasl-integer i_0)))" "(apply" " make-prefab-struct" " key_0" @@ -19632,12 +19805,18 @@ static const char *startup_source = "(#%variable-reference))" "(void)" "(let-values()" -"(check-range start_0 end_0 inc_0)))" +"(check-range" +" start_0" +" end_0" +" inc_0)))" "((letrec-values(((for-loop_0)" -"(lambda(fold-var_0 pos_0)" +"(lambda(fold-var_0" +" pos_0)" "(begin" " 'for-loop" -"(if(< pos_0 end_0)" +"(if(<" +" pos_0" +" end_0)" "(let-values()" "(let-values(((fold-var_1)" "(let-values(((fold-var_1)" @@ -19650,7 +19829,8 @@ static const char *startup_source = " fold-var_1))))" "(values" " fold-var_2)))))" -"(if(not #f)" +"(if(not" +" #f)" "(for-loop_0" " fold-var_1" "(+" @@ -19664,13 +19844,18 @@ static const char *startup_source = "(let-values()" "(let-values(((ht_0)" "(let-values(((tmp_1)" -"(read-byte/no-eof i_0)))" +"(read-byte/no-eof" +" i_0)))" "(if(equal? tmp_1 0)" -"(let-values()(make-hasheq))" +"(let-values()" +"(make-hasheq))" "(if(equal? tmp_1 2)" -"(let-values()(make-hasheqv))" -"(let-values()(make-hash)))))))" -"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values()" +"(make-hasheqv))" +"(let-values()" +"(make-hash)))))))" +"(let-values(((len_1)" +"(read-fasl-integer i_0)))" "(begin" "(let-values(((start_0) 0)" "((end_0) len_1)" @@ -19680,12 +19865,17 @@ static const char *startup_source = "(#%variable-reference))" "(void)" "(let-values()" -"(check-range start_0 end_0 inc_0)))" +"(check-range" +" start_0" +" end_0" +" inc_0)))" "((letrec-values(((for-loop_0)" "(lambda(pos_0)" "(begin" " 'for-loop" -"(if(< pos_0 end_0)" +"(if(<" +" pos_0" +" end_0)" "(let-values()" "(let-values((()" "(let-values()" @@ -19699,7 +19889,8 @@ static const char *startup_source = "(loop_0)))" "(values)))))" "(values)))))" -"(if(not #f)" +"(if(not" +" #f)" "(for-loop_0" "(+" " pos_0" @@ -19714,13 +19905,17 @@ static const char *startup_source = "(let-values()" "(let-values(((ht_0)" "(let-values(((tmp_1)" -"(read-byte/no-eof i_0)))" +"(read-byte/no-eof" +" i_0)))" "(if(equal? tmp_1 0)" "(let-values() '#hasheq())" "(if(equal? tmp_1 2)" -"(let-values() '#hasheqv())" -"(let-values() '#hash()))))))" -"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values()" +" '#hasheqv())" +"(let-values()" +" '#hash()))))))" +"(let-values(((len_1)" +"(read-fasl-integer i_0)))" "(let-values(((start_0) 0)" "((end_0) len_1)" "((inc_0) 1))" @@ -19729,12 +19924,17 @@ static const char *startup_source = "(#%variable-reference))" "(void)" "(let-values()" -"(check-range start_0 end_0 inc_0)))" +"(check-range" +" start_0" +" end_0" +" inc_0)))" "((letrec-values(((for-loop_0)" "(lambda(ht_1 pos_0)" "(begin" " 'for-loop" -"(if(< pos_0 end_0)" +"(if(<" +" pos_0" +" end_0)" "(let-values()" "(let-values(((ht_2)" "(let-values(((ht_2)" @@ -19747,7 +19947,8 @@ static const char *startup_source = "(loop_0)))))" "(values" " ht_3)))))" -"(if(not #f)" +"(if(not" +" #f)" "(for-loop_0" " ht_2" "(+" @@ -19784,12 +19985,15 @@ static const char *startup_source = "(if(variable-reference-from-unsafe?" "(#%variable-reference))" "(void)" -"(let-values()(check-list lst_0)))" +"(let-values()" +"(check-list lst_0)))" "((letrec-values(((for-loop_0)" -"(lambda(c_1 lst_1)" +"(lambda(c_1" +" lst_1)" "(begin" " 'for-loop" -"(if(pair? lst_1)" +"(if(pair?" +" lst_1)" "(let-values(((p_0)" "(unsafe-car" " lst_1))" @@ -19809,7 +20013,8 @@ static const char *startup_source = " p_0)))))" "(values" " c_3)))))" -"(if(not #f)" +"(if(not" +" #f)" "(for-loop_0" " c_2" " rest_0)" @@ -19818,8 +20023,9 @@ static const char *startup_source = " for-loop_0)" " c_0" " lst_0)))))))" -"(let-values() unsafe-undefined)))))))))))))))" -" loop_0)))))))))))))))" +"(let-values()" +" unsafe-undefined)))))))))))))))" +" loop_0)))))))))))))))))))" "(define-values" "(write-fasl-integer)" "(lambda(i_0 o_0)" @@ -19909,16 +20115,16 @@ static const char *startup_source = "(define-values" "(read-fasl-string)" "(let-values(((read-fasl-string_0)" -"(lambda(i17_0 len16_0)" +"(lambda(i21_0 len20_0)" "(begin" " 'read-fasl-string" -"(let-values(((i_0) i17_0))" -"(let-values(((len_0)(if(eq? len16_0 unsafe-undefined)(read-fasl-integer i_0) len16_0)))" +"(let-values(((i_0) i21_0))" +"(let-values(((len_0)(if(eq? len20_0 unsafe-undefined)(read-fasl-integer i_0) len20_0)))" "(let-values()" "(let-values(((bstr_0)(read-bytes/exactly len_0 i_0)))(bytes->string/utf-8 bstr_0)))))))))" "(case-lambda" "((i_0)(begin(read-fasl-string_0 i_0 unsafe-undefined)))" -"((i_0 len16_0)(read-fasl-string_0 i_0 len16_0)))))" +"((i_0 len20_0)(read-fasl-string_0 i_0 len20_0)))))" "(define-values" "(read-fasl-bytes)" "(lambda(i_0)(begin(let-values(((len_0)(read-fasl-integer i_0)))(read-bytes/exactly len_0 i_0)))))" @@ -29064,7 +29270,7 @@ static const char *startup_source = "(define-values" "(write-correlated-linklet-bundle-hash)" "(lambda(ht_0 o_0)" -"(begin(let-values(((temp7_0)(->faslable ht_0))((o8_0) o_0))(s-exp->fasl.1 #f #f temp7_0 o8_0)))))" +"(begin(let-values(((temp7_0)(->faslable ht_0))((o8_0) o_0))(s-exp->fasl.1 #f #f #f temp7_0 o8_0)))))" "(define-values" "(->faslable)" "(lambda(v_0)" @@ -29217,7 +29423,8 @@ static const char *startup_source = "(let-values() v_0))))))))" "(define-values" "(read-correlated-linklet-bundle-hash)" -"(lambda(in_0)(begin(faslable->(let-values(((in9_0) in_0)((temp10_0) #t))(fasl->s-exp.1 temp10_0 in9_0))))))" +"(lambda(in_0)" +"(begin(faslable->(let-values(((in9_0) in_0)((temp10_0) #t))(fasl->s-exp.1 temp10_0 unsafe-undefined in9_0))))))" "(define-values" "(faslable->)" "(lambda(v_0)" @@ -42777,32 +42984,35 @@ static const char *startup_source = "(obs_0 key_0(if(null? args_0)(let-values() #f)(let-values()(apply list* args_0))))))))" "(define-values" "(key->arity)" -" '#hash((block->letrec . 1)" -"(block->list . 1)" +" '#hash((block->letrec . 3)" +"(block->list . 0)" "(block-renames . 2)" +"(enter-begin-for-syntax . 0)" "(enter-bind . 0)" "(enter-block . 1)" -"(enter-check . 1)" "(enter-list . 1)" "(enter-local . 1)" -"(enter-macro . 1)" +"(enter-macro . 2)" "(enter-prim . 1)" +"(exit-begin-for-syntax . 0)" "(exit-bind . 0)" -"(exit-check . 1)" +"(exit-case . 1)" "(exit-list . 1)" "(exit-local . 1)" "(exit-local-bind . 0)" -"(exit-macro . 1)" +"(exit-macro . 2)" "(exit-prim . 1)" +"(exit-prim/return . 1)" +"(finish-block . 1)" "(lambda-renames . 2)" -"(let-renames . any)" +"(letX-renames . 5)" "(letlift-loop . 1)" -"(letrec-syntaxes-renames . any)" -"(lift-expr . 2)" +"(lift-end-decl . 3)" +"(lift-expr . 3)" "(lift-loop . 1)" +"(lift-module . 2)" "(lift-provide . 1)" "(lift-require . 3)" -"(lift-statement . 1)" "(local-bind . 1)" "(local-post . 1)" "(local-pre . 1)" @@ -42811,50 +43021,59 @@ static const char *startup_source = "(macro-post-x . 2)" "(macro-pre-x . 1)" "(module-body . 1)" +"(module-end-lifts . 1)" "(module-lift-end-loop . 1)" "(module-lift-loop . 1)" +"(module-pass1-case . 1)" +"(module-pass1-lifts . 3)" +"(module-pass2-lifts . 3)" "(next . 0)" "(next-group . 0)" "(opaque-expr . 1)" "(phase-up . 0)" "(prepare-env . 0)" -"(prim-#%app . 0)" -"(prim-#%datum . 0)" -"(prim-#%expression . 0)" -"(prim-#%stratified . 0)" -"(prim-#%top . 0)" -"(prim-#%variable-reference . 0)" -"(prim-begin . 0)" -"(prim-begin-for-syntax . 0)" -"(prim-begin0 . 0)" -"(prim-case-lambda . 0)" -"(prim-define-syntaxes . 0)" -"(prim-define-values . 0)" -"(prim-if . 0)" -"(prim-lambda . 0)" -"(prim-let-values . 0)" -"(prim-letrec-syntaxes+values . 0)" -"(prim-letrec-values . 0)" -"(prim-module . 0)" -"(prim-module-begin . 0)" -"(prim-provide . 0)" -"(prim-quote . 0)" -"(prim-quote-syntax . 0)" -"(prim-require . 0)" -"(prim-set! . 0)" -"(prim-stop . 0)" -"(prim-submodule . 0)" -"(prim-submodule* . 0)" -"(prim-with-continuation-mark . 0)" +"(prim-#%app . 1)" +"(prim-#%datum . 1)" +"(prim-#%expression . 1)" +"(prim-#%stratified . 1)" +"(prim-#%top . 1)" +"(prim-#%variable-reference . 1)" +"(prim-begin . 1)" +"(prim-begin-for-syntax . 1)" +"(prim-begin0 . 1)" +"(prim-case-lambda . 1)" +"(prim-declare . 1)" +"(prim-define-syntaxes . 1)" +"(prim-define-values . 1)" +"(prim-if . 1)" +"(prim-lambda . 1)" +"(prim-let-values . 1)" +"(prim-letrec-syntaxes+values . 1)" +"(prim-letrec-values . 1)" +"(prim-module . 1)" +"(prim-module-begin . 1)" +"(prim-provide . 1)" +"(prim-quote . 1)" +"(prim-quote-syntax . 1)" +"(prim-require . 1)" +"(prim-set! . 1)" +"(prim-stop . 1)" +"(prim-submodule . 1)" +"(prim-submodule* . 1)" +"(prim-with-continuation-mark . 1)" "(rename-list . 1)" "(rename-one . 1)" +"(rename-transformer . 1)" "(resolve . 1)" "(return . 1)" "(splice . 1)" "(start . 0)" "(start-top . 0)" +"(stop/return . 1)" "(tag . 1)" -"(track-origin . 2)" +"(tag/context . 1)" +"(tag2 . 2)" +"(track-syntax . 3)" "(variable . 2)" "(visit . 1)))" "(define-values" @@ -43115,42 +43334,32 @@ static const char *startup_source = " lst_0)))))))" "(define-values" "(expand.1)" -"(lambda(alternate-id1_0 fail-non-transformer3_0 skip-log?2_0 s7_0 ctx8_0)" +"(lambda(alternate-id1_0 fail-non-transformer2_0 s5_0 ctx6_0)" "(begin" " 'expand" -"(let-values(((s_0) s7_0))" -"(let-values(((ctx_0) ctx8_0))" +"(let-values(((s_0) s5_0))" +"(let-values(((ctx_0) ctx6_0))" "(let-values(((alternate-id_0) alternate-id1_0))" -"(let-values(((skip-log?_0) skip-log?2_0))" -"(let-values(((fail-non-transformer_0) fail-non-transformer3_0))" +"(let-values(((fail-non-transformer_0) fail-non-transformer2_0))" "(let-values()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(not skip-log?_0)" -"(let-values()" -"(call-expand-observe" -" obs_0" -"(if(expand-context-only-immediate? ctx_0) 'enter-check 'visit)" -" s_0))" -"(void)))" -"(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'visit s_0)))(void)))" "(if(syntax-identifier? s_0)" "(let-values()(expand-identifier s_0 ctx_0 alternate-id_0))" "(if(if(pair?(syntax-content s_0))(syntax-identifier?(car(syntax-content s_0))) #f)" "(let-values()" -"(let-values(((s100_0) s_0)" -"((ctx101_0) ctx_0)" -"((alternate-id102_0) alternate-id_0)" -"((fail-non-transformer103_0) fail-non-transformer_0))" -"(expand-id-application-form.1 fail-non-transformer103_0 s100_0 ctx101_0 alternate-id102_0)))" +"(let-values(((s98_0) s_0)" +"((ctx99_0) ctx_0)" +"((alternate-id100_0) alternate-id_0)" +"((fail-non-transformer101_0) fail-non-transformer_0))" +"(expand-id-application-form.1 fail-non-transformer101_0 s98_0 ctx99_0 alternate-id100_0)))" "(if(let-values(((or-part_0)(pair?(syntax-content s_0))))" "(if or-part_0 or-part_0(null?(syntax-content s_0))))" "(let-values()(expand-implicit '#%app s_0 ctx_0 #f))" "(if(already-expanded?(syntax-content s_0))" "(let-values()(expand-already-expanded s_0 ctx_0))" -"(let-values()(expand-implicit '#%datum s_0 ctx_0 #f))))))))))))))))" +"(let-values()(expand-implicit '#%datum s_0 ctx_0 #f)))))))))))))))" "(define-values" "(expand-identifier)" "(lambda(s_0 ctx_0 alternate-id_0)" @@ -43164,71 +43373,59 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(if(not(expand-context-only-immediate? ctx_0))" "(let-values()" -"(begin" -"(call-expand-observe obs_0 'resolve id_0)" -"(call-expand-observe obs_0 'enter-prim s_0)" -"(call-expand-observe obs_0 'prim-stop)" -"(call-expand-observe obs_0 'exit-prim s_0)" -"(call-expand-observe obs_0 'return s_0)))" -"(void)))" +"(begin(call-expand-observe obs_0 'resolve id_0)(call-expand-observe obs_0 'stop/return s_0))))" "(void)))" " s_0))" "(let-values()" "(let-values(((binding_0)" -"(let-values(((id104_0) id_0)" -"((temp105_0)(expand-context-phase ctx_0))" -"((temp106_0) 'ambiguous)" -"((temp107_0) #t))" -"(resolve+shift.1 temp106_0 #f null temp107_0 #f id104_0 temp105_0))))" +"(let-values(((id102_0) id_0)" +"((temp103_0)(expand-context-phase ctx_0))" +"((temp104_0) 'ambiguous)" +"((temp105_0) #t))" +"(resolve+shift.1 temp104_0 #f null temp105_0 #f id102_0 temp103_0))))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(not(expand-context-only-immediate? ctx_0))" -"(let-values()(call-expand-observe obs_0 'resolve id_0))" -"(void)))" -"(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'resolve id_0)))(void)))" "(if(eq? binding_0 'ambiguous)" "(let-values()(raise-ambiguous-error id_0 ctx_0))" "(if(not binding_0)" "(let-values()(expand-implicit '#%top(substitute-alternate-id s_0 alternate-id_0) ctx_0 s_0))" "(let-values()" "(let-values(((t_0 primitive?_0 insp-of-t_0 protected?_0)" -"(let-values(((binding116_0) binding_0)" -"((ctx117_0) ctx_0)" -"((id118_0) id_0)" -"((temp119_0)(if alternate-id_0 s_0 #f))" -"((temp120_0)(expand-context-in-local-expand? ctx_0)))" -"(lookup.1 temp119_0 temp120_0 binding116_0 ctx117_0 id118_0))))" -"(let-values(((t108_0) t_0)" -"((insp-of-t109_0) insp-of-t_0)" -"((s110_0) s_0)" -"((id111_0) id_0)" -"((ctx112_0) ctx_0)" -"((binding113_0) binding_0)" -"((primitive?114_0) primitive?_0)" -"((protected?115_0) protected?_0))" +"(let-values(((binding114_0) binding_0)" +"((ctx115_0) ctx_0)" +"((id116_0) id_0)" +"((temp117_0)(if alternate-id_0 s_0 #f))" +"((temp118_0)(expand-context-in-local-expand? ctx_0)))" +"(lookup.1 temp117_0 temp118_0 binding114_0 ctx115_0 id116_0))))" +"(let-values(((t106_0) t_0)" +"((insp-of-t107_0) insp-of-t_0)" +"((s108_0) s_0)" +"((id109_0) id_0)" +"((ctx110_0) ctx_0)" +"((binding111_0) binding_0)" +"((primitive?112_0) primitive?_0)" +"((protected?113_0) protected?_0))" "(dispatch.1" " #f" -" t108_0" -" insp-of-t109_0" -" s110_0" -" id111_0" -" ctx112_0" -" binding113_0" -" primitive?114_0" -" protected?115_0))))))))))))))" +" t106_0" +" insp-of-t107_0" +" s108_0" +" id109_0" +" ctx110_0" +" binding111_0" +" primitive?112_0" +" protected?113_0))))))))))))))" "(define-values" "(expand-id-application-form.1)" -"(lambda(fail-non-transformer10_0 s12_0 ctx13_0 alternate-id14_0)" +"(lambda(fail-non-transformer8_0 s10_0 ctx11_0 alternate-id12_0)" "(begin" " 'expand-id-application-form" -"(let-values(((s_0) s12_0))" -"(let-values(((ctx_0) ctx13_0))" -"(let-values(((alternate-id_0) alternate-id14_0))" -"(let-values(((fail-non-transformer_0) fail-non-transformer10_0))" +"(let-values(((s_0) s10_0))" +"(let-values(((ctx_0) ctx11_0))" +"(let-values(((alternate-id_0) alternate-id12_0))" +"(let-values(((fail-non-transformer_0) fail-non-transformer8_0))" "(let-values()" "(let-values(((id_0)" "(let-values(((or-part_0) alternate-id_0))" @@ -43241,32 +43438,22 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(if(not(expand-context-only-immediate? ctx_0))" "(let-values()" "(begin" "(call-expand-observe obs_0 'resolve id_0)" -"(call-expand-observe obs_0 'enter-prim s_0)" -"(call-expand-observe obs_0 'prim-stop)" -"(call-expand-observe obs_0 'exit-prim s_0)" -"(call-expand-observe obs_0 'return s_0)))" -"(void)))" +"(call-expand-observe obs_0 'stop/return s_0))))" "(void)))" " s_0))" "(let-values()" "(let-values(((binding_0)" -"(let-values(((id121_0) id_0)" -"((temp122_0)(expand-context-phase ctx_0))" -"((temp123_0) 'ambiguous)" -"((temp124_0) #t))" -"(resolve+shift.1 temp123_0 #f null temp124_0 #f id121_0 temp122_0))))" +"(let-values(((id119_0) id_0)" +"((temp120_0)(expand-context-phase ctx_0))" +"((temp121_0) 'ambiguous)" +"((temp122_0) #t))" +"(resolve+shift.1 temp121_0 #f null temp122_0 #f id119_0 temp120_0))))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(not(expand-context-only-immediate? ctx_0))" -"(let-values()(call-expand-observe obs_0 'resolve id_0))" -"(void)))" -"(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'resolve id_0)))(void)))" "(if(eq? binding_0 'ambiguous)" "(let-values()" "(begin" @@ -43279,13 +43466,13 @@ static const char *startup_source = "(expand-implicit '#%app(substitute-alternate-id s_0 alternate-id_0) ctx_0 id_0)))" "(let-values()" "(let-values(((t_0 primitive?_0 insp-of-t_0 protected?_0)" -"(let-values(((binding125_0) binding_0)" -"((ctx126_0) ctx_0)" -"((id127_0) id_0)" -"((temp128_0)" +"(let-values(((binding123_0) binding_0)" +"((ctx124_0) ctx_0)" +"((id125_0) id_0)" +"((temp126_0)" "(if alternate-id_0(car(syntax-e/no-taint s_0)) #f))" -"((temp129_0)(expand-context-in-local-expand? ctx_0)))" -"(lookup.1 temp128_0 temp129_0 binding125_0 ctx126_0 id127_0))))" +"((temp127_0)(expand-context-in-local-expand? ctx_0)))" +"(lookup.1 temp126_0 temp127_0 binding123_0 ctx124_0 id125_0))))" "(if(variable? t_0)" "(let-values()" "(begin" @@ -43296,25 +43483,25 @@ static const char *startup_source = " ctx_0" " id_0)))" "(let-values()" -"(let-values(((t130_0) t_0)" -"((insp-of-t131_0) insp-of-t_0)" -"((s132_0) s_0)" -"((id133_0) id_0)" -"((ctx134_0) ctx_0)" -"((binding135_0) binding_0)" -"((primitive?136_0) primitive?_0)" -"((protected?137_0) protected?_0)" -"((fail-non-transformer138_0) fail-non-transformer_0))" +"(let-values(((t128_0) t_0)" +"((insp-of-t129_0) insp-of-t_0)" +"((s130_0) s_0)" +"((id131_0) id_0)" +"((ctx132_0) ctx_0)" +"((binding133_0) binding_0)" +"((primitive?134_0) primitive?_0)" +"((protected?135_0) protected?_0)" +"((fail-non-transformer136_0) fail-non-transformer_0))" "(dispatch.1" -" fail-non-transformer138_0" -" t130_0" -" insp-of-t131_0" -" s132_0" -" id133_0" -" ctx134_0" -" binding135_0" -" primitive?136_0" -" protected?137_0)))))))))))))))))))))" +" fail-non-transformer136_0" +" t128_0" +" insp-of-t129_0" +" s130_0" +" id131_0" +" ctx132_0" +" binding133_0" +" primitive?134_0" +" protected?135_0)))))))))))))))))))))" "(define-values" "(expand-implicit)" "(lambda(sym_0 s_0 ctx_0 trigger-id_0)" @@ -43323,7 +43510,7 @@ static const char *startup_source = "(let-values()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'exit-check s_0)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'stop/return s_0)))(void)))" " s_0))" "(let-values()" "(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" @@ -43336,38 +43523,29 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(if(not(expand-context-only-immediate? ctx_0))" "(let-values()" "(begin" "(call-expand-observe obs_0 'resolve id_0)" -"(call-expand-observe obs_0 'enter-prim s_0)" -"(call-expand-observe obs_0 'prim-stop)" -"(call-expand-observe obs_0 'exit-prim s_0)" -"(call-expand-observe obs_0 'return s_0)))" -"(void)))" +"(call-expand-observe obs_0 'stop/return s_0))))" "(void)))" " s_0))" "(let-values()" -"(let-values((()" +"(let-values(((b_0)" +"(let-values(((id137_0) id_0)" +"((temp138_0)(expand-context-phase ctx_0))" +"((temp139_0) 'ambiguous)" +"((temp140_0) #t))" +"(resolve+shift.1 temp139_0 #f null temp140_0 #f id137_0 temp138_0))))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'resolve id_0)))" -"(void)))" -"(values))))" -"(let-values(((b_0)" -"(let-values(((id139_0) id_0)" -"((temp140_0)(expand-context-phase ctx_0))" -"((temp141_0) 'ambiguous)" -"((temp142_0) #t))" -"(resolve+shift.1 temp141_0 #f null temp142_0 #f id139_0 temp140_0))))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'resolve id_0)))(void)))" "(if(eq? b_0 'ambiguous)" "(let-values()(raise-ambiguous-error id_0 ctx_0))" "(let-values()" "(let-values(((t_0 primitive?_0 insp-of-t_0 protected?_0)" "(if b_0" -"(let-values(((b143_0) b_0)((ctx144_0) ctx_0)((id145_0) id_0))" -"(lookup.1 #f #f b143_0 ctx144_0 id145_0))" +"(let-values(((b141_0) b_0)((ctx142_0) ctx_0)((id143_0) id_0))" +"(lookup.1 #f #f b141_0 ctx142_0 id143_0))" "(values #f #f #f #f))))" "(if(transformer? t_0)" "(let-values()" @@ -43378,21 +43556,21 @@ static const char *startup_source = " 'fail-non-transformer" "(raise-syntax-implicit-error s_0 sym_0 trigger-id_0 ctx_0)))" " #f)))" -"(let-values(((t146_0) t_0)" -"((insp-of-t147_0) insp-of-t_0)" -"((temp148_0)(make-explicit ctx_0 sym_0 s_0 disarmed-s_0))" -"((id149_0) id_0)" -"((ctx150_0) ctx_0)" -"((b151_0) b_0)" -"((fail-non-transformer152_0) fail-non-transformer_0))" +"(let-values(((t144_0) t_0)" +"((insp-of-t145_0) insp-of-t_0)" +"((temp146_0)(make-explicit ctx_0 sym_0 s_0 disarmed-s_0))" +"((id147_0) id_0)" +"((ctx148_0) ctx_0)" +"((b149_0) b_0)" +"((fail-non-transformer150_0) fail-non-transformer_0))" "(dispatch-transformer.1" -" fail-non-transformer152_0" -" t146_0" -" insp-of-t147_0" -" temp148_0" -" id149_0" -" ctx150_0" -" b151_0))))" +" fail-non-transformer150_0" +" t144_0" +" insp-of-t145_0" +" temp146_0" +" id147_0" +" ctx148_0" +" b149_0))))" "(if(core-form? t_0)" "(let-values()" "(if(if(eq? sym_0 '#%top)" @@ -43412,9 +43590,9 @@ static const char *startup_source = " #f)))" "(let-values(((tl-b_0)" "(if tl-id_0" -"(let-values(((tl-id153_0) tl-id_0)" -"((temp154_0)(expand-context-phase ctx_0)))" -"(resolve.1 #f #f null #f tl-id153_0 temp154_0))" +"(let-values(((tl-id151_0) tl-id_0)" +"((temp152_0)(expand-context-phase ctx_0)))" +"(resolve.1 #f #f null #f tl-id151_0 temp152_0))" " #f)))" "(if tl-b_0" "(let-values()" @@ -43422,7 +43600,16 @@ static const char *startup_source = "(free-id-set-empty?(expand-context-stops ctx_0))" " #f)" "(parsed-id2.1 tl-id_0 tl-b_0 #f)" -" tl-id_0))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(begin" +"(call-expand-observe obs_0 'variable tl-id_0)" +"(call-expand-observe obs_0 'return tl-id_0))))" +"(void)))" +" tl-id_0)))" "(let-values()" "(raise-syntax-implicit-error" " s_0" @@ -43457,7 +43644,11 @@ static const char *startup_source = "(if(not(parsed? exp-s_0)) exp-s_0 #f)))" "(void))" "(if(expand-context-only-immediate? ctx_0)" -"(let-values() s_0)" +"(let-values()" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'stop/return s_0)))(void)))" +" s_0))" "(if(parsed? exp-s_0)" "(let-values() exp-s_0)" "(let-values()" @@ -43468,8 +43659,8 @@ static const char *startup_source = "(let-values()(let-values()(call-expand-observe obs_0 'opaque-expr result-s_0)))" "(void)))" "(if(if(expand-context-to-parsed? ctx_0)(free-id-set-empty?(expand-context-stops ctx_0)) #f)" -"(let-values(((result-s155_0) result-s_0)((ctx156_0) ctx_0))" -"(expand.1 #f #f #f result-s155_0 ctx156_0))" +"(let-values(((result-s153_0) result-s_0)((ctx154_0) ctx_0))" +"(expand.1 #f #f result-s153_0 ctx154_0))" " result-s_0))))))))))))" "(define-values" "(make-explicit)" @@ -43478,42 +43669,42 @@ static const char *startup_source = "(let-values(((new-s_0)(syntax-rearm$1(datum->syntax$1 disarmed-s_0(cons sym_0 disarmed-s_0) s_0 s_0) s_0)))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'tag new-s_0)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'tag2 new-s_0 disarmed-s_0)))(void)))" " new-s_0)))))" "(define-values" "(dispatch.1)" -"(lambda(fail-non-transformer16_0 t18_0 insp-of-t19_0 s20_0 id21_0 ctx22_0 binding23_0 primitive?24_0 protected?25_0)" +"(lambda(fail-non-transformer14_0 t16_0 insp-of-t17_0 s18_0 id19_0 ctx20_0 binding21_0 primitive?22_0 protected?23_0)" "(begin" " 'dispatch" -"(let-values(((t_0) t18_0))" -"(let-values(((insp-of-t_0) insp-of-t19_0))" -"(let-values(((s_0) s20_0))" -"(let-values(((id_0) id21_0))" -"(let-values(((ctx_0) ctx22_0))" -"(let-values(((binding_0) binding23_0))" -"(let-values(((primitive?_0) primitive?24_0))" -"(let-values(((protected?_0) protected?25_0))" -"(let-values(((fail-non-transformer_0) fail-non-transformer16_0))" +"(let-values(((t_0) t16_0))" +"(let-values(((insp-of-t_0) insp-of-t17_0))" +"(let-values(((s_0) s18_0))" +"(let-values(((id_0) id19_0))" +"(let-values(((ctx_0) ctx20_0))" +"(let-values(((binding_0) binding21_0))" +"(let-values(((primitive?_0) primitive?22_0))" +"(let-values(((protected?_0) protected?23_0))" +"(let-values(((fail-non-transformer_0) fail-non-transformer14_0))" "(let-values()" "(if(core-form? t_0)" "(let-values()(dispatch-core-form t_0 s_0 ctx_0))" "(if(transformer? t_0)" "(let-values()" -"(let-values(((t157_0) t_0)" -"((insp-of-t158_0) insp-of-t_0)" -"((s159_0) s_0)" -"((id160_0) id_0)" -"((ctx161_0) ctx_0)" -"((binding162_0) binding_0)" -"((fail-non-transformer163_0) fail-non-transformer_0))" +"(let-values(((t155_0) t_0)" +"((insp-of-t156_0) insp-of-t_0)" +"((s157_0) s_0)" +"((id158_0) id_0)" +"((ctx159_0) ctx_0)" +"((binding160_0) binding_0)" +"((fail-non-transformer161_0) fail-non-transformer_0))" "(dispatch-transformer.1" -" fail-non-transformer163_0" -" t157_0" -" insp-of-t158_0" -" s159_0" -" id160_0" -" ctx161_0" -" binding162_0)))" +" fail-non-transformer161_0" +" t155_0" +" insp-of-t156_0" +" s157_0" +" id158_0" +" ctx159_0" +" binding160_0)))" "(if(variable? t_0)" "(let-values()" "(dispatch-variable t_0 s_0 id_0 ctx_0 binding_0 primitive?_0 protected?_0))" @@ -43536,7 +43727,7 @@ static const char *startup_source = "(let-values()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'exit-check s_0)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'stop/return s_0)))(void)))" " s_0))" "(if(expand-context-observer ctx_0)" "(let-values()" @@ -43552,10 +43743,7 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'exit-prim(extract-syntax result-s_0))" -"(call-expand-observe obs_0 'return(extract-syntax result-s_0)))))" +"(let-values()(call-expand-observe obs_0 'exit-prim/return(extract-syntax result-s_0))))" "(void)))" " result-s_0))))" "(let-values()((core-form-expander t_0) s_0 ctx_0)))))))" @@ -43572,45 +43760,33 @@ static const char *startup_source = "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'exit-prim result-s_0)" -"(call-expand-observe obs_0 'return result-s_0))))" +"(let-values()(let-values()(call-expand-observe obs_0 'exit-prim/return result-s_0)))" "(void)))" " result-s_0))))))" "(define-values" "(dispatch-transformer.1)" -"(lambda(fail-non-transformer27_0 t29_0 insp-of-t30_0 s31_0 id32_0 ctx33_0 binding34_0)" +"(lambda(fail-non-transformer25_0 t27_0 insp-of-t28_0 s29_0 id30_0 ctx31_0 binding32_0)" "(begin" " 'dispatch-transformer" -"(let-values(((t_0) t29_0))" -"(let-values(((insp-of-t_0) insp-of-t30_0))" -"(let-values(((s_0) s31_0))" -"(let-values(((id_0) id32_0))" -"(let-values(((ctx_0) ctx33_0))" -"(let-values(((binding_0) binding34_0))" -"(let-values(((fail-non-transformer_0) fail-non-transformer27_0))" +"(let-values(((t_0) t27_0))" +"(let-values(((insp-of-t_0) insp-of-t28_0))" +"(let-values(((s_0) s29_0))" +"(let-values(((id_0) id30_0))" +"(let-values(((ctx_0) ctx31_0))" +"(let-values(((binding_0) binding32_0))" +"(let-values(((fail-non-transformer_0) fail-non-transformer25_0))" "(let-values()" "(if(not-in-this-expand-context? t_0 ctx_0)" "(let-values()" -"(let-values((()" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()(call-expand-observe obs_0 'enter-macro s_0)))" -"(void)))" -"(values))))" "(let-values(((adj-s_0)" "(avoid-current-expand-context(substitute-alternate-id s_0 id_0) t_0 ctx_0)))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'exit-macro s_0)))" +"(let-values()(let-values()(call-expand-observe obs_0 'tag/context adj-s_0)))" "(void)))" -"(let-values(((adj-s164_0) adj-s_0)((ctx165_0) ctx_0))" -"(expand.1 #f #f #f adj-s164_0 ctx165_0))))))" +"(let-values(((adj-s162_0) adj-s_0)((ctx163_0) ctx_0))" +"(expand.1 #f #f adj-s162_0 ctx163_0)))))" "(if(if(expand-context-should-not-encounter-macros? ctx_0)" "(not(1/rename-transformer? t_0))" " #f)" @@ -43619,69 +43795,44 @@ static const char *startup_source = " #f" " \"encountered a macro binding in form that should be fully expanded\"" " s_0))" +"(if(1/rename-transformer? t_0)" "(let-values()" -"(let-values((()" +"(if(expand-context-just-once? ctx_0)" +"(let-values() s_0)" +"(let-values()" +"(let-values(((alt-id_0)(apply-rename-transformer t_0 id_0 ctx_0)))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(if(if(expand-context-only-immediate? ctx_0)" -"(not(1/rename-transformer? t_0))" -" #f)" +"(let-values()(call-expand-observe obs_0 'rename-transformer alt-id_0)))" +"(void)))" +"(let-values(((s164_0) s_0)" +"((ctx165_0) ctx_0)" +"((alt-id166_0) alt-id_0)" +"((fail-non-transformer167_0) fail-non-transformer_0))" +"(expand.1 alt-id166_0 fail-non-transformer167_0 s164_0 ctx165_0)))))))" "(let-values()" -"(begin" -"(call-expand-observe obs_0 'visit s_0)" -"(call-expand-observe obs_0 'resolve id_0)))" -"(void)))" -"(void)))" -"(values))))" "(let-values(((exp-s_0 re-ctx_0)" -"(if(1/rename-transformer? t_0)" -"(values s_0 ctx_0)" -"(let-values(((t166_0) t_0)" -"((insp-of-t167_0) insp-of-t_0)" -"((s168_0) s_0)" -"((id169_0) id_0)" -"((ctx170_0) ctx_0)" -"((binding171_0) binding_0))" +"(let-values(((t168_0) t_0)" +"((insp-of-t169_0) insp-of-t_0)" +"((s170_0) s_0)" +"((id171_0) id_0)" +"((ctx172_0) ctx_0)" +"((binding173_0) binding_0))" "(apply-transformer.1" " #f" -" t166_0" -" insp-of-t167_0" -" s168_0" -" id169_0" -" ctx170_0" -" binding171_0)))))" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(if(expand-context-only-immediate? ctx_0)" -"(not(1/rename-transformer? t_0))" -" #f)" -"(let-values()(call-expand-observe obs_0 'return exp-s_0))" -"(void)))" -"(void)))" +" t168_0" +" insp-of-t169_0" +" s170_0" +" id171_0" +" ctx172_0" +" binding173_0))))" "(if(expand-context-just-once? ctx_0)" "(let-values() exp-s_0)" "(let-values()" -"(let-values(((exp-s172_0) exp-s_0)" -"((re-ctx173_0) re-ctx_0)" -"((temp174_0)" -"(if(1/rename-transformer? t_0)" -"(apply-rename-transformer t_0 id_0 ctx_0)" -" #f))" -"((temp175_0)" -"(let-values(((or-part_0)(expand-context-only-immediate? ctx_0)))" -"(if or-part_0 or-part_0(1/rename-transformer? t_0))))" -"((temp176_0)" -"(if(1/rename-transformer? t_0) fail-non-transformer_0 #f)))" -"(expand.1" -" temp174_0" -" temp176_0" -" temp175_0" -" exp-s172_0" -" re-ctx173_0)))))))))))))))))))))" +"(let-values(((exp-s174_0) exp-s_0)((re-ctx175_0) re-ctx_0))" +"(expand.1 #f #f exp-s174_0 re-ctx175_0))))))))))))))))))))" "(define-values" "(dispatch-variable)" "(lambda(t_0 s_0 id_0 ctx_0 binding_0 primitive?_0 protected?_0)" @@ -43690,7 +43841,7 @@ static const char *startup_source = "(let-values()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'exit-check s_0)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'stop/return id_0)))(void)))" " id_0))" "(let-values()" "(let-values((()" @@ -43702,11 +43853,11 @@ static const char *startup_source = "(values))))" "(let-values((()(begin(register-variable-referenced-if-local! binding_0)(values))))" "(let-values(((result-s_0)" -"(let-values(((id177_0) id_0)" -"((t178_0) t_0)" -"((temp179_0)" +"(let-values(((id176_0) id_0)" +"((t177_0) t_0)" +"((temp178_0)" "(free-id-set-empty-or-just-module*?(expand-context-stops ctx_0))))" -"(substitute-variable.1 temp179_0 id177_0 t178_0))))" +"(substitute-variable.1 temp178_0 id176_0 t177_0))))" "(if(if(expand-context-to-parsed? ctx_0)(free-id-set-empty?(expand-context-stops ctx_0)) #f)" "(let-values()" "(let-values(((prop-s_0)(keep-properties-only~ result-s_0)))" @@ -43725,30 +43876,31 @@ static const char *startup_source = " protected-result-s_0))))))))))))" "(define-values" "(apply-transformer.1)" -"(lambda(origin-id36_0 t38_0 insp-of-t39_0 s40_0 id41_0 ctx42_0 binding43_0)" +"(lambda(origin-id34_0 t36_0 insp-of-t37_0 s38_0 id39_0 ctx40_0 binding41_0)" "(begin" " 'apply-transformer" -"(let-values(((t_0) t38_0))" -"(let-values(((insp-of-t_0) insp-of-t39_0))" -"(let-values(((s_0) s40_0))" -"(let-values(((id_0) id41_0))" -"(let-values(((ctx_0) ctx42_0))" -"(let-values(((binding_0) binding43_0))" -"(let-values(((origin-id_0) origin-id36_0))" +"(let-values(((t_0) t36_0))" +"(let-values(((insp-of-t_0) insp-of-t37_0))" +"(let-values(((s_0) s38_0))" +"(let-values(((id_0) id39_0))" +"(let-values(((ctx_0) ctx40_0))" +"(let-values(((binding_0) binding41_0))" +"(let-values(((origin-id_0) origin-id34_0))" "(let-values()" "(begin" "(if log-performance?(let-values()(start-performance-region 'expand '_ 'macro))(void))" "(begin0" "(let-values()" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(let-values()(call-expand-observe obs_0 'enter-macro s_0)))" +"(let-values()" +"(call-expand-observe obs_0 'enter-macro disarmed-s_0 s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((intro-scope_0)(new-scope 'macro)))" "(let-values(((intro-s_0)(flip-scope disarmed-s_0 intro-scope_0)))" "(let-values(((use-s_0 use-scopes_0)" @@ -43787,7 +43939,11 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(call-expand-observe obs_0 'exit-macro rearmed-s_0)))" +"(call-expand-observe" +" obs_0" +" 'exit-macro" +" rearmed-s_0" +" post-s_0)))" "(void)))" "(values" " rearmed-s_0" @@ -43822,28 +43978,28 @@ static const char *startup_source = "(let-values(((v_0) accum-ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((current-introduction-scopes180_0)(list intro-scope_0))" -"((current-use-scopes181_0) use-scopes_0)" -"((def-ctx-scopes182_0)" +"(let-values(((current-introduction-scopes179_0)(list intro-scope_0))" +"((current-use-scopes180_0) use-scopes_0)" +"((def-ctx-scopes181_0)" "(if confine-def-ctx-scopes?_0" " def-ctx-scopes_0" "(expand-context-def-ctx-scopes ctx_0)))" -"((inner183_0)(root-expand-context/outer-inner v_0)))" +"((inner182_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner183_0" +" inner182_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" "(expand-context/outer-context the-struct_0)" "(expand-context/outer-env the-struct_0)" "(expand-context/outer-scopes the-struct_0)" -" def-ctx-scopes182_0" +" def-ctx-scopes181_0" "(expand-context/outer-binding-layer the-struct_0)" "(expand-context/outer-reference-records the-struct_0)" "(expand-context/outer-only-immediate? the-struct_0)" "(expand-context/outer-need-eventually-defined the-struct_0)" -" current-introduction-scopes180_0" -" current-use-scopes181_0" +" current-introduction-scopes179_0" +" current-use-scopes180_0" "(expand-context/outer-name the-struct_0)))" " (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0))))))" "(let-values(((transformed-s_0)" @@ -43912,16 +44068,16 @@ static const char *startup_source = "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((scopes184_0)(append(unbox def-ctx-scopes_0)(expand-context-scopes ctx_0)))" -"((inner185_0)(root-expand-context/outer-inner v_0)))" +"(let-values(((scopes183_0)(append(unbox def-ctx-scopes_0)(expand-context-scopes ctx_0)))" +"((inner184_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner185_0" +" inner184_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" "(expand-context/outer-context the-struct_0)" "(expand-context/outer-env the-struct_0)" -" scopes184_0" +" scopes183_0" "(expand-context/outer-def-ctx-scopes the-struct_0)" "(expand-context/outer-binding-layer the-struct_0)" "(expand-context/outer-reference-records the-struct_0)" @@ -43941,32 +44097,32 @@ static const char *startup_source = "(syntax-track-origin$1(transfer-srcloc intro-id_0 id_0) id_0 id_0)))))))" "(define-values" "(lookup.1)" -"(lambda(in45_0 out-of-context-as-variable?46_0 b49_0 ctx50_0 id51_0)" +"(lambda(in43_0 out-of-context-as-variable?44_0 b47_0 ctx48_0 id49_0)" "(begin" " 'lookup" -"(let-values(((b_0) b49_0))" -"(let-values(((ctx_0) ctx50_0))" -"(let-values(((id_0) id51_0))" -"(let-values(((in-s_0) in45_0))" -"(let-values(((out-of-context-as-variable?_0) out-of-context-as-variable?46_0))" +"(let-values(((b_0) b47_0))" +"(let-values(((ctx_0) ctx48_0))" +"(let-values(((id_0) id49_0))" +"(let-values(((in-s_0) in43_0))" +"(let-values(((out-of-context-as-variable?_0) out-of-context-as-variable?44_0))" "(let-values()" -"(let-values(((b186_0) b_0)" -"((temp187_0)(expand-context-env ctx_0))" -"((temp188_0)(expand-context-lift-envs ctx_0))" -"((temp189_0)(expand-context-namespace ctx_0))" -"((temp190_0)(expand-context-phase ctx_0))" -"((id191_0) id_0)" -"((in-s192_0) in-s_0)" -"((out-of-context-as-variable?193_0) out-of-context-as-variable?_0))" +"(let-values(((b185_0) b_0)" +"((temp186_0)(expand-context-env ctx_0))" +"((temp187_0)(expand-context-lift-envs ctx_0))" +"((temp188_0)(expand-context-namespace ctx_0))" +"((temp189_0)(expand-context-phase ctx_0))" +"((id190_0) id_0)" +"((in-s191_0) in-s_0)" +"((out-of-context-as-variable?192_0) out-of-context-as-variable?_0))" "(binding-lookup.1" -" in-s192_0" -" out-of-context-as-variable?193_0" -" b186_0" +" in-s191_0" +" out-of-context-as-variable?192_0" +" b185_0" +" temp186_0" " temp187_0" " temp188_0" " temp189_0" -" temp190_0" -" id191_0)))))))))))" +" id190_0)))))))))))" "(define-values" "(substitute-alternate-id)" "(lambda(s_0 alternate-id_0)" @@ -43991,15 +44147,15 @@ static const char *startup_source = "(void)))))" "(define-values" "(expand/capture-lifts.1)" -"(lambda(always-wrap?56_0 begin-form?54_0 expand-lifts?53_0 lift-key55_0 s61_0 ctx62_0)" +"(lambda(always-wrap?54_0 begin-form?52_0 expand-lifts?51_0 lift-key53_0 s59_0 ctx60_0)" "(begin" " 'expand/capture-lifts" -"(let-values(((s_0) s61_0))" -"(let-values(((ctx_0) ctx62_0))" -"(let-values(((expand-lifts?_0) expand-lifts?53_0))" -"(let-values(((begin-form?_0) begin-form?54_0))" -"(let-values(((lift-key_0)(if(eq? lift-key55_0 unsafe-undefined)(generate-lift-key) lift-key55_0)))" -"(let-values(((always-wrap?_0) always-wrap?56_0))" +"(let-values(((s_0) s59_0))" +"(let-values(((ctx_0) ctx60_0))" +"(let-values(((expand-lifts?_0) expand-lifts?51_0))" +"(let-values(((begin-form?_0) begin-form?52_0))" +"(let-values(((lift-key_0)(if(eq? lift-key53_0 unsafe-undefined)(generate-lift-key) lift-key53_0)))" +"(let-values(((always-wrap?_0) always-wrap?54_0))" "(let-values()" "(let-values(((context_0)(expand-context-context ctx_0)))" "(let-values(((phase_0)(expand-context-phase ctx_0)))" @@ -44010,7 +44166,7 @@ static const char *startup_source = " 'loop" "(let-values(((lift-env_0)(if local?_0(box empty-env) #f)))" "(let-values(((lift-ctx_0)" -"(let-values(((temp194_0)" +"(let-values(((temp193_0)" "(if local?_0" "(make-local-lift" " lift-env_0" @@ -44020,26 +44176,26 @@ static const char *startup_source = " 'lift" " #f))" "(make-top-level-lift ctx_1)))" -"((temp195_0)" +"((temp194_0)" "(if(not local?_0)" "(eq? context_0 'module)" " #f)))" -"(make-lift-context.1 temp195_0 temp194_0))))" +"(make-lift-context.1 temp194_0 temp193_0))))" "(let-values(((capture-ctx_0)" "(let-values(((v_0) ctx_1))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((inner196_0)" +"(let-values(((inner195_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((lift-key197_0)" +"(let-values(((lift-key196_0)" " lift-key_0)" -"((lifts198_0)" +"((lifts197_0)" " lift-ctx_0)" -"((lift-envs199_0)" +"((lift-envs198_0)" "(if local?_0" "(cons" " lift-env_0" @@ -44047,7 +44203,7 @@ static const char *startup_source = " ctx_1))" "(expand-context-lift-envs" " ctx_1)))" -"((module-lifts200_0)" +"((module-lifts199_0)" "(if(let-values(((or-part_0)" " local?_0))" "(if or-part_0" @@ -44073,7 +44229,7 @@ static const char *startup_source = " the-struct_1)" "(root-expand-context/inner-counter" " the-struct_1)" -" lift-key197_0" +" lift-key196_0" "(expand-context/inner-to-parsed?" " the-struct_1)" "(expand-context/inner-phase" @@ -44094,9 +44250,9 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-declared-submodule-names" " the-struct_1)" -" lifts198_0" -" lift-envs199_0" -" module-lifts200_0" +" lifts197_0" +" lift-envs198_0" +" module-lifts199_0" "(expand-context/inner-require-lifts" " the-struct_1)" "(expand-context/inner-to-module-lifts" @@ -44118,7 +44274,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner196_0" +" inner195_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -44149,9 +44305,9 @@ static const char *startup_source = " the-struct_0))))))" "(let-values(((rebuild-s_0)(keep-properties-only s_1)))" "(let-values(((exp-s_0)" -"(let-values(((s201_0) s_1)" -"((capture-ctx202_0) capture-ctx_0))" -"(expand.1 #f #f #f s201_0 capture-ctx202_0))))" +"(let-values(((s200_0) s_1)" +"((capture-ctx201_0) capture-ctx_0))" +"(expand.1 #f #f s200_0 capture-ctx201_0))))" "(let-values(((lifts_0)" "(get-and-clear-lifts!" "(expand-context-lifts capture-ctx_0))))" @@ -44177,15 +44333,15 @@ static const char *startup_source = "(loop_0 rhs_0 #f rhs-ctx_0)))))" "(let-values()" "(if begin-form?_0" -"(let-values(((lifts203_0) lifts_0)" -"((exp-s204_0) exp-s_0)" -"((phase205_0) phase_0))" +"(let-values(((lifts202_0) lifts_0)" +"((exp-s203_0) exp-s_0)" +"((phase204_0) phase_0))" "(wrap-lifts-as-begin.1" " unsafe-undefined" " unsafe-undefined" -" lifts203_0" -" exp-s204_0" -" phase205_0))" +" lifts202_0" +" exp-s203_0" +" phase204_0))" "(wrap-lifts-as-let" " lifts_0" " exp-s_0" @@ -44218,49 +44374,49 @@ static const char *startup_source = " ctx_0))))))))))))))" "(define-values" "(expand-transformer.1)" -"(lambda(always-wrap?68_0 begin-form?65_0 context64_0 expand-lifts?66_0 keep-stops?69_0 lift-key67_0 s76_0 ctx77_0)" +"(lambda(always-wrap?66_0 begin-form?63_0 context62_0 expand-lifts?64_0 keep-stops?67_0 lift-key65_0 s74_0 ctx75_0)" "(begin" " 'expand-transformer" -"(let-values(((s_0) s76_0))" -"(let-values(((ctx_0) ctx77_0))" -"(let-values(((context_0) context64_0))" -"(let-values(((begin-form?_0) begin-form?65_0))" -"(let-values(((expand-lifts?_0) expand-lifts?66_0))" -"(let-values(((lift-key_0)(if(eq? lift-key67_0 unsafe-undefined)(generate-lift-key) lift-key67_0)))" -"(let-values(((always-wrap?_0) always-wrap?68_0))" -"(let-values(((keep-stops?_0) keep-stops?69_0))" +"(let-values(((s_0) s74_0))" +"(let-values(((ctx_0) ctx75_0))" +"(let-values(((context_0) context62_0))" +"(let-values(((begin-form?_0) begin-form?63_0))" +"(let-values(((expand-lifts?_0) expand-lifts?64_0))" +"(let-values(((lift-key_0)(if(eq? lift-key65_0 unsafe-undefined)(generate-lift-key) lift-key65_0)))" +"(let-values(((always-wrap?_0) always-wrap?66_0))" +"(let-values(((keep-stops?_0) keep-stops?67_0))" "(let-values()" "(begin" "(if log-performance?(let-values()(start-performance-region 'expand 'transformer))(void))" "(begin0" "(let-values()" "(let-values(((trans-ctx_0)" -"(let-values(((ctx212_0) ctx_0)" -"((context213_0) context_0)" -"((keep-stops?214_0) keep-stops?_0))" -"(context->transformer-context.1 keep-stops?214_0 ctx212_0 context213_0))))" -"(let-values(((s206_0) s_0)" -"((trans-ctx207_0) trans-ctx_0)" -"((expand-lifts?208_0) expand-lifts?_0)" -"((begin-form?209_0) begin-form?_0)" -"((lift-key210_0) lift-key_0)" -"((always-wrap?211_0) always-wrap?_0))" +"(let-values(((ctx211_0) ctx_0)" +"((context212_0) context_0)" +"((keep-stops?213_0) keep-stops?_0))" +"(context->transformer-context.1 keep-stops?213_0 ctx211_0 context212_0))))" +"(let-values(((s205_0) s_0)" +"((trans-ctx206_0) trans-ctx_0)" +"((expand-lifts?207_0) expand-lifts?_0)" +"((begin-form?208_0) begin-form?_0)" +"((lift-key209_0) lift-key_0)" +"((always-wrap?210_0) always-wrap?_0))" "(expand/capture-lifts.1" -" always-wrap?211_0" -" begin-form?209_0" -" expand-lifts?208_0" -" lift-key210_0" -" s206_0" -" trans-ctx207_0))))" +" always-wrap?210_0" +" begin-form?208_0" +" expand-lifts?207_0" +" lift-key209_0" +" s205_0" +" trans-ctx206_0))))" "(if log-performance?(let-values()(end-performance-region))(void))))))))))))))))" "(define-values" "(context->transformer-context.1)" -"(lambda(keep-stops?79_0 ctx82_0 context81_0)" +"(lambda(keep-stops?77_0 ctx80_0 context79_0)" "(begin" " 'context->transformer-context" -"(let-values(((ctx_0) ctx82_0))" -"(let-values(((context_0) context81_0))" -"(let-values(((keep-stops?_0) keep-stops?79_0))" +"(let-values(((ctx_0) ctx80_0))" +"(let-values(((context_0) context79_0))" +"(let-values(((keep-stops?_0) keep-stops?77_0))" "(let-values()" "(let-values(((phase_0)(add1(expand-context-phase ctx_0))))" "(let-values(((ns_0)(namespace->namespace-at-phase(expand-context-namespace ctx_0) phase_0)))" @@ -44269,19 +44425,19 @@ static const char *startup_source = "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((context215_0) context_0)" -"((scopes216_0) null)" -"((env217_0) empty-env)" -"((only-immediate?218_0)" +"(let-values(((context214_0) context_0)" +"((scopes215_0) null)" +"((env216_0) empty-env)" +"((only-immediate?217_0)" "(if keep-stops?_0(expand-context-only-immediate? ctx_0) #f))" -"((def-ctx-scopes219_0) #f)" -"((post-expansion220_0) #f)" -"((inner221_0)" +"((def-ctx-scopes218_0) #f)" +"((post-expansion219_0) #f)" +"((inner220_0)" "(let-values(((the-struct_1)(root-expand-context/outer-inner v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((phase222_0) phase_0)" -"((namespace223_0) ns_0)" -"((stops224_0)" +"(let-values(((phase221_0) phase_0)" +"((namespace222_0) ns_0)" +"((stops223_0)" "(if keep-stops?_0" "(expand-context-stops ctx_0)" " empty-free-id-set)))" @@ -44294,14 +44450,14 @@ static const char *startup_source = "(root-expand-context/inner-counter the-struct_1)" "(root-expand-context/inner-lift-key the-struct_1)" "(expand-context/inner-to-parsed? the-struct_1)" -" phase222_0" -" namespace223_0" +" phase221_0" +" namespace222_0" "(expand-context/inner-just-once? the-struct_1)" "(expand-context/inner-module-begin-k the-struct_1)" "(expand-context/inner-allow-unbound? the-struct_1)" "(expand-context/inner-in-local-expand? the-struct_1)" "(expand-context/inner-keep-#%expression? the-struct_1)" -" stops224_0" +" stops223_0" "(expand-context/inner-declared-submodule-names the-struct_1)" "(expand-context/inner-lifts the-struct_1)" "(expand-context/inner-lift-envs the-struct_1)" @@ -44316,17 +44472,17 @@ static const char *startup_source = "(expand-context/inner-should-not-encounter-macros? the-struct_1)))" " (raise-argument-error 'struct-copy \"expand-context/inner?\" the-struct_1)))))" "(expand-context/outer1.1" -" inner221_0" -" post-expansion220_0" +" inner220_0" +" post-expansion219_0" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" -" context215_0" -" env217_0" -" scopes216_0" -" def-ctx-scopes219_0" +" context214_0" +" env216_0" +" scopes215_0" +" def-ctx-scopes218_0" "(expand-context/outer-binding-layer the-struct_0)" "(expand-context/outer-reference-records the-struct_0)" -" only-immediate?218_0" +" only-immediate?217_0" "(expand-context/outer-need-eventually-defined the-struct_0)" "(expand-context/outer-current-introduction-scopes the-struct_0)" "(expand-context/outer-current-use-scopes the-struct_0)" @@ -44334,27 +44490,27 @@ static const char *startup_source = " (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0))))))))))))))" "(define-values" "(expand+eval-for-syntaxes-binding.1)" -"(lambda(log-next?84_0 who86_0 rhs87_0 ids88_0 ctx89_0)" +"(lambda(log-next?82_0 who84_0 rhs85_0 ids86_0 ctx87_0)" "(begin" " 'expand+eval-for-syntaxes-binding" -"(let-values(((who_0) who86_0))" -"(let-values(((rhs_0) rhs87_0))" -"(let-values(((ids_0) ids88_0))" -"(let-values(((ctx_0) ctx89_0))" -"(let-values(((log-next?_0) log-next?84_0))" +"(let-values(((who_0) who84_0))" +"(let-values(((rhs_0) rhs85_0))" +"(let-values(((ids_0) ids86_0))" +"(let-values(((ctx_0) ctx87_0))" +"(let-values(((log-next?_0) log-next?82_0))" "(let-values()" "(let-values(((exp-rhs_0)" -"(let-values(((rhs225_0) rhs_0)((temp226_0)(as-named-context ctx_0 ids_0)))" -"(expand-transformer.1 #f #f 'expression #t #f unsafe-undefined rhs225_0 temp226_0))))" +"(let-values(((rhs224_0) rhs_0)((temp225_0)(as-named-context ctx_0 ids_0)))" +"(expand-transformer.1 #f #f 'expression #t #f unsafe-undefined rhs224_0 temp225_0))))" "(let-values(((phase_0)(add1(expand-context-phase ctx_0))))" "(let-values(((parsed-rhs_0)" "(if(expand-context-to-parsed? ctx_0)" " exp-rhs_0" -"(let-values(((exp-rhs227_0) exp-rhs_0)" -"((temp228_0)" -"(let-values(((temp229_0)(as-to-parsed-context ctx_0)))" -"(context->transformer-context.1 #f temp229_0 'expression))))" -"(expand.1 #f #f #f exp-rhs227_0 temp228_0)))))" +"(let-values(((exp-rhs226_0) exp-rhs_0)" +"((temp227_0)" +"(let-values(((temp228_0)(as-to-parsed-context ctx_0)))" +"(context->transformer-context.1 #f temp228_0 'expression))))" +"(expand.1 #f #f exp-rhs226_0 temp227_0)))))" "(begin" "(if log-next?_0" "(let-values()" @@ -44376,8 +44532,8 @@ static const char *startup_source = "(lambda(who_0 rhs_0 ids_0 ctx_0)" "(begin" "(let-values(((exp-rhs_0 parsed-rhs_0 vals_0)" -"(let-values(((who230_0) who_0)((rhs231_0) rhs_0)((ids232_0) ids_0)((ctx233_0) ctx_0))" -"(expand+eval-for-syntaxes-binding.1 #t who230_0 rhs231_0 ids232_0 ctx233_0))))" +"(let-values(((who229_0) who_0)((rhs230_0) rhs_0)((ids231_0) ids_0)((ctx232_0) ctx_0))" +"(expand+eval-for-syntaxes-binding.1 #t who229_0 rhs230_0 ids231_0 ctx232_0))))" " vals_0))))" "(define-values" "(eval-for-bindings)" @@ -44388,8 +44544,8 @@ static const char *startup_source = " #f" "(compile-single" " p_0" -"(let-values(((ns234_0) ns_0)((phase235_0) phase_0))" -"(make-compile-context.1 #f unsafe-undefined #f ns234_0 phase235_0 unsafe-undefined))))))" +"(let-values(((ns233_0) ns_0)((phase234_0) phase_0))" +"(make-compile-context.1 #f unsafe-undefined #f ns233_0 phase234_0 unsafe-undefined))))))" "(let-values(((vals_0)" "(call-with-values" "(lambda()" @@ -44430,14 +44586,14 @@ static const char *startup_source = "(define-values(keep-properties-only~)(lambda(s_0)(begin #f)))" "(define-values" "(keep-as-needed.1)" -"(lambda(for-track?91_0 keep-for-error?93_0 keep-for-parsed?92_0 ctx97_0 s98_0)" +"(lambda(for-track?89_0 keep-for-error?91_0 keep-for-parsed?90_0 ctx95_0 s96_0)" "(begin" " 'keep-as-needed" -"(let-values(((ctx_0) ctx97_0))" -"(let-values(((s_0) s98_0))" -"(let-values(((for-track?_0) for-track?91_0))" -"(let-values(((keep-for-parsed?_0) keep-for-parsed?92_0))" -"(let-values(((keep-for-error?_0) keep-for-error?93_0))" +"(let-values(((ctx_0) ctx95_0))" +"(let-values(((s_0) s96_0))" +"(let-values(((for-track?_0) for-track?89_0))" +"(let-values(((keep-for-parsed?_0) keep-for-parsed?90_0))" +"(let-values(((keep-for-error?_0) keep-for-error?91_0))" "(let-values()" "(let-values(((d_0)(syntax-e/no-taint s_0)))" "(let-values(((keep-e_0)" @@ -44514,7 +44670,7 @@ static const char *startup_source = "(let-values(((v_0) rhs-ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((env236_0)" +"(let-values(((env235_0)" "(let-values(((lst_0) ids_0)((lst_1) keys_0))" "(begin" "(if(variable-reference-from-unsafe?" @@ -44567,14 +44723,14 @@ static const char *startup_source = "(expand-context-env rhs-ctx_0)" " lst_0" " lst_1))))" -"((inner237_0)(root-expand-context/outer-inner v_0)))" +"((inner236_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner237_0" +" inner236_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" "(expand-context/outer-context the-struct_0)" -" env236_0" +" env235_0" "(expand-context/outer-scopes the-struct_0)" "(expand-context/outer-def-ctx-scopes the-struct_0)" "(expand-context/outer-binding-layer the-struct_0)" @@ -44614,14 +44770,14 @@ static const char *startup_source = "(if srcloc_0" "(let-values(((the-struct_0) new-s_0))" "(if(syntax?$1 the-struct_0)" -"(let-values(((srcloc238_0) srcloc_0))" +"(let-values(((srcloc237_0) srcloc_0))" "(syntax1.1" "(syntax-content the-struct_0)" "(syntax-scopes the-struct_0)" "(syntax-shifted-multi-scopes the-struct_0)" "(syntax-scope-propagations+tamper the-struct_0)" "(syntax-mpi-shifts the-struct_0)" -" srcloc238_0" +" srcloc237_0" "(syntax-props the-struct_0)" "(syntax-inspector the-struct_0)))" " (raise-argument-error 'struct-copy \"syntax?\" the-struct_0)))" @@ -45374,18 +45530,27 @@ static const char *startup_source = "(let-values(((s_0) s11_0))" "(let-values(((mode_0) mode9_0))" "(let-values()" +"(let-values((()" "(begin" "(if(1/internal-definition-context? intdef_0)" "(void)" "(let-values()" "(raise-argument-error" " 'internal-definition-context-introduce" -" \"internal-definition-context?\"" +" \"internal-definition-context?\"" " intdef_0)))" +"(values))))" +"(let-values((()" +"(begin" "(if(syntax?$1 s_0)" "(void)" "(let-values()" -" (raise-argument-error 'internal-definition-context-introduce \"syntax?\" s_0)))" +"(raise-argument-error" +" 'internal-definition-context-introduce" +" \"syntax?\"" +" s_0)))" +"(values))))" +"(let-values(((new-s_0)" "(let-values(((s56_0) s_0)" "((intdef57_0) intdef_0)" "((temp58_0) #t)" @@ -45400,9 +45565,28 @@ static const char *startup_source = "(let-values()" "(raise-argument-error" " 'internal-definition-context-introduce" -" \"(or/c 'add 'remove 'flip)\"" +" \"(or/c 'add 'remove 'flip)\"" " mode_0))))))))" -"(add-intdef-scopes.1 temp59_0 temp58_0 s56_0 intdef57_0)))))))))))" +"(add-intdef-scopes.1 temp59_0 temp58_0 s56_0 intdef57_0))))" +"(let-values(((ctx_0)" +"(let-values(((temp60_0) #t))" +"(get-current-expand-context.1 temp60_0 'unexpected))))" +"(begin" +"(if ctx_0" +"(let-values()" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'track-syntax" +" 'internal-definition-context-introduce" +" new-s_0" +" s_0)))" +"(void))))" +"(void))" +" new-s_0)))))))))))))" "(case-lambda" "((intdef_0 s_0)" "(begin 'internal-definition-context-introduce(internal-definition-context-introduce_0 intdef_0 s_0 'flip)))" @@ -45632,9 +45816,9 @@ static const char *startup_source = "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((context60_0) context_0)" -"((env61_0)(add-intdef-bindings(expand-context-env ctx_0) intdefs_0))" -"((use-site-scopes62_0)" +"(let-values(((context61_0) context_0)" +"((env62_0)(add-intdef-bindings(expand-context-env ctx_0) intdefs_0))" +"((use-site-scopes63_0)" "(if(let-values(((or-part_0)(eq? context_0 'module)))" "(if or-part_0" " or-part_0" @@ -45644,7 +45828,7 @@ static const char *startup_source = "(root-expand-context-use-site-scopes ctx_0)))" "(if or-part_0 or-part_0(box null)))" " #f))" -"((frame-id63_0)" +"((frame-id64_0)" "(let-values(((x_0)" "(let-values(((a_0) intdefs_0))" "(if(list? a_0)" @@ -45693,7 +45877,7 @@ static const char *startup_source = " for-loop_0)" "(root-expand-context-frame-id ctx_0)" " x_0))))" -"((post-expansion64_0)" +"((post-expansion65_0)" "(let-values(((pe_0)" "(if same-kind?_0" "(if(let-values(((or-part_0)(pair? context_0)))" @@ -45709,34 +45893,34 @@ static const char *startup_source = "(let-values()" "(lambda(s_0)" "(begin" -" 'post-expansion64" -"(let-values(((temp70_0)(apply-post-expansion pe_0 s_0))" -"((intdefs71_0) intdefs_0))" +" 'post-expansion65" +"(let-values(((temp71_0)(apply-post-expansion pe_0 s_0))" +"((intdefs72_0) intdefs_0))" "(add-intdef-scopes.1" " unsafe-undefined" " #f" -" temp70_0" -" intdefs71_0)))))" +" temp71_0" +" intdefs72_0)))))" "(let-values() pe_0))))" -"((scopes65_0)(append def-ctx-scopes_0(expand-context-scopes ctx_0)))" -"((only-immediate?66_0)(not stop-ids_0))" -"((current-introduction-scopes67_0) null)" -"((need-eventually-defined68_0)" +"((scopes66_0)(append def-ctx-scopes_0(expand-context-scopes ctx_0)))" +"((only-immediate?67_0)(not stop-ids_0))" +"((current-introduction-scopes68_0) null)" +"((need-eventually-defined69_0)" "(let-values(((ht_0)(expand-context-need-eventually-defined ctx_0)))" "(if track-to-be-defined?_0" "(let-values() ht_0)" "(if ht_0(let-values()(make-hasheqv))(let-values() #f)))))" -"((inner69_0)" +"((inner70_0)" "(let-values(((the-struct_1)(root-expand-context/outer-inner v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((to-parsed?72_0)" +"(let-values(((to-parsed?73_0)" "(if to-parsed-ok?_0" "(expand-context-to-parsed? ctx_0)" " #f))" -"((just-once?73_0) #f)" -"((in-local-expand?74_0) #t)" -"((keep-#%expression?75_0) keep-#%expression?_0)" -"((stops76_0)" +"((just-once?74_0) #f)" +"((in-local-expand?75_0) #t)" +"((keep-#%expression?76_0) keep-#%expression?_0)" +"((stops77_0)" "(free-id-set" " phase_0" "(let-values(((or-part_0) all-stop-ids_0))" @@ -45749,15 +45933,15 @@ static const char *startup_source = "(root-expand-context/inner-defined-syms the-struct_1)" "(root-expand-context/inner-counter the-struct_1)" "(root-expand-context/inner-lift-key the-struct_1)" -" to-parsed?72_0" +" to-parsed?73_0" "(expand-context/inner-phase the-struct_1)" "(expand-context/inner-namespace the-struct_1)" -" just-once?73_0" +" just-once?74_0" "(expand-context/inner-module-begin-k the-struct_1)" "(expand-context/inner-allow-unbound? the-struct_1)" -" in-local-expand?74_0" -" keep-#%expression?75_0" -" stops76_0" +" in-local-expand?75_0" +" keep-#%expression?76_0" +" stops77_0" "(expand-context/inner-declared-submodule-names the-struct_1)" "(expand-context/inner-lifts the-struct_1)" "(expand-context/inner-lift-envs the-struct_1)" @@ -45776,19 +45960,19 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner69_0" -" post-expansion64_0" -" use-site-scopes62_0" -" frame-id63_0" -" context60_0" -" env61_0" -" scopes65_0" +" inner70_0" +" post-expansion65_0" +" use-site-scopes63_0" +" frame-id64_0" +" context61_0" +" env62_0" +" scopes66_0" "(expand-context/outer-def-ctx-scopes the-struct_0)" "(expand-context/outer-binding-layer the-struct_0)" "(expand-context/outer-reference-records the-struct_0)" -" only-immediate?66_0" -" need-eventually-defined68_0" -" current-introduction-scopes67_0" +" only-immediate?67_0" +" need-eventually-defined69_0" +" current-introduction-scopes68_0" "(expand-context/outer-current-use-scopes the-struct_0)" "(expand-context/outer-name the-struct_0)))" "(raise-argument-error" @@ -45807,27 +45991,27 @@ static const char *startup_source = "(lambda()" "(begin" " 'syntax-transforming?" -"(if(let-values(((temp41_0) #t))(get-current-expand-context.1 temp41_0 'unexpected)) #t #f))))" +"(if(let-values(((temp43_0) #t))(get-current-expand-context.1 temp43_0 'unexpected)) #t #f))))" "(define-values" "(1/syntax-transforming-with-lifts?)" "(lambda()" "(begin" " 'syntax-transforming-with-lifts?" -"(let-values(((ctx_0)(let-values(((temp42_0) #t))(get-current-expand-context.1 temp42_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp44_0) #t))(get-current-expand-context.1 temp44_0 'unexpected))))" "(if ctx_0(if(expand-context-lifts ctx_0) #t #f) #f)))))" "(define-values" "(1/syntax-transforming-module-expression?)" "(lambda()" "(begin" " 'syntax-transforming-module-expression?" -"(let-values(((ctx_0)(let-values(((temp43_0) #t))(get-current-expand-context.1 temp43_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp45_0) #t))(get-current-expand-context.1 temp45_0 'unexpected))))" "(if ctx_0(if(expand-context-to-module-lifts ctx_0) #t #f) #f)))))" "(define-values" "(1/syntax-local-transforming-module-provides?)" "(lambda()" "(begin" " 'syntax-local-transforming-module-provides?" -"(let-values(((ctx_0)(let-values(((temp44_0) #t))(get-current-expand-context.1 temp44_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp46_0) #t))(get-current-expand-context.1 temp46_0 'unexpected))))" "(if ctx_0(if(expand-context-requires+provides ctx_0) #t #f) #f)))))" "(define-values" "(1/syntax-local-context)" @@ -45835,7 +46019,7 @@ static const char *startup_source = "(begin" " 'syntax-local-context" "(let-values(((ctx_0)" -"(let-values(((temp45_0) 'syntax-local-context))(get-current-expand-context.1 #f temp45_0))))" +"(let-values(((temp47_0) 'syntax-local-context))(get-current-expand-context.1 #f temp47_0))))" "(expand-context-context ctx_0)))))" "(define-values" "(1/syntax-local-introduce)" @@ -45851,9 +46035,16 @@ static const char *startup_source = " (let-values () (raise-argument-error 'syntax-local-introduce \"syntax?\" s_0)))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((temp47_0) 'syntax-local-introduce))" -"(get-current-expand-context.1 #f temp47_0))))" -"(flip-introduction-and-use-scopes s_0 ctx_0))))))))" +"(let-values(((temp49_0) 'syntax-local-introduce))" +"(get-current-expand-context.1 #f temp49_0))))" +"(let-values(((new-s_0)(flip-introduction-and-use-scopes s_0 ctx_0)))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'track-syntax 'syntax-local-introduce new-s_0 s_0)))" +"(void)))" +" new-s_0)))))))))" "(define-values" "(1/syntax-local-identifier-as-binding)" "(lambda(id_0)" @@ -45869,15 +46060,23 @@ static const char *startup_source = " (raise-argument-error 'syntax-local-identifier-as-binding \"identifier?\" id_0)))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((temp49_0) 'syntax-local-identifier-as-binding))" -"(get-current-expand-context.1 #f temp49_0))))" -"(remove-use-site-scopes id_0 ctx_0))))))))" +"(let-values(((temp51_0) 'syntax-local-identifier-as-binding))" +"(get-current-expand-context.1 #f temp51_0))))" +"(let-values(((new-id_0)(remove-use-site-scopes id_0 ctx_0)))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'track-syntax 'syntax-local-identifier-as-binding new-id_0 id_0)))" +"(void)))" +" new-id_0)))))))))" "(define-values" "(1/syntax-local-phase-level)" "(lambda()" "(begin" " 'syntax-local-phase-level" -"(let-values(((ctx_0)(let-values(((temp50_0) #t))(get-current-expand-context.1 temp50_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp52_0) #t))(get-current-expand-context.1 temp52_0 'unexpected))))" "(if ctx_0(expand-context-phase ctx_0) 0)))))" "(define-values" "(1/syntax-local-name)" @@ -45887,7 +46086,7 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values(((ctx_0)" -"(let-values(((who52_0) 'syntax-local-name))(get-current-expand-context.1 #f who52_0))))" +"(let-values(((who54_0) 'syntax-local-name))(get-current-expand-context.1 #f who54_0))))" "(let-values(((id_0)(expand-context-name ctx_0)))" "(if id_0(datum->syntax$1 #f(syntax-e$1 id_0) id_0) #f))))))))" "(define-values" @@ -45918,16 +46117,19 @@ static const char *startup_source = "(lambda(sc_0)" "(begin" "(let-values(((do-make-syntax-introducer_0)" -"(lambda(s55_0 mode54_0)" +"(lambda(s57_0 mode56_0)" "(begin" " 'do-make-syntax-introducer" -"(let-values(((s_0) s55_0))" -"(let-values(((mode_0) mode54_0))" +"(let-values(((s_0) s57_0))" +"(let-values(((mode_0) mode56_0))" "(let-values()" +"(let-values((()" "(begin" "(if(syntax?$1 s_0)" "(void)" -" (let-values () (raise-argument-error 'syntax-introducer \"syntax?\" s_0)))" +" (let-values () (raise-argument-error 'syntax-introducer \"syntax?\" s_0)))" +"(values))))" +"(let-values(((new-s_0)" "(let-values(((tmp_0) mode_0))" "(if(equal? tmp_0 'add)" "(let-values()(add-scope s_0 sc_0))" @@ -45938,11 +46140,25 @@ static const char *startup_source = "(let-values()" "(raise-argument-error" " 'syntax-introducer" -" \"(or/c 'add 'remove 'flip)\"" -" mode_0))))))))))))))" +" \"(or/c 'add 'remove 'flip)\"" +" mode_0))))))))" +"(let-values(((ctx_0)" +"(let-values(((temp58_0) #t))" +"(get-current-expand-context.1 temp58_0 'unexpected))))" +"(begin" +"(if ctx_0" +"(let-values()" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'track-syntax mode_0 new-s_0 s_0)))" +"(void))))" +"(void))" +" new-s_0)))))))))))" "(case-lambda" "((s_0)(do-make-syntax-introducer_0 s_0 'flip))" -"((s_0 mode54_0)(do-make-syntax-introducer_0 s_0 mode54_0)))))))" +"((s_0 mode56_0)(do-make-syntax-introducer_0 s_0 mode56_0)))))))" "(define-values" "(1/make-syntax-delta-introducer)" "(let-values(((make-syntax-delta-introducer_0)" @@ -46000,16 +46216,16 @@ static const char *startup_source = " base-scs_0" "(let-values(((or-part_0)" "(if(identifier? base-s_0)" -"(let-values(((base-s57_0) base-s_0)" -"((phase58_0) phase_0)" -"((temp59_0) #t))" +"(let-values(((base-s60_0) base-s_0)" +"((phase61_0) phase_0)" +"((temp62_0) #t))" "(resolve.1" " #f" " #f" " null" -" temp59_0" -" base-s57_0" -" phase58_0))" +" temp62_0" +" base-s60_0" +" phase61_0))" " #f)))" "(if or-part_0 or-part_0(seteq))))))" "(let-values(((delta-scs_0)" @@ -46018,55 +46234,84 @@ static const char *startup_source = "(if(syntax-clean? ext-s_0) values syntax-taint$1)))" "(let-values(((shifts_0)(syntax-mpi-shifts ext-s_0)))" "(let-values(((make-syntax-delta-introducer_0)" -"(lambda(s61_0 mode60_0)" +"(lambda(s64_0 mode63_0)" "(begin" " 'make-syntax-delta-introducer" -"(let-values(((s_0) s61_0))" -"(let-values(((mode_0) mode60_0))" +"(let-values(((s_0) s64_0))" +"(let-values(((mode_0) mode63_0))" "(let-values()" +"(let-values(((new-s_0)" "(maybe-taint_0" "(let-values(((tmp_0) mode_0))" "(if(equal? tmp_0 'add)" "(let-values()" -"(let-values(((temp62_0)" -"(add-scopes" -" s_0" -" delta-scs_0))" -"((shifts63_0) shifts_0)" -"((temp64_0) #t))" -"(syntax-add-shifts.1" -" temp64_0" -" temp62_0" -" shifts63_0" -" #f)))" -"(if(equal? tmp_0 'remove)" -"(let-values()" -"(remove-scopes s_0 delta-scs_0))" -"(if(equal? tmp_0 'flip)" -"(let-values()" "(let-values(((temp65_0)" -"(flip-scopes" +"(add-scopes" " s_0" " delta-scs_0))" "((shifts66_0)" " shifts_0)" -"((temp67_0) #t))" +"((temp67_0)" +" #t))" "(syntax-add-shifts.1" " temp67_0" " temp65_0" " shifts66_0" " #f)))" +"(if(equal? tmp_0 'remove)" +"(let-values()" +"(remove-scopes" +" s_0" +" delta-scs_0))" +"(if(equal? tmp_0 'flip)" +"(let-values()" +"(let-values(((temp68_0)" +"(flip-scopes" +" s_0" +" delta-scs_0))" +"((shifts69_0)" +" shifts_0)" +"((temp70_0)" +" #t))" +"(syntax-add-shifts.1" +" temp70_0" +" temp68_0" +" shifts69_0" +" #f)))" "(let-values()" "(raise-argument-error" " 'syntax-introducer" -" \"(or/c 'add 'remove 'flip)\"" -" mode_0))))))))))))))" +" \"(or/c 'add 'remove 'flip)\"" +" mode_0)))))))))" +"(let-values(((ctx_0)" +"(let-values(((temp71_0) #t))" +"(get-current-expand-context.1" +" temp71_0" +" 'unexpected))))" +"(begin" +"(if ctx_0" +"(let-values()" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'track-syntax" +" mode_0" +" new-s_0" +" s_0)))" +"(void))))" +"(void))" +" new-s_0))))))))))" "(case-lambda" "((s_0)(make-syntax-delta-introducer_0 s_0 'add))" -"((s_0 mode60_0)" +"((s_0 mode63_0)" "(make-syntax-delta-introducer_0" " s_0" -" mode60_0)))))))))))))))))))))))" +" mode63_0)))))))))))))))))))))))" "(case-lambda" "((ext-s_0 base-s_0)" "(begin 'make-syntax-delta-introducer(make-syntax-delta-introducer_0 ext-s_0 base-s_0 unsafe-undefined)))" @@ -46127,24 +46372,24 @@ static const char *startup_source = "(let-values()(raise-argument-error who_0 intdefs-or-false?-string intdefs_0)))" "(values))))" "(let-values(((current-ctx_0)" -"(let-values(((who69_0) who_0))(get-current-expand-context.1 #f who69_0))))" +"(let-values(((who73_0) who_0))(get-current-expand-context.1 #f who73_0))))" "(let-values(((ctx_0)" "(if intdefs_0" "(let-values(((v_0) current-ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((env70_0)" +"(let-values(((env74_0)" "(add-intdef-bindings" "(expand-context-env current-ctx_0)" " intdefs_0))" -"((inner71_0)(root-expand-context/outer-inner v_0)))" +"((inner75_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner71_0" +" inner75_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" "(expand-context/outer-context the-struct_0)" -" env70_0" +" env74_0" "(expand-context/outer-scopes the-struct_0)" "(expand-context/outer-def-ctx-scopes the-struct_0)" "(expand-context/outer-binding-layer the-struct_0)" @@ -46174,17 +46419,17 @@ static const char *startup_source = " 'loop" "(let-values(((b_0)" "(if immediate?_0" -"(let-values(((id72_0) id_1)" -"((phase73_0) phase_0)" -"((temp74_0) #t))" +"(let-values(((id76_0) id_1)" +"((phase77_0) phase_0)" +"((temp78_0) #t))" "(resolve+shift.1" " #f" " #f" " null" -" temp74_0" +" temp78_0" " #f" -" id72_0" -" phase73_0))" +" id76_0" +" phase77_0))" "(resolve+shift/extra-inspector" " id_1" " phase_0" @@ -46213,16 +46458,16 @@ static const char *startup_source = " (error who_0 \"unbound identifier: ~v\" id_1))))" "(let-values()" "(let-values(((v_0 primitive?_0 insp_0 protected?_0)" -"(let-values(((b75_0) b_0)" -"((ctx76_0) ctx_0)" -"((id77_0) id_1)" -"((temp78_0) #t))" +"(let-values(((b79_0) b_0)" +"((ctx80_0) ctx_0)" +"((id81_0) id_1)" +"((temp82_0) #t))" "(lookup.1" " #f" -" temp78_0" -" b75_0" -" ctx76_0" -" id77_0))))" +" temp82_0" +" b79_0" +" ctx80_0" +" id81_0))))" "(if(let-values(((or-part_0)(variable? v_0)))" "(if or-part_0 or-part_0(core-form? v_0)))" "(let-values()" @@ -46287,12 +46532,12 @@ static const char *startup_source = "(let-values(((failure-thunk_0) failure-thunk12_0))" "(let-values(((intdef_0) intdef13_0))" "(let-values()" -"(let-values(((temp79_0) 'syntax-local-value)" -"((temp80_0) #f)" -"((id81_0) id_0)" -"((intdef82_0) intdef_0)" -"((failure-thunk83_0) failure-thunk_0))" -"(do-syntax-local-value.1 temp80_0 temp79_0 id81_0 intdef82_0 failure-thunk83_0))))))))))" +"(let-values(((temp83_0) 'syntax-local-value)" +"((temp84_0) #f)" +"((id85_0) id_0)" +"((intdef86_0) intdef_0)" +"((failure-thunk87_0) failure-thunk_0))" +"(do-syntax-local-value.1 temp84_0 temp83_0 id85_0 intdef86_0 failure-thunk87_0))))))))))" "(case-lambda" "((id_0)(begin 'syntax-local-value(syntax-local-value_0 id_0 #f #f)))" "((id_0 failure-thunk_0 intdef13_0)(syntax-local-value_0 id_0 failure-thunk_0 intdef13_0))" @@ -46307,12 +46552,12 @@ static const char *startup_source = "(let-values(((failure-thunk_0) failure-thunk15_0))" "(let-values(((intdef_0) intdef16_0))" "(let-values()" -"(let-values(((temp84_0) 'syntax-local-value/immediate)" -"((temp85_0) #t)" -"((id86_0) id_0)" -"((intdef87_0) intdef_0)" -"((failure-thunk88_0) failure-thunk_0))" -"(do-syntax-local-value.1 temp85_0 temp84_0 id86_0 intdef87_0 failure-thunk88_0))))))))))" +"(let-values(((temp88_0) 'syntax-local-value/immediate)" +"((temp89_0) #t)" +"((id90_0) id_0)" +"((intdef91_0) intdef_0)" +"((failure-thunk92_0) failure-thunk_0))" +"(do-syntax-local-value.1 temp89_0 temp88_0 id90_0 intdef91_0 failure-thunk92_0))))))))))" "(case-lambda" "((id_0)(begin 'syntax-local-value/immediate(syntax-local-value/immediate_0 id_0 #f #f)))" "((id_0 failure-thunk_0 intdef16_0)(syntax-local-value/immediate_0 id_0 failure-thunk_0 intdef16_0))" @@ -46331,7 +46576,7 @@ static const char *startup_source = "(void)" " (let-values () (raise-argument-error who_0 \"exact-nonnegative-integer?\" n_0)))" "(values))))" -"(let-values(((ctx_0)(let-values(((who89_0) who_0))(get-current-expand-context.1 #f who89_0))))" +"(let-values(((ctx_0)(let-values(((who93_0) who_0))(get-current-expand-context.1 #f who93_0))))" "(let-values(((lifts_0)(expand-context-lifts ctx_0)))" "(let-values((()" "(begin" @@ -46386,18 +46631,15 @@ static const char *startup_source = " for-loop_0)" " null" " start_0))))))" +"(let-values(((added-s_0)(flip-introduction-scopes s_0 ctx_0)))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'lift-expr ids_0 s_0)))" +"(let-values()(let-values()(call-expand-observe obs_0 'lift-expr ids_0 s_0 added-s_0)))" "(void)))" "(map2" "(lambda(id_0)(flip-introduction-scopes id_0 ctx_0))" -"(add-lifted!" -" lifts_0" -" ids_0" -"(flip-introduction-scopes s_0 ctx_0)" -"(expand-context-phase ctx_0))))))))))))))" +"(add-lifted! lifts_0 ids_0 added-s_0(expand-context-phase ctx_0)))))))))))))))" "(define-values" "(1/syntax-local-lift-expression)" "(lambda(s_0)" @@ -46418,8 +46660,8 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values(((ctx_0)" -"(let-values(((who93_0) 'syntax-local-lift-context))" -"(get-current-expand-context.1 #f who93_0))))" +"(let-values(((who97_0) 'syntax-local-lift-context))" +"(get-current-expand-context.1 #f who97_0))))" "(root-expand-context-lift-key ctx_0)))))))" "(define-values" "(1/syntax-local-lift-module)" @@ -46435,76 +46677,81 @@ static const char *startup_source = " (let-values () (raise-argument-error 'syntax-local-lift-module \"syntax?\" s_0)))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((who95_0) 'syntax-local-lift-module))" -"(get-current-expand-context.1 #f who95_0))))" +"(let-values(((who99_0) 'syntax-local-lift-module))" +"(get-current-expand-context.1 #f who99_0))))" "(let-values(((phase_0)(expand-context-phase ctx_0)))" -"(begin" "(let-values(((tmp_0)(core-form-sym s_0 phase_0)))" "(if(if(equal? tmp_0 'module) #t(equal? tmp_0 'module*))" "(let-values()" "(let-values(((lifts_0)(expand-context-module-lifts ctx_0)))" +"(let-values((()" "(begin" "(if lifts_0" "(void)" "(let-values()" "(raise-arguments-error" " 'syntax-local-lift-module" -" \"not currently transforming within a module declaration or top level\"" -" \"form to lift\"" +" \"not currently transforming within a module declaration or top level\"" +" \"form to lift\"" " s_0)))" -"(add-lifted-module! lifts_0(flip-introduction-scopes s_0 ctx_0) phase_0))))" -"(let-values()" -" (raise-arguments-error 'syntax-local-lift-module \"not a module form\" \"given form\" s_0))))" +"(values))))" +"(let-values(((added-s_0)(flip-introduction-scopes s_0 ctx_0)))" +"(begin" +"(add-lifted-module! lifts_0 added-s_0 phase_0)" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'lift-statement s_0)))" -"(void))))))))))))" +"(let-values()(let-values()(call-expand-observe obs_0 'lift-module s_0 added-s_0)))" +"(void))))))))" +"(let-values()" +" (raise-arguments-error 'syntax-local-lift-module \"not a module form\" \"given form\" s_0))))))))))))" "(define-values" "(do-local-lift-to-module.1)" -"(lambda(add-lifted!22_0" -" get-lift-ctx21_0" -" get-wrt-phase23_0" -" intro?19_0" -" more-checks20_0" -" no-target-msg18_0" -" post-wrap26_0" -" pre-wrap24_0" -" shift-wrap25_0" -" who36_0" -" s37_0)" +"(lambda(add-lifted!23_0" +" get-lift-ctx22_0" +" get-wrt-phase24_0" +" intro?20_0" +" log-tag18_0" +" more-checks21_0" +" no-target-msg19_0" +" post-wrap27_0" +" pre-wrap25_0" +" shift-wrap26_0" +" who38_0" +" s39_0)" "(begin" " 'do-local-lift-to-module" -"(let-values(((who_0) who36_0))" -"(let-values(((s_0) s37_0))" -"(let-values(((no-target-msg_0) no-target-msg18_0))" -"(let-values(((intro?_0) intro?19_0))" -"(let-values(((more-checks_0)(if(eq? more-checks20_0 unsafe-undefined) void more-checks20_0)))" -"(let-values(((get-lift-ctx_0) get-lift-ctx21_0))" -"(let-values(((add-lifted!_0) add-lifted!22_0))" -"(let-values(((get-wrt-phase_0) get-wrt-phase23_0))" +"(let-values(((who_0) who38_0))" +"(let-values(((s_0) s39_0))" +"(let-values(((log-tag_0) log-tag18_0))" +"(let-values(((no-target-msg_0) no-target-msg19_0))" +"(let-values(((intro?_0) intro?20_0))" +"(let-values(((more-checks_0)(if(eq? more-checks21_0 unsafe-undefined) void more-checks21_0)))" +"(let-values(((get-lift-ctx_0) get-lift-ctx22_0))" +"(let-values(((add-lifted!_0) add-lifted!23_0))" +"(let-values(((get-wrt-phase_0) get-wrt-phase24_0))" "(let-values(((pre-wrap_0)" -"(if(eq? pre-wrap24_0 unsafe-undefined)" +"(if(eq? pre-wrap25_0 unsafe-undefined)" "(lambda(s_1 phase_0 lift-ctx_0)(begin 'pre-wrap s_1))" -" pre-wrap24_0)))" +" pre-wrap25_0)))" "(let-values(((shift-wrap_0)" -"(if(eq? shift-wrap25_0 unsafe-undefined)" +"(if(eq? shift-wrap26_0 unsafe-undefined)" "(lambda(s_1 phase_0 lift-ctx_0)(begin 'shift-wrap s_1))" -" shift-wrap25_0)))" +" shift-wrap26_0)))" "(let-values(((post-wrap_0)" -"(if(eq? post-wrap26_0 unsafe-undefined)" +"(if(eq? post-wrap27_0 unsafe-undefined)" "(lambda(s_1 phase_0 lift-ctx_0)(begin 'post-wrap s_1))" -" post-wrap26_0)))" +" post-wrap27_0)))" "(let-values()" "(let-values((()" "(begin" "(if(syntax?$1 s_0)" "(void)" -" (let-values () (raise-argument-error who_0 \"syntax?\" s_0)))" +" (let-values () (raise-argument-error who_0 \"syntax?\" s_0)))" "(values))))" "(let-values((()(begin(more-checks_0)(values))))" "(let-values(((ctx_0)" -"(let-values(((who96_0) who_0))" -"(get-current-expand-context.1 #f who96_0))))" +"(let-values(((who100_0) who_0))" +"(get-current-expand-context.1 #f who100_0))))" "(let-values(((lift-ctx_0)(get-lift-ctx_0 ctx_0)))" "(let-values((()" "(begin" @@ -46514,7 +46761,7 @@ static const char *startup_source = "(raise-arguments-error" " who_0" " no-target-msg_0" -" \"form to lift\"" +" \"form to lift\"" " s_0)))" "(values))))" "(let-values(((phase_0)(expand-context-phase ctx_0)))" @@ -46562,8 +46809,22 @@ static const char *startup_source = "(let-values(((post-s_0)" "(post-wrap_0 shift-s_0 wrt-phase_0 lift-ctx_0)))" "(begin" +"(if log-tag_0" +"(let-values()" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" log-tag_0" +" s_0" +" added-s_0" +" post-s_0)))" +"(void))))" +"(void))" "(add-lifted!_0 lift-ctx_0 post-s_0 wrt-phase_0)" -"(values ctx_0 post-s_0))))))))))))))))))))))))))))" +"(values ctx_0 post-s_0)))))))))))))))))))))))))))))" "(define-values" "(1/syntax-local-lift-require)" "(lambda(s_0 use-s_0)" @@ -46573,41 +46834,46 @@ static const char *startup_source = "(let-values()" "(let-values(((sc_0)(new-scope 'lifted-require)))" "(let-values(((ctx_0 added-s_0)" -"(let-values(((who98_0) 'syntax-local-lift-require)" -"((temp99_0)(datum->syntax$1 #f s_0))" -" ((temp100_0) \"could not find target context\")" -"((temp101_0) #f)" -"((temp102_0)" +"(let-values(((who102_0) 'syntax-local-lift-require)" +"((temp103_0)(datum->syntax$1 #f s_0))" +" ((temp104_0) \"could not find target context\")" +"((temp105_0) #f)" +"((temp106_0)" "(lambda()" "(if(syntax?$1 use-s_0)" "(void)" "(let-values()" " (raise-argument-error 'syntax-local-lift-require \"syntax?\" use-s_0)))))" -"((expand-context-require-lifts103_0) expand-context-require-lifts)" -"((require-lift-context-wrt-phase104_0) require-lift-context-wrt-phase)" -"((add-lifted-require!105_0) add-lifted-require!)" -"((temp106_0)" +"((expand-context-require-lifts107_0) expand-context-require-lifts)" +"((require-lift-context-wrt-phase108_0) require-lift-context-wrt-phase)" +"((add-lifted-require!109_0) add-lifted-require!)" +"((temp110_0)" "(lambda(s_1 phase_0 require-lift-ctx_0)(require-spec-shift-for-syntax s_1)))" -"((temp107_0)" +"((temp111_0)" "(lambda(s_1 phase_0 require-lift-ctx_0)" "(wrap-form '#%require(add-scope s_1 sc_0) phase_0))))" "(do-local-lift-to-module.1" -" add-lifted-require!105_0" -" expand-context-require-lifts103_0" -" require-lift-context-wrt-phase104_0" -" temp101_0" -" temp102_0" -" temp100_0" -" temp107_0" -" unsafe-undefined" +" add-lifted-require!109_0" +" expand-context-require-lifts107_0" +" require-lift-context-wrt-phase108_0" +" temp105_0" +" #f" " temp106_0" -" who98_0" -" temp99_0))))" +" temp104_0" +" temp111_0" +" unsafe-undefined" +" temp110_0" +" who102_0" +" temp103_0))))" "(let-values((()" "(begin" +"(with-continuation-mark" +" current-expand-context" +" #f" +"(let-values()" "(namespace-visit-available-modules!" "(expand-context-namespace ctx_0)" -"(expand-context-phase ctx_0))" +"(expand-context-phase ctx_0))))" "(values))))" "(let-values(((result-s_0)(add-scope use-s_0 sc_0)))" "(begin" @@ -46625,28 +46891,29 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values(((ctx_0 result-s_0)" -"(let-values(((who109_0) 'syntax-local-lift-provide)" -"((s110_0) s_0)" -" ((temp111_0) \"not expanding in a module run-time body\")" -"((expand-context-to-module-lifts112_0) expand-context-to-module-lifts)" -"((to-module-lift-context-wrt-phase113_0) to-module-lift-context-wrt-phase)" -"((add-lifted-to-module-provide!114_0) add-lifted-to-module-provide!)" -"((temp115_0)" +"(let-values(((who113_0) 'syntax-local-lift-provide)" +"((s114_0) s_0)" +" ((temp115_0) \"not expanding in a module run-time body\")" +"((expand-context-to-module-lifts116_0) expand-context-to-module-lifts)" +"((to-module-lift-context-wrt-phase117_0) to-module-lift-context-wrt-phase)" +"((add-lifted-to-module-provide!118_0) add-lifted-to-module-provide!)" +"((temp119_0)" "(lambda(s_1 phase_0 to-module-lift-ctx_0)(wrap-form 'for-syntax s_1 #f)))" -"((temp116_0)" +"((temp120_0)" "(lambda(s_1 phase_0 to-module-lift-ctx_0)(wrap-form '#%provide s_1 phase_0))))" "(do-local-lift-to-module.1" -" add-lifted-to-module-provide!114_0" -" expand-context-to-module-lifts112_0" -" to-module-lift-context-wrt-phase113_0" +" add-lifted-to-module-provide!118_0" +" expand-context-to-module-lifts116_0" +" to-module-lift-context-wrt-phase117_0" " #t" -" unsafe-undefined" -" temp111_0" -" temp116_0" +" #f" " unsafe-undefined" " temp115_0" -" who109_0" -" s110_0))))" +" temp120_0" +" unsafe-undefined" +" temp119_0" +" who113_0" +" s114_0))))" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()(let-values()(call-expand-observe obs_0 'lift-provide result-s_0)))" @@ -46659,35 +46926,36 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values(((ctx_0 also-s_0)" -"(let-values(((who118_0) 'syntax-local-lift-module-end-declaration)" -"((s119_0) s_0)" -"((temp120_0)" +"(let-values(((who122_0) 'syntax-local-lift-module-end-declaration)" +"((s123_0) s_0)" +"((temp124_0) 'lift-end-decl)" +"((temp125_0)" " \"not currently transforming an expression within a module declaration\")" -"((expand-context-to-module-lifts121_0) expand-context-to-module-lifts)" -"((temp122_0)(lambda(lift-ctx_0) 0))" -"((add-lifted-to-module-end!123_0) add-lifted-to-module-end!)" -"((temp124_0)" +"((expand-context-to-module-lifts126_0) expand-context-to-module-lifts)" +"((temp127_0)(lambda(lift-ctx_0) 0))" +"((add-lifted-to-module-end!128_0) add-lifted-to-module-end!)" +"((temp129_0)" "(lambda(orig-s_0 phase_0 to-module-lift-ctx_0)" "(if(to-module-lift-context-end-as-expressions? to-module-lift-ctx_0)" "(wrap-form '#%expression orig-s_0 phase_0)" " orig-s_0)))" -"((temp125_0)" +"((temp130_0)" "(lambda(s_1 phase_0 to-module-lift-ctx_0)" "(wrap-form 'begin-for-syntax s_1 phase_0))))" "(do-local-lift-to-module.1" -" add-lifted-to-module-end!123_0" -" expand-context-to-module-lifts121_0" -" temp122_0" +" add-lifted-to-module-end!128_0" +" expand-context-to-module-lifts126_0" +" temp127_0" " #t" -" unsafe-undefined" -" temp120_0" -" unsafe-undefined" " temp124_0" +" unsafe-undefined" " temp125_0" -" who118_0" -" s119_0))))" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'lift-statement s_0)))(void)))))))))" +" unsafe-undefined" +" temp129_0" +" temp130_0" +" who122_0" +" s123_0))))" +"(void)))))))" "(define-values" "(wrap-form)" "(lambda(sym_0 s_0 phase_0)" @@ -46712,8 +46980,8 @@ static const char *startup_source = " \"not currently transforming module provides\")))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((temp127_0) 'syntax-local-module-defined-identifiers))" -"(get-current-expand-context.1 #f temp127_0))))" +"(let-values(((temp132_0) 'syntax-local-module-defined-identifiers))" +"(get-current-expand-context.1 #f temp132_0))))" "(requireds->phase-ht(extract-module-definitions(expand-context-requires+provides ctx_0))))))))))" "(define-values" "(1/syntax-local-module-required-identifiers)" @@ -46754,8 +47022,8 @@ static const char *startup_source = " \"not currently transforming module provides\")))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((temp129_0) 'syntax-local-module-required-identifiers))" -"(get-current-expand-context.1 #f temp129_0))))" +"(let-values(((temp134_0) 'syntax-local-module-required-identifiers))" +"(get-current-expand-context.1 #f temp134_0))))" "(let-values(((requires+provides_0)(expand-context-requires+provides ctx_0)))" "(let-values(((mpi_0)(if mod-path_0(module-path->mpi/context mod-path_0 ctx_0) #f)))" "(let-values(((requireds_0)" @@ -46846,8 +47114,8 @@ static const char *startup_source = " mod-path_0)))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((temp131_0) 'syntax-local-module-exports))" -"(get-current-expand-context.1 #f temp131_0))))" +"(let-values(((temp136_0) 'syntax-local-module-exports))" +"(get-current-expand-context.1 #f temp136_0))))" "(let-values(((ns_0)(expand-context-namespace ctx_0)))" "(let-values(((mod-name_0)" "(1/module-path-index-resolve" @@ -46940,8 +47208,8 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values(((ctx_0)" -"(let-values(((who133_0) 'syntax-local-submodules))" -"(get-current-expand-context.1 #f who133_0))))" +"(let-values(((who138_0) 'syntax-local-submodules))" +"(get-current-expand-context.1 #f who138_0))))" "(let-values(((submods_0)(expand-context-declared-submodule-names ctx_0)))" "(reverse$1" "(let-values(((ht_0) submods_0))" @@ -46974,12 +47242,22 @@ static const char *startup_source = " null" "(hash-iterate-first ht_0))))))))))))" "(define-values" +"(syntax-local-expand-observer)" +"(lambda()" +"(begin" +"(let-values()" +"(let-values()" +"(let-values(((ctx_0)" +"(let-values(((temp140_0) 'syntax-local-expand-observer))" +"(get-current-expand-context.1 #f temp140_0))))" +"(expand-context-observer ctx_0)))))))" +"(define-values" "(1/syntax-local-get-shadower)" "(let-values(((syntax-local-get-shadower_0)" -"(lambda(id40_0 only-generated?39_0)" +"(lambda(id42_0 only-generated?41_0)" "(begin" " 'syntax-local-get-shadower" -"(let-values(((id_0) id40_0))" +"(let-values(((id_0) id42_0))" "(let-values()" "(let-values()" "(let-values()" @@ -46992,13 +47270,13 @@ static const char *startup_source = " (raise-argument-error 'syntax-local-get-shadower \"identifier?\" id_0)))" "(values))))" "(let-values(((ctx_0)" -"(let-values(((who135_0) 'syntax-local-get-shadower))" -"(get-current-expand-context.1 #f who135_0))))" +"(let-values(((who142_0) 'syntax-local-get-shadower))" +"(get-current-expand-context.1 #f who142_0))))" "(let-values(((new-id_0)(add-scopes id_0(expand-context-scopes ctx_0))))" "(if(syntax-clean? id_0) new-id_0(syntax-taint$1 new-id_0))))))))))))))" "(case-lambda" "((id_0)(begin 'syntax-local-get-shadower(syntax-local-get-shadower_0 id_0 #f)))" -"((id_0 only-generated?39_0)(syntax-local-get-shadower_0 id_0 only-generated?39_0)))))" +"((id_0 only-generated?41_0)(syntax-local-get-shadower_0 id_0 only-generated?41_0)))))" "(define-values" "(1/syntax-source)" "(lambda(s_0)" @@ -47777,7 +48055,8 @@ static const char *startup_source = "(let-values()" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'track-origin new-stx_0 s_0)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'track-syntax 'track-origin new-stx_0 s_0)))" "(void))))" "(void))" " s_0)))))))))))" @@ -49423,69 +49702,33 @@ static const char *startup_source = " exp-s115_0" " rebuild-s116_0)))" "(let-values()" -"(let-values((()" -"(begin" -"(log-top-lift-begin-before ctx_0 require-lifts_0 lifts_0 exp-s_0 ns_0)" -"(values))))" "(let-values(((new-s_0)" -"(let-values(((temp123_0)(append require-lifts_0 lifts_0))" -"((temp124_0)" -"(lambda(form_0)" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe obs_0 'next)))" -"(void)))" -"(let-values(((form128_0) form_0)" -"((ns129_0) ns_0)" -"((observer130_0) observer_0)" -"((to-parsed?131_0) to-parsed?_0)" -"((serializable?132_0) serializable?_0))" -"(expand-single.1" -" serializable?132_0" -" #f" -" form128_0" -" ns129_0" -" observer130_0" -" to-parsed?131_0)))))" -"((temp125_0)" -"(lambda(form_0)" -"(if to-parsed?_0" -"(let-values() form_0)" -"(let-values()" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe obs_0 'next)))" -"(void)))" -"(let-values(((form133_0) form_0)" -"((ns134_0) ns_0)" -"((observer135_0) observer_0)" -"((to-parsed?136_0) to-parsed?_0)" -"((serializable?137_0)" -" serializable?_0))" -"(expand-single.1" -" serializable?137_0" -" #f" -" form133_0" -" ns134_0" -" observer135_0" -" to-parsed?136_0)))))))" -"((exp-s126_0) exp-s_0)" -"((temp127_0)(namespace-phase ns_0)))" +"(let-values(((temp128_0)(append require-lifts_0 lifts_0))" +"((exp-s129_0) exp-s_0)" +"((temp130_0)(namespace-phase ns_0)))" "(wrap-lifts-as-begin.1" -" temp125_0" -" temp124_0" -" temp123_0" -" exp-s126_0" -" temp127_0))))" -"(begin(log-top-begin-after ctx_0 new-s_0) new-s_0)))))))))))))))))))" +" unsafe-undefined" +" unsafe-undefined" +" temp128_0" +" exp-s129_0" +" temp130_0))))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'lift-loop new-s_0)))" +"(void)))" +"(let-values(((new-s123_0) new-s_0)" +"((ns124_0) ns_0)" +"((observer125_0) observer_0)" +"((to-parsed?126_0) to-parsed?_0)" +"((serializable?127_0) serializable?_0))" +"(expand-single.1" +" serializable?127_0" +" #f" +" new-s123_0" +" ns124_0" +" observer125_0" +" to-parsed?126_0))))))))))))))))))))" "(define-values" "(expand-once$1)" "(let-values(((expand-once_0)" @@ -49495,23 +49738,23 @@ static const char *startup_source = "(let-values(((s_0) s36_0))" "(let-values(((ns_0)(if(eq? ns35_0 unsafe-undefined)(1/current-namespace) ns35_0)))" "(let-values()" -"(let-values(((s138_0) s_0)" -"((ns139_0) ns_0)" -"((temp140_0)(lambda(s_1 ns_1 as-tail?_0)(expand-single-once s_1 ns_1)))" -"((cons141_0) cons)" -"((re-pair142_0) re-pair)" -"((temp143_0) #t)" -"((temp144_0) #f))" +"(let-values(((s131_0) s_0)" +"((ns132_0) ns_0)" +"((temp133_0)(lambda(s_1 ns_1 as-tail?_0)(expand-single-once s_1 ns_1)))" +"((cons134_0) cons)" +"((re-pair135_0) re-pair)" +"((temp136_0) #t)" +"((temp137_0) #f))" "(per-top-level.1" -" cons141_0" -" temp143_0" -" temp144_0" +" cons134_0" +" temp136_0" +" temp137_0" " #t" " #f" -" temp140_0" -" re-pair142_0" -" s138_0" -" ns139_0)))))))))" +" temp133_0" +" re-pair135_0" +" s131_0" +" ns132_0)))))))))" "(case-lambda" "((s_0)(begin 'expand-once(expand-once_0 s_0 unsafe-undefined)))" "((s_0 ns35_0)(expand-once_0 s_0 ns35_0)))))" @@ -49522,13 +49765,13 @@ static const char *startup_source = "(let-values(((require-lifts_0 lifts_0 exp-s_0)" "(expand-capturing-lifts" " s_0" -"(let-values(((v_0)(let-values(((ns145_0) ns_0))(make-expand-context.1 #f #f #f #f ns145_0))))" +"(let-values(((v_0)(let-values(((ns138_0) ns_0))(make-expand-context.1 #f #f #f #f ns138_0))))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((inner146_0)" +"(let-values(((inner139_0)" "(let-values(((the-struct_1)(root-expand-context/outer-inner v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((just-once?147_0) #t))" +"(let-values(((just-once?140_0) #t))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi the-struct_1)" "(root-expand-context/inner-module-scopes the-struct_1)" @@ -49540,7 +49783,7 @@ static const char *startup_source = "(expand-context/inner-to-parsed? the-struct_1)" "(expand-context/inner-phase the-struct_1)" "(expand-context/inner-namespace the-struct_1)" -" just-once?147_0" +" just-once?140_0" "(expand-context/inner-module-begin-k the-struct_1)" "(expand-context/inner-allow-unbound? the-struct_1)" "(expand-context/inner-in-local-expand? the-struct_1)" @@ -49563,7 +49806,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner146_0" +" inner139_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" @@ -49582,10 +49825,10 @@ static const char *startup_source = "(if(if(null? require-lifts_0)(null? lifts_0) #f)" "(let-values() exp-s_0)" "(let-values()" -"(let-values(((temp148_0)(append require-lifts_0 lifts_0))" -"((exp-s149_0) exp-s_0)" -"((temp150_0)(namespace-phase ns_0)))" -"(wrap-lifts-as-begin.1 unsafe-undefined unsafe-undefined temp148_0 exp-s149_0 temp150_0))))))))" +"(let-values(((temp141_0)(append require-lifts_0 lifts_0))" +"((exp-s142_0) exp-s_0)" +"((temp143_0)(namespace-phase ns_0)))" +"(wrap-lifts-as-begin.1 unsafe-undefined unsafe-undefined temp141_0 exp-s142_0 temp143_0))))))))" "(define-values" "(expand-to-top-form$1)" "(let-values(((expand-to-top-form_0)" @@ -49605,21 +49848,21 @@ static const char *startup_source = " current-expand-observe" " #f)" "(let-values()" -"(let-values(((s151_0) s_0)" -"((ns152_0) ns_0)" -"((temp153_0) #f)" -"((temp154_0) #f)" -"((observer155_0) observer_0))" +"(let-values(((s144_0) s_0)" +"((ns145_0) ns_0)" +"((temp146_0) #f)" +"((temp147_0) #f)" +"((observer148_0) observer_0))" "(per-top-level.1" " #f" " #f" -" observer155_0" -" temp154_0" +" observer148_0" +" temp147_0" " #f" -" temp153_0" +" temp146_0" " #f" -" s151_0" -" ns152_0)))))))))))))" +" s144_0" +" ns145_0)))))))))))))" "(case-lambda" "((s_0)(begin 'expand-to-top-form(expand-to-top-form_0 s_0 unsafe-undefined)))" "((s_0 ns37_0)(expand-to-top-form_0 s_0 ns37_0)))))" @@ -49648,8 +49891,8 @@ static const char *startup_source = "(let-values()" "(let-values(((s_0)(maybe-intro given-s_0 ns_0)))" "(let-values(((ctx_0)" -"(let-values(((ns156_0) ns_0)((observer157_0) observer_0))" -"(make-expand-context.1 #f observer157_0 #f #f ns156_0))))" +"(let-values(((ns149_0) ns_0)((observer150_0) observer_0))" +"(make-expand-context.1 #f observer150_0 #f #f ns149_0))))" "(let-values(((phase_0)(namespace-phase ns_0)))" "((letrec-values(((loop_0)" "(lambda(s_1 phase_1 ns_1 as-tail?_0)" @@ -49659,19 +49902,19 @@ static const char *startup_source = "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((inner158_0)" +"(let-values(((inner151_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((phase159_0)" +"(let-values(((phase152_0)" " phase_1)" -"((namespace160_0)" +"((namespace153_0)" " ns_1)" -"((just-once?161_0)" +"((just-once?154_0)" " just-once?_0)" -"((for-serializable?162_0)" +"((for-serializable?155_0)" " serializable?_0))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -49690,9 +49933,9 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-to-parsed?" " the-struct_1)" -" phase159_0" -" namespace160_0" -" just-once?161_0" +" phase152_0" +" namespace153_0" +" just-once?154_0" "(expand-context/inner-module-begin-k" " the-struct_1)" "(expand-context/inner-allow-unbound?" @@ -49719,7 +49962,7 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-observer" " the-struct_1)" -" for-serializable?162_0" +" for-serializable?155_0" "(expand-context/inner-to-correlated-linklet?" " the-struct_1)" "(expand-context/inner-normalize-locals?" @@ -49731,7 +49974,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner158_0" +" inner151_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -49781,17 +50024,17 @@ static const char *startup_source = "(let-values(((v_0) tl-ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((only-immediate?163_0)" +"(let-values(((only-immediate?156_0)" " #t)" -"((inner164_0)" +"((inner157_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((phase165_0)" +"(let-values(((phase158_0)" " phase_1)" -"((namespace166_0)" +"((namespace159_0)" " ns_1))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -49810,8 +50053,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-to-parsed?" " the-struct_1)" -" phase165_0" -" namespace166_0" +" phase158_0" +" namespace159_0" "(expand-context/inner-just-once?" " the-struct_1)" "(expand-context/inner-module-begin-k" @@ -49853,7 +50096,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner164_0" +" inner157_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -49872,7 +50115,7 @@ static const char *startup_source = " the-struct_0)" "(expand-context/outer-reference-records" " the-struct_0)" -" only-immediate?163_0" +" only-immediate?156_0" "(expand-context/outer-need-eventually-defined" " the-struct_0)" "(expand-context/outer-current-introduction-scopes" @@ -49891,18 +50134,18 @@ static const char *startup_source = "(if or-part_0 or-part_0(pair? lifts_0)))" "(let-values()" "(let-values(((new-s_0)" -"(let-values(((temp167_0)" +"(let-values(((temp160_0)" "(append" " require-lifts_0" " lifts_0))" -"((exp-s168_0) exp-s_0)" -"((phase169_0) phase_1))" +"((exp-s161_0) exp-s_0)" +"((phase162_0) phase_1))" "(wrap-lifts-as-begin.1" " unsafe-undefined" " unsafe-undefined" -" temp167_0" -" exp-s168_0" -" phase169_0))))" +" temp160_0" +" exp-s161_0" +" phase162_0))))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -49952,16 +50195,17 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'prim-begin)))" +" 'prim-begin" +" disarmed-exp-s_0)))" "(void)))" "(values))))" -"(let-values(((ok?_0 begin170_0 e171_0)" +"(let-values(((ok?_0 begin163_0 e164_0)" "(let-values(((s_2)" " disarmed-exp-s_0))" "(let-values(((orig-s_0)" " s_2))" -"(let-values(((begin170_0" -" e171_0)" +"(let-values(((begin163_0" +" e164_0)" "(let-values(((s_3)" "(if(syntax?$1" " s_2)" @@ -49970,12 +50214,12 @@ static const char *startup_source = " s_2)))" "(if(pair?" " s_3)" -"(let-values(((begin172_0)" +"(let-values(((begin165_0)" "(let-values(((s_4)" "(car" " s_3)))" " s_4))" -"((e173_0)" +"((e166_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -49998,16 +50242,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin172_0" -" e173_0))" +" begin165_0" +" e166_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin170_0" -" e171_0))))))" +" begin163_0" +" e164_0))))))" "(letrec-values(((begin-loop_0)" "(lambda(es_0)" "(begin" @@ -50072,10 +50316,10 @@ static const char *startup_source = "(let-values()" "(let-values(((new-s_0)" "(wrap_0" -" begin170_0" +" begin163_0" " exp-s_0" "(begin-loop_0" -" e171_0))))" +" e164_0))))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -50090,7 +50334,7 @@ static const char *startup_source = "(void)))" " new-s_0)))" "(let-values()" -"(begin-loop_0 e171_0)))))))" +"(begin-loop_0 e164_0)))))))" "(if(equal? tmp_0 'begin-for-syntax)" "(let-values()" "(let-values((()" @@ -50103,18 +50347,19 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'prim-begin-for-syntax)))" +" 'prim-begin-for-syntax" +" disarmed-exp-s_0)))" "(void)))" "(values))))" "(let-values(((ok?_0" -" begin-for-syntax174_0" -" e175_0)" +" begin-for-syntax167_0" +" e168_0)" "(let-values(((s_2)" " disarmed-exp-s_0))" "(let-values(((orig-s_0)" " s_2))" -"(let-values(((begin-for-syntax174_0" -" e175_0)" +"(let-values(((begin-for-syntax167_0" +" e168_0)" "(let-values(((s_3)" "(if(syntax?$1" " s_2)" @@ -50123,12 +50368,12 @@ static const char *startup_source = " s_2)))" "(if(pair?" " s_3)" -"(let-values(((begin-for-syntax176_0)" +"(let-values(((begin-for-syntax169_0)" "(let-values(((s_4)" "(car" " s_3)))" " s_4))" -"((e177_0)" +"((e170_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -50151,16 +50396,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin-for-syntax176_0" -" e177_0))" +" begin-for-syntax169_0" +" e170_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin-for-syntax174_0" -" e175_0))))))" +" begin-for-syntax167_0" +" e168_0))))))" "(let-values(((next-phase_0)" "(add1 phase_1)))" "(let-values(((next-ns_0)" @@ -50196,7 +50441,7 @@ static const char *startup_source = "(let-values(((l_0)" "(reverse$1" "(let-values(((lst_0)" -" e175_0))" +" e168_0))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -50257,7 +50502,7 @@ static const char *startup_source = "(let-values()" "(let-values(((new-s_0)" "(wrap_0" -" begin-for-syntax174_0" +" begin-for-syntax167_0" " exp-s_0" " l_0)))" "(begin" @@ -50308,26 +50553,26 @@ static const char *startup_source = "(let-values(((ns_0)(expand-context-namespace ctx_0)))" "(let-values((()(begin(namespace-visit-available-modules! ns_0)(values))))" "(let-values(((lift-ctx_0)" -"(let-values(((temp178_0)(make-top-level-lift ctx_0)))" -"(make-lift-context.1 #f temp178_0))))" +"(let-values(((temp171_0)(make-top-level-lift ctx_0)))" +"(make-lift-context.1 #f temp171_0))))" "(let-values(((require-lift-ctx_0)" "(make-require-lift-context" "(namespace-phase ns_0)" "(make-parse-top-lifted-require ns_0))))" "(let-values(((exp-s_0)" -"(let-values(((s179_0) s_0)" -"((temp180_0)" +"(let-values(((s172_0) s_0)" +"((temp173_0)" "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((inner181_0)" +"(let-values(((inner174_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((lifts182_0) lift-ctx_0)" -"((module-lifts183_0) lift-ctx_0)" -"((require-lifts184_0)" +"(let-values(((lifts175_0) lift-ctx_0)" +"((module-lifts176_0) lift-ctx_0)" +"((require-lifts177_0)" " require-lift-ctx_0))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -50361,10 +50606,10 @@ static const char *startup_source = "(expand-context/inner-stops the-struct_1)" "(expand-context/inner-declared-submodule-names" " the-struct_1)" -" lifts182_0" +" lifts175_0" "(expand-context/inner-lift-envs the-struct_1)" -" module-lifts183_0" -" require-lifts184_0" +" module-lifts176_0" +" require-lifts177_0" "(expand-context/inner-to-module-lifts" " the-struct_1)" "(expand-context/inner-requires+provides" @@ -50383,7 +50628,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner181_0" +" inner174_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" @@ -50402,7 +50647,7 @@ static const char *startup_source = " 'struct-copy" " \"expand-context/outer?\"" " the-struct_0))))))" -"(expand.1 #f #f #f s179_0 temp180_0))))" +"(expand.1 #f #f s172_0 temp173_0))))" "(values" "(get-and-clear-require-lifts! require-lift-ctx_0)" "(get-and-clear-lifts! lift-ctx_0)" @@ -50413,19 +50658,19 @@ static const char *startup_source = "(lambda(ns_0)" "(begin" "(lambda(s_0 phase_0)" -"(let-values(((ok?_0 #%require185_0 req186_0)" +"(let-values(((ok?_0 #%require178_0 req179_0)" "(let-values(((s_1)(syntax-disarm$1 s_0)))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%require185_0 req186_0)" +"(let-values(((#%require178_0 req179_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%require187_0)(let-values(((s_3)(car s_2))) s_3))" -"((req188_0)" +"(let-values(((#%require180_0)(let-values(((s_3)(car s_2))) s_3))" +"((req181_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((req189_0)" +"(let-values(((req182_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -50439,34 +50684,34 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values req189_0))" +"(values req182_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values #%require187_0 req188_0))" +"(values #%require180_0 req181_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%require185_0 req186_0))))))" -"(let-values(((temp190_0)(list req186_0))" -"((s191_0) s_0)" -"((ns192_0) ns_0)" -"((phase193_0) phase_0)" -"((phase194_0) phase_0)" -"((temp195_0)(let-values(((temp197_0) #f))(make-requires+provides.1 #f temp197_0)))" -"((temp196_0) 'require))" +"(values #t #%require178_0 req179_0))))))" +"(let-values(((temp183_0)(list req179_0))" +"((s184_0) s_0)" +"((ns185_0) ns_0)" +"((phase186_0) phase_0)" +"((phase187_0) phase_0)" +"((temp188_0)(let-values(((temp190_0) #f))(make-requires+provides.1 #f temp190_0)))" +"((temp189_0) 'require))" "(parse-and-perform-requires!.1" " #f" " #f" " unsafe-undefined" " #f" -" phase194_0" +" phase187_0" " #f" " #f" " #f" " #t" -" temp196_0" -" temp190_0" -" s191_0" -" ns192_0" -" phase193_0" -" temp195_0)))))))" +" temp189_0" +" temp183_0" +" s184_0" +" ns185_0" +" phase186_0" +" temp188_0)))))))" "(define-values" "(wrap-lifts-as-lifted-parsed-begin.1)" "(lambda(adjust-form56_0 require-lifts58_0 lifts59_0 exp-s60_0 rebuild-s61_0)" @@ -50550,12 +50795,12 @@ static const char *startup_source = " exp-rhs_0))" "(if(lifted-parsed-begin?" " the-struct_0)" -"(let-values(((last198_0)" +"(let-values(((last191_0)" " dv_0))" "(lifted-parsed-begin11.1" "(lifted-parsed-begin-seq" " the-struct_0)" -" last198_0))" +" last191_0))" "(raise-argument-error" " 'struct-copy" " \"lifted-parsed-begin?\"" @@ -50569,93 +50814,6 @@ static const char *startup_source = " null" " lst_0)))))" " exp-s_0))))))))))" -"(define-values" -"(log-top-lift-begin-before)" -"(lambda(ctx_0 require-lifts_0 lifts_0 exp-s_0 ns_0)" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values(((new-s_0)" -"(let-values(((temp199_0)(append require-lifts_0 lifts_0))" -"((exp-s200_0) exp-s_0)" -"((temp201_0)(namespace-phase ns_0)))" -"(wrap-lifts-as-begin.1 unsafe-undefined unsafe-undefined temp199_0 exp-s200_0 temp201_0))))" -"(begin(call-expand-observe obs_0 'lift-loop new-s_0)(log-top-begin-before ctx_0 new-s_0))))" -"(void))))))" -"(define-values" -"(log-top-begin-before)" -"(lambda(ctx_0 new-s_0)" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values(((ok?_0 begin202_0 e203_0)" -"(let-values(((s_0) new-s_0))" -"(let-values(((orig-s_0) s_0))" -"(let-values(((begin202_0 e203_0)" -"(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" -"(if(pair? s_1)" -"(let-values(((begin204_0)(let-values(((s_2)(car s_1))) s_2))" -"((e205_0)" -"(let-values(((s_2)(cdr s_1)))" -"(let-values(((s_3)" -"(if(syntax?$1 s_2)" -"(syntax-e$1 s_2)" -" s_2)))" -"(let-values(((flat-s_0)(to-syntax-list.1 s_3)))" -"(if(not flat-s_0)" -"(let-values()" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" -"(let-values() flat-s_0)))))))" -"(values begin204_0 e205_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t begin202_0 e203_0))))))" -"(begin" -"(call-expand-observe obs_0 'visit new-s_0)" -"(call-expand-observe obs_0 'resolve begin202_0)" -"(call-expand-observe obs_0 'enter-prim new-s_0)" -"(call-expand-observe obs_0 'prim-begin)" -"(call-expand-observe obs_0 'enter-list(1/datum->syntax #f e203_0 new-s_0)))))" -"(void))))))" -"(define-values" -"(log-top-begin-after)" -"(lambda(ctx_0 new-s_0)" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values(((ok?_0 begin206_0 e207_0)" -"(let-values(((s_0) new-s_0))" -"(let-values(((orig-s_0) s_0))" -"(let-values(((begin206_0 e207_0)" -"(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" -"(if(pair? s_1)" -"(let-values(((begin208_0)(let-values(((s_2)(car s_1))) s_2))" -"((e209_0)" -"(let-values(((s_2)(cdr s_1)))" -"(let-values(((s_3)" -"(if(syntax?$1 s_2)" -"(syntax-e$1 s_2)" -" s_2)))" -"(let-values(((flat-s_0)(to-syntax-list.1 s_3)))" -"(if(not flat-s_0)" -"(let-values()" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" -"(let-values() flat-s_0)))))))" -"(values begin208_0 e209_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t begin206_0 e207_0))))))" -"(let-values(((obs_1)(expand-context-observer ctx_0)))" -"(if obs_1" -"(let-values()" -"(let-values()" -"(begin" -"(call-expand-observe obs_1 'exit-list(1/datum->syntax #f e207_0 new-s_0))" -"(call-expand-observe obs_1 'exit-prim new-s_0)" -"(call-expand-observe obs_1 'return new-s_0))))" -"(void)))))" -"(void))))))" " (define-values (replace-me) (lambda (who_0) (begin (lambda args_0 (error who_0 \"this stub must be replaced\")))))" "(define-values" "(1/current-eval)" @@ -63218,9 +63376,13 @@ static const char *startup_source = " ctx77_0))))" "(let-values((()" "(begin" +"(with-continuation-mark" +" current-expand-context" +" #f" +"(let-values()" "(namespace-visit-available-modules!" "(expand-context-namespace ctx_0)" -" phase_0)" +" phase_0)))" "(values))))" "(let-values((()" "(begin" @@ -63294,14 +63456,20 @@ static const char *startup_source = "(void))" "(values))))" "(let-values(((output-s_0)" +"(with-continuation-mark" +" current-expand-context" +" #f" +"(let-values()" "(if(if as-transformer?_0" " capture-lifts?_0" " #f)" "(let-values()" -"(let-values(((input-s87_0) input-s_0)" +"(let-values(((input-s87_0)" +" input-s_0)" "((local-ctx88_0)" " local-ctx_0)" -"((context89_0) context_0)" +"((context89_0)" +" context_0)" "((temp90_0) #f)" "((temp91_0) #t)" "((lift-key92_0)" @@ -63367,9 +63535,8 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " input-s107_0" -" local-ctx108_0))))))))" +" local-ctx108_0))))))))))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -63449,13 +63616,28 @@ static const char *startup_source = " maybe-insp_0)))" "(values))))" "(let-values(((insp_0)(inspector-for-taint maybe-insp_0)))" +"(let-values(((armed-s_0)" "(if use-mode?_0" "(let-values()" "(taint-dispatch" " s_0" "(lambda(s_1)(syntax-arm$1 s_1 insp_0))" "(1/syntax-local-phase-level)))" -"(let-values()(syntax-arm$1 s_0 insp_0))))))))))))))))" +"(let-values()(syntax-arm$1 s_0 insp_0)))))" +"(let-values(((ctx_0)" +"(let-values(((temp9_0) #t))" +"(get-current-expand-context.1 temp9_0 'unexpected))))" +"(begin" +"(if ctx_0" +"(let-values()" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'track-syntax 'arm armed-s_0 s_0)))" +"(void))))" +"(void))" +" armed-s_0))))))))))))))))" "(case-lambda" "((s_0)(begin 'syntax-arm(syntax-arm_0 s_0 #f #f)))" "((s_0 maybe-insp_0 use-mode?2_0)(syntax-arm_0 s_0 maybe-insp_0 use-mode?2_0))" @@ -63480,7 +63662,20 @@ static const char *startup_source = "(void)" " (let-values () (raise-argument-error 'syntax-disarm \"(or/c inspector? #f)\" maybe-insp_0)))" "(values))))" -"(let-values(((insp_0)(inspector-for-taint maybe-insp_0)))(syntax-disarm$1 s_0 insp_0)))))))))" +"(let-values(((insp_0)(inspector-for-taint maybe-insp_0)))" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0 insp_0)))" +"(let-values(((ctx_0)" +"(let-values(((temp11_0) #t))(get-current-expand-context.1 temp11_0 'unexpected))))" +"(begin" +"(if ctx_0" +"(let-values()" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'track-syntax 'disarm disarmed-s_0 s_0)))" +"(void))))" +"(void))" +" disarmed-s_0)))))))))))" "(define-values" "(1/syntax-rearm)" "(let-values(((syntax-rearm_0)" @@ -63493,20 +63688,41 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values()" +"(let-values((()" "(begin" "(if(syntax?$1 s_0)" "(void)" -" (let-values () (raise-argument-error 'syntax-rearm \"syntax?\" s_0)))" +" (let-values () (raise-argument-error 'syntax-rearm \"syntax?\" s_0)))" +"(values))))" +"(let-values((()" +"(begin" "(if(syntax?$1 from-s_0)" "(void)" -" (let-values () (raise-argument-error 'syntax-rearm \"syntax?\" from-s_0)))" +"(let-values()" +" (raise-argument-error 'syntax-rearm \"syntax?\" from-s_0)))" +"(values))))" +"(let-values(((rearmed-s_0)" "(if use-mode?_0" "(let-values()" "(taint-dispatch" " s_0" "(lambda(s_1)(syntax-rearm$1 s_1 from-s_0))" "(1/syntax-local-phase-level)))" -"(let-values()(syntax-rearm$1 s_0 from-s_0))))))))))))))" +"(let-values()(syntax-rearm$1 s_0 from-s_0)))))" +"(let-values(((ctx_0)" +"(let-values(((temp13_0) #t))" +"(get-current-expand-context.1 temp13_0 'unexpected))))" +"(begin" +"(if ctx_0" +"(let-values()" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'track-syntax 'rearm rearmed-s_0 s_0)))" +"(void))))" +"(void))" +" rearmed-s_0)))))))))))))))" "(case-lambda" "((s_0 from-s_0)(begin 'syntax-rearm(syntax-rearm_0 s_0 from-s_0 #f)))" "((s_0 from-s_0 use-mode?4_0)(syntax-rearm_0 s_0 from-s_0 use-mode?4_0)))))" @@ -64709,7 +64925,9 @@ static const char *startup_source = " find-main-config" " 'find-main-collects" " find-main-collects))" -"(define-values(expobs-primitives)(hasheq 'current-expand-observe current-expand-observe))" +"(define-values" +"(expobs-primitives)" +"(hasheq 'current-expand-observe current-expand-observe 'syntax-local-expand-observer syntax-local-expand-observer))" "(define-values" "(struct:TH-place-channel TH-place-channel TH-place-channel? TH-place-channel-ref TH-place-channel-set!)" "(make-struct-type 'TH-place-channel #f 2 0 #f(list(cons prop:evt(lambda(x_0)(TH-place-channel-ref x_0 0))))))" @@ -66308,9 +66526,7 @@ static const char *startup_source = "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe obs_0 'enter-block(datum->syntax$1 #f bodys_0))))" +"(let-values()(let-values()(call-expand-observe obs_0 'enter-block bodys_0)))" "(void)))" "(values))))" "(let-values(((inside-sc_0)(new-scope 'intdef)))" @@ -66352,11 +66568,7 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(call-expand-observe" -" obs_0" -" 'block-renames" -"(datum->syntax$1 #f init-bodys_0)" -"(datum->syntax$1 #f bodys_0))))" +"(call-expand-observe obs_0 'block-renames init-bodys_0 bodys_0)))" "(void)))" "(values))))" "(let-values(((phase_0)(expand-context-phase ctx_0)))" @@ -66532,12 +66744,7 @@ static const char *startup_source = " \"expand-context/outer?\"" " the-struct_0))))" " body-ctx_1)))" -"(expand.1" -" #f" -" #f" -" #f" -" temp77_0" -" temp78_0))))" +"(expand.1 #f #f temp77_0 temp78_0))))" "(let-values(((disarmed-exp-body_0)" "(syntax-disarm$1 exp-body_0)))" "(let-values(((tmp_0)" @@ -66556,7 +66763,8 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'prim-begin)))" +" 'prim-begin" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ok?_0 begin81_0 e82_0)" @@ -66660,7 +66868,8 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'prim-define-values)))" +" 'prim-define-values" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ok?_0" @@ -66860,11 +67069,9 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'rename-one" -"(datum->syntax$1" -" #f" "(list" " ids_0" -" rhs87_0)))))" +" rhs87_0))))" "(void)))" "(values))))" "(let-values(((new-dups_0)" @@ -67292,7 +67499,8 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'prim-define-syntaxes)))" +" 'prim-define-syntaxes" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ok?_0" @@ -67492,11 +67700,9 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'rename-one" -"(datum->syntax$1" -" #f" "(list" " ids_0" -" rhs113_0)))))" +" rhs113_0))))" "(void)))" "(values))))" "(let-values(((new-dups_0)" @@ -67967,25 +68173,7 @@ static const char *startup_source = "(lambda()" "(begin" " 'finish-bodys" -"(let-values(((block->list?_0)(null? val-idss_0)))" -"(let-values((()" -"(begin" -"(if block->list?_0" -"(void)" -"(let-values()" -"(let-values(((obs_0)" -"(expand-context-observer" -" body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'next-group)))" -"(void)))))" -"(values))))" -"(let-values(((last-i_0)" -"(sub1(length done-bodys_0))))" +"(let-values(((last-i_0)(sub1(length done-bodys_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -67997,9 +68185,7 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'enter-list" -"(datum->syntax$1" -" #f" -" done-bodys_0))))" +" done-bodys_0)))" "(void)))" "(values))))" "(let-values(((exp-bodys_0)" @@ -68103,13 +68289,12 @@ static const char *startup_source = " name146_0))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))" " finish-ctx_0)))" "(expand.1" " #f" " #f" -" #f" " done-body144_0" " temp145_0))))" " fold-var_1))))" @@ -68139,21 +68324,17 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'exit-list" -"(datum->syntax$1 #f exp-bodys_0))))" +" exp-bodys_0)))" "(void)))" "(reference-record-clear! frame-id_0)" -" exp-bodys_0))))))))))" +" exp-bodys_0))))))))" "(if(if(null? val-idss_0)(null? disappeared-transformer-bindings_0) #f)" "(let-values()" "(begin" "(let-values(((obs_0)(expand-context-observer finish-ctx_0)))" "(if obs_0" "(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'block->list" -"(datum->syntax$1 s_0 done-bodys_0))))" +"(let-values()(call-expand-observe obs_0 'block->list)))" "(void)))" "(finish-bodys_0)))" "(let-values()" @@ -68163,15 +68344,13 @@ static const char *startup_source = "(expand-context-observer finish-ctx_0)))" "(if obs_0" "(let-values()" -"(log-letrec-values$1" +"(let-values()" +"(call-expand-observe" " obs_0" -" finish-ctx_0" -" s_0" +" 'block->letrec" " val-idss_0" " val-rhss_0" -" track-stxs_0" -" stx-clauses_0" -" done-bodys_0))" +" done-bodys_0)))" "(void)))" "(values))))" "(let-values(((exp-s_0)" @@ -68198,23 +68377,15 @@ static const char *startup_source = " val-keyss149_0" " val-rhss150_0" " track-stxs151_0))))" -"(begin" -"(let-values(((obs_0)(expand-context-observer body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'exit-prim exp-s_0)" -"(call-expand-observe obs_0 'return exp-s_0))))" -"(void)))" "(if(expand-context-to-parsed? body-ctx_0)" "(list exp-s_0)" "(let-values(((exp-s_1)" "(attach-disappeared-transformer-bindings" " exp-s_0" " disappeared-transformer-bindings_0)))" -"(list" -"(let-values(((lst_0) disappeared-transformer-forms_0))" +"(let-values(((tracked-exp-s_0)" +"(let-values(((lst_0)" +" disappeared-transformer-forms_0))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -68253,7 +68424,19 @@ static const char *startup_source = " exp-s_2)))))" " for-loop_0)" " exp-s_1" -" lst_0))))))))))))))))))))))))))))))))))" +" lst_0)))))" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer finish-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'finish-block" +"(list tracked-exp-s_0))))" +"(void)))" +"(list tracked-exp-s_0))))))))))))))))))))))))))))))))" "(define-values" "(expand-and-split-bindings-by-reference.1)" "(lambda(ctx34_0" @@ -68277,7 +68460,7 @@ static const char *startup_source = "(let-values(((frame-id_0) frame-id33_0))" "(let-values(((ctx_0) ctx34_0))" "(let-values(((s_0) source35_0))" -"(let-values(((had-stxes?_0) had-stxes?36_0))" +"(let-values()" "(let-values(((get-body_0) get-body37_0))" "(let-values(((track?_0) track?38_0))" "(let-values()" @@ -68292,8 +68475,7 @@ static const char *startup_source = " accum-rhss_0" " accum-track-stxs_0" " track?_1" -" get-list?_0" -" can-log?_0)" +" get-list?_0)" "(begin" " 'loop" "(if(null? idss_1)" @@ -68339,22 +68521,7 @@ static const char *startup_source = " track?159_0" " s160_0" " temp161_0)))))" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(if can-log?_0" -"(log-tag? had-stxes?_0 ctx_0)" -" #f)" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'tag" -" result-s_0))" -"(void)))" -"(void)))" -"(if get-list?_0(list result-s_0) result-s_0)))))))" +"(if get-list?_0(list result-s_0) result-s_0))))))" "(let-values()" "(let-values((()" "(begin" @@ -68374,7 +68541,7 @@ static const char *startup_source = "(as-named-context" " ctx_0" " ids_0)))" -"(expand.1 #f #f #f temp162_0 temp163_0))))" +"(expand.1 #f #f temp162_0 temp163_0))))" "(let-values(((track-stx_0)(car track-stxs_1)))" "(let-values(((local-or-forward-references?_0)" "(reference-record-forward-references?" @@ -68411,8 +68578,7 @@ static const char *startup_source = " null" " null" " #f" -" #t" -" #f)))" +" #t)))" "(let-values(((result-s_0)" "(if(expand-context-to-parsed?" " ctx_0)" @@ -68444,27 +68610,9 @@ static const char *startup_source = " track?164_0" " s165_0" " temp166_0)))))" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(if can-log?_0" -"(log-tag?" -" had-stxes?_0" -" ctx_0)" -" #f)" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'tag" -" result-s_0))" -"(void)))" -"(void)))" "(if get-list?_0" "(list result-s_0)" -" result-s_0))))))" +" result-s_0)))))" "(if(if(not forward-references?_0)" "(let-values(((or-part_0) split?_0))" "(if or-part_0" @@ -68483,8 +68631,7 @@ static const char *startup_source = " null" " null" " #f" -" #t" -" #f)))" +" #t)))" "(let-values(((result-s_0)" "(if(expand-context-to-parsed?" " ctx_0)" @@ -68529,27 +68676,9 @@ static const char *startup_source = " track?167_0" " s168_0" " temp169_0)))))" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(if can-log?_0" -"(log-tag?" -" had-stxes?_0" -" ctx_0)" -" #f)" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'tag" -" result-s_0))" -"(void)))" -"(void)))" "(if get-list?_0" "(list result-s_0)" -" result-s_0)))))" +" result-s_0))))" "(let-values()" "(loop_0" "(cdr idss_1)" @@ -68561,8 +68690,7 @@ static const char *startup_source = "(cons expanded-rhs_0 accum-rhss_0)" "(cons track-stx_0 accum-track-stxs_0)" " track?_1" -" get-list?_0" -" can-log?_0)))))))))))))))))" +" get-list?_0)))))))))))))))))" " loop_0)" " idss_0" " keyss_0" @@ -68573,8 +68701,7 @@ static const char *startup_source = " null" " null" " track?_0" -" #f" -" #t)))))))))))))))))" +" #f)))))))))))))))))" "(define-values" "(build-clauses)" "(lambda(accum-idss_0 accum-rhss_0 accum-track-stxs_0)" @@ -68595,117 +68722,19 @@ static const char *startup_source = "(list(core-id 'begin phase_0) expr_0(list(datum->syntax$1 s-runtime-stx_0 'values)))" " s_0)))))" "(define-values" -"(log-tag?)" -"(lambda(had-stxes?_0 ctx_0)(begin(if had-stxes?_0(not(expand-context-only-immediate? ctx_0)) #f))))" -"(define-values" -"(log-letrec-values$1)" -"(lambda(obs_0 ctx_0 s_0 val-idss_0 val-rhss_0 track-stxs_0 stx-clauses_0 done-bodys_0)" -"(begin" -" 'log-letrec-values" -"(let-values(((phase_0)(expand-context-phase ctx_0)))" -"(let-values(((clauses_0)" -"(reverse$1" -"(let-values(((lst_0) val-idss_0)((lst_1) val-rhss_0)((lst_2) track-stxs_0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_0)))" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_1)))" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_2)))" -"((letrec-values(((for-loop_0)" -"(lambda(fold-var_0 lst_3 lst_4 lst_5)" -"(begin" -" 'for-loop" -"(if(if(pair? lst_3)(if(pair? lst_4)(pair? lst_5) #f) #f)" -"(let-values(((val-ids_0)(unsafe-car lst_3))" -"((rest_0)(unsafe-cdr lst_3))" -"((val-rhs_0)(unsafe-car lst_4))" -"((rest_1)(unsafe-cdr lst_4))" -"((track-stx_0)(unsafe-car lst_5))" -"((rest_2)(unsafe-cdr lst_5)))" -"(let-values(((fold-var_1)" -"(let-values(((fold-var_1) fold-var_0))" -"(let-values(((fold-var_2)" -"(let-values()" -"(cons" -"(let-values()" -"(datum->syntax$1" -" #f" -"(list val-ids_0 val-rhs_0)" -" track-stx_0))" -" fold-var_1))))" -"(values fold-var_2)))))" -"(if(not #f)" -"(for-loop_0 fold-var_1 rest_0 rest_1 rest_2)" -" fold-var_1)))" -" fold-var_0)))))" -" for-loop_0)" -" null" -" lst_0" -" lst_1" -" lst_2))))))" -"(let-values(((had-stxes?_0)(not(null? stx-clauses_0))))" -"(let-values(((lv-id_0)(core-id(if had-stxes?_0 'letrec-syntaxes+values 'letrec-values) phase_0)))" -"(let-values(((lv-s_0)" -"(datum->syntax$1" -" #f" -"(if had-stxes?_0" -"(list* lv-id_0 stx-clauses_0 clauses_0 done-bodys_0)" -"(list* lv-id_0 clauses_0 done-bodys_0))" -" s_0)))" -"(begin" -"(call-expand-observe obs_0 'block->letrec(list lv-s_0))" -"(call-expand-observe obs_0 'visit lv-s_0)" -"(call-expand-observe obs_0 'resolve lv-id_0)" -"(call-expand-observe obs_0 'enter-prim lv-s_0)" -"(if had-stxes?_0" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'prim-letrec-syntaxes+values)" -"(call-expand-observe" -" obs_0" -" 'letrec-syntaxes-renames" -" stx-clauses_0" -" clauses_0" -"(datum->syntax$1 #f done-bodys_0 s_0))" -"(call-expand-observe obs_0 'prepare-env)" -"(call-expand-observe obs_0 'next-group)" -"(if(null? val-idss_0)" -"(void)" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'prim-letrec-values)" -"(call-expand-observe" -" obs_0" -" 'let-renames" -" clauses_0" -"(datum->syntax$1 #f done-bodys_0 s_0)))))))" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'prim-letrec-values)" -"(call-expand-observe" -" obs_0" -" 'let-renames" -" clauses_0" -"(datum->syntax$1 #f done-bodys_0 s_0))))))))))))))" -"(define-values" "(lambda-clause-expander)" -"(lambda(s_0 disarmed-s_0 formals_0 bodys_0 ctx_0 log-renames-tag_0)" +"(lambda(s_0 disarmed-s_0 formals_0 bodys_0 ctx_0)" "(begin" "(let-values(((sc_0)(new-scope 'local)))" "(let-values(((phase_0)(expand-context-phase ctx_0)))" "(let-values(((ids_0)(parse-and-flatten-formals formals_0 sc_0 disarmed-s_0)))" "(let-values((()" "(begin" -"(let-values(((ids27_0) ids_0)" -"((phase28_0) phase_0)" -"((s29_0) s_0)" -" ((temp30_0) \"argument name\"))" -"(check-no-duplicate-ids.1 temp30_0 ids27_0 phase28_0 s29_0 unsafe-undefined))" +"(let-values(((ids23_0) ids_0)" +"((phase24_0) phase_0)" +"((s25_0) s_0)" +" ((temp26_0) \"argument name\"))" +"(check-no-duplicate-ids.1 temp26_0 ids23_0 phase24_0 s25_0 unsafe-undefined))" "(values))))" "(let-values(((counter_0)(root-expand-context-counter ctx_0)))" "(let-values(((local-sym_0)(if(expand-context-normalize-locals? ctx_0) 'arg #f)))" @@ -68729,23 +68758,23 @@ static const char *startup_source = "(let-values()" "(cons" "(let-values()" -"(let-values(((id31_0)" +"(let-values(((id27_0)" " id_0)" -"((phase32_0)" +"((phase28_0)" " phase_0)" -"((counter33_0)" +"((counter29_0)" " counter_0)" -"((s34_0)" +"((s30_0)" " s_0)" -"((local-sym35_0)" +"((local-sym31_0)" " local-sym_0))" "(add-local-binding!.1" " #f" -" s34_0" -" local-sym35_0" -" id31_0" -" phase32_0" -" counter33_0)))" +" s30_0" +" local-sym31_0" +" id27_0" +" phase28_0" +" counter29_0)))" " fold-var_1))))" "(values fold-var_2)))))" "(if(not #f)" @@ -68829,33 +68858,29 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(call-expand-observe" -" obs_0" -" log-renames-tag_0" -" sc-formals_0" -"(datum->syntax$1 #f sc-bodys_0))))" +"(call-expand-observe obs_0 'lambda-renames sc-formals_0 sc-bodys_0)))" "(void)))" "(values))))" "(let-values(((body-ctx_0)" "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((env36_0) body-env_0)" -"((scopes37_0)(cons sc_0(expand-context-scopes ctx_0)))" -"((binding-layer38_0)" +"(let-values(((env32_0) body-env_0)" +"((scopes33_0)(cons sc_0(expand-context-scopes ctx_0)))" +"((binding-layer34_0)" "(increment-binding-layer ids_0 ctx_0 sc_0))" -"((frame-id39_0) #f)" -"((inner40_0)(root-expand-context/outer-inner v_0)))" +"((frame-id35_0) #f)" +"((inner36_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner40_0" +" inner36_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" -" frame-id39_0" +" frame-id35_0" "(expand-context/outer-context the-struct_0)" -" env36_0" -" scopes37_0" +" env32_0" +" scopes33_0" "(expand-context/outer-def-ctx-scopes the-struct_0)" -" binding-layer38_0" +" binding-layer34_0" "(expand-context/outer-reference-records the-struct_0)" "(expand-context/outer-only-immediate? the-struct_0)" "(expand-context/outer-need-eventually-defined the-struct_0)" @@ -68867,12 +68892,12 @@ static const char *startup_source = " \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((exp-body_0)" -"(let-values(((sc-bodys41_0) sc-bodys_0)" -"((body-ctx42_0) body-ctx_0)" -"((temp43_0)" -"(let-values(((ctx44_0) ctx_0)((s45_0) s_0)((temp46_0) #t))" -"(keep-as-needed.1 #f temp46_0 #f ctx44_0 s45_0))))" -"(expand-body.1 temp43_0 #f sc-bodys41_0 body-ctx42_0))))" +"(let-values(((sc-bodys37_0) sc-bodys_0)" +"((body-ctx38_0) body-ctx_0)" +"((temp39_0)" +"(let-values(((ctx40_0) ctx_0)((s41_0) s_0)((temp42_0) #t))" +"(keep-as-needed.1 #f temp42_0 #f ctx40_0 s41_0))))" +"(expand-body.1 temp39_0 #f sc-bodys37_0 body-ctx38_0))))" "(values" "(if(expand-context-to-parsed? ctx_0)" "(unflatten-like-formals keys_0 formals_0)" @@ -68882,27 +68907,29 @@ static const char *startup_source = "(add-core-form!*" " 'lambda" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-lambda)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-lambda disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 lambda47_0 formals48_0 body49_0)" +"(let-values(((ok?_0 lambda43_0 formals44_0 body45_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((lambda47_0 formals48_0 body49_0)" +"(let-values(((lambda43_0 formals44_0 body45_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((lambda50_0)(let-values(((s_3)(car s_2))) s_3))" -"((formals51_0 body52_0)" +"(let-values(((lambda46_0)(let-values(((s_3)(car s_2))) s_3))" +"((formals47_0 body48_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((formals53_0)" +"(let-values(((formals49_0)" "(let-values(((s_5)(car s_4))) s_5))" -"((body54_0)" +"((body50_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" @@ -68924,38 +68951,37 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))" "(let-values() flat-s_0))))))))" -"(values formals53_0 body54_0))" +"(values formals49_0 body50_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values lambda50_0 formals51_0 body52_0))" +"(values lambda46_0 formals47_0 body48_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t lambda47_0 formals48_0 body49_0))))))" +"(values #t lambda43_0 formals44_0 body45_0))))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx55_0) ctx_0)((s56_0) s_0)((temp57_0) #t))" -"(keep-as-needed.1 #f #f temp57_0 ctx55_0 s56_0))))" -"(let-values(((formals_0 body_0)" -"(lambda-clause-expander s_0 disarmed-s_0 formals48_0 body49_0 ctx_0 'lambda-renames)))" +"(let-values(((ctx51_0) ctx_0)((s52_0) s_0)((temp53_0) #t))" +"(keep-as-needed.1 #f #f temp53_0 ctx51_0 s52_0))))" +"(let-values(((formals_0 body_0)(lambda-clause-expander s_0 disarmed-s_0 formals44_0 body45_0 ctx_0)))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-lambda5.1 rebuild-s_0 formals_0 body_0)" -"(let-values(((rebuild-s58_0) rebuild-s_0)((temp59_0)(list* lambda47_0 formals_0 body_0)))" -"(rebuild.1 #t rebuild-s58_0 temp59_0)))))))))))" +"(let-values(((rebuild-s54_0) rebuild-s_0)((temp55_0)(list* lambda43_0 formals_0 body_0)))" +"(rebuild.1 #t rebuild-s54_0 temp55_0)))))))))))" "(void" "(add-core-form!*" " 'λ" "(lambda(s_0)" -"(let-values(((ok?_0 lam-id60_0 formals61_0 _62_0)" +"(let-values(((ok?_0 lam-id56_0 formals57_0 _58_0)" "(let-values(((s_1) s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((lam-id60_0 formals61_0 _62_0)" +"(let-values(((lam-id56_0 formals57_0 _58_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((lam-id63_0)(let-values(((s_3)(car s_2))) s_3))" -"((formals64_0 _65_0)" +"(let-values(((lam-id59_0)(let-values(((s_3)(car s_2))) s_3))" +"((formals60_0 _61_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((formals66_0)" +"(let-values(((formals62_0)" "(let-values(((s_5)(car s_4))) s_5))" -"((_67_0)" +"((_63_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" @@ -68976,21 +69002,21 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))" "(let-values() flat-s_0))))))))" -"(values formals66_0 _67_0))" +"(values formals62_0 _63_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values lam-id63_0 formals64_0 _65_0))" +"(values lam-id59_0 formals60_0 _61_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t lam-id60_0 formals61_0 _62_0))))))" -"(let-values(((ids_0)(parse-and-flatten-formals formals61_0 #f s_0)))" -"(let-values(((ctx_0)(let-values(((temp72_0) #t))(get-current-expand-context.1 temp72_0 'unexpected))))" +"(values #t lam-id56_0 formals57_0 _58_0))))))" +"(let-values(((ids_0)(parse-and-flatten-formals formals57_0 #f s_0)))" +"(let-values(((ctx_0)(let-values(((temp68_0) #t))(get-current-expand-context.1 temp68_0 'unexpected))))" "(let-values(((phase_0)(if ctx_0(expand-context-phase ctx_0) 0)))" "(begin" -" (let-values (((ids68_0) ids_0) ((phase69_0) phase_0) ((s70_0) s_0) ((temp71_0) \"argument name\"))" -"(check-no-duplicate-ids.1 temp71_0 ids68_0 phase69_0 s70_0 unsafe-undefined))" +" (let-values (((ids64_0) ids_0) ((phase65_0) phase_0) ((s66_0) s_0) ((temp67_0) \"argument name\"))" +"(check-no-duplicate-ids.1 temp67_0 ids64_0 phase65_0 s66_0 unsafe-undefined))" "(datum->syntax$1" " s_0" "(cons" -"(datum->syntax$1(syntax-shift-phase-level$1 core-stx phase_0) 'lambda lam-id60_0 lam-id60_0)" +"(datum->syntax$1(syntax-shift-phase-level$1 core-stx phase_0) 'lambda lam-id56_0 lam-id56_0)" "(cdr(syntax-e$1 s_0)))" " s_0" " s_0)))))))))" @@ -68998,20 +69024,22 @@ static const char *startup_source = "(add-core-form!*" " 'case-lambda" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-case-lambda)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-case-lambda disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 case-lambda73_0 formals74_0 body75_0)" +"(let-values(((ok?_0 case-lambda69_0 formals70_0 body71_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((case-lambda73_0 formals74_0 body75_0)" +"(let-values(((case-lambda69_0 formals70_0 body71_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((case-lambda76_0)(let-values(((s_3)(car s_2))) s_3))" -"((formals77_0 body78_0)" +"(let-values(((case-lambda72_0)(let-values(((s_3)(car s_2))) s_3))" +"((formals73_0 body74_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" @@ -69051,8 +69079,8 @@ static const char *startup_source = "(let-values(((formals_2" " body_2)" "(let-values()" -"(let-values(((formals85_0" -" body86_0)" +"(let-values(((formals81_0" +" body82_0)" "(let-values()" "(let-values(((s_6)" "(if(syntax?$1" @@ -69062,12 +69090,12 @@ static const char *startup_source = " s_5)))" "(if(pair?" " s_6)" -"(let-values(((formals79_0)" +"(let-values(((formals75_0)" "(let-values(((s_7)" "(car" " s_6)))" " s_7))" -"((body80_0)" +"((body76_0)" "(let-values(((s_7)" "(cdr" " s_6)))" @@ -69097,18 +69125,18 @@ static const char *startup_source = "(let-values()" " flat-s_1))))))))" "(values" -" formals79_0" -" body80_0))" +" formals75_0" +" body76_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" "(cons" -" formals85_0" +" formals81_0" " formals_1)" "(cons" -" body86_0" +" body82_0" " body_1))))))" "(values" " formals_2" @@ -69132,17 +69160,17 @@ static const char *startup_source = "(values" "(reverse$1 formals_0)" "(reverse$1 body_0))))))))))" -"(values case-lambda76_0 formals77_0 body78_0))" +"(values case-lambda72_0 formals73_0 body74_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t case-lambda73_0 formals74_0 body75_0))))))" -"(let-values(((ok?_1 case-lambda81_0 clause82_0)" +"(values #t case-lambda69_0 formals70_0 body71_0))))))" +"(let-values(((ok?_1 case-lambda77_0 clause78_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((case-lambda81_0 clause82_0)" +"(let-values(((case-lambda77_0 clause78_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((case-lambda83_0)(let-values(((s_3)(car s_2))) s_3))" -"((clause84_0)" +"(let-values(((case-lambda79_0)(let-values(((s_3)(car s_2))) s_3))" +"((clause80_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" @@ -69151,15 +69179,15 @@ static const char *startup_source = "(let-values()" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" "(let-values() flat-s_0)))))))" -"(values case-lambda83_0 clause84_0))" +"(values case-lambda79_0 clause80_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t case-lambda81_0 clause82_0))))))" +"(values #t case-lambda77_0 clause78_0))))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx87_0) ctx_0)((s88_0) s_0)((temp89_0) #t))" -"(keep-as-needed.1 #f #f temp89_0 ctx87_0 s88_0))))" +"(let-values(((ctx83_0) ctx_0)((s84_0) s_0)((temp85_0) #t))" +"(keep-as-needed.1 #f #f temp85_0 ctx83_0 s84_0))))" "(let-values(((clauses_0)" "(reverse$1" -"(let-values(((lst_0) formals74_0)((lst_1) body75_0)((lst_2) clause82_0))" +"(let-values(((lst_0) formals70_0)((lst_1) body71_0)((lst_2) clause78_0))" "(begin" "(if(variable-reference-from-unsafe?(#%variable-reference))" "(void)" @@ -69201,16 +69229,16 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((rebuild-clause_0)" -"(let-values(((ctx90_0)" +"(let-values(((ctx86_0)" " ctx_0)" -"((clause91_0)" +"((clause87_0)" " clause_0))" "(keep-as-needed.1" " #f" " #f" " #f" -" ctx90_0" -" clause91_0))))" +" ctx86_0" +" clause87_0))))" "(let-values(((exp-formals_0" " exp-body_0)" "(lambda-clause-expander" @@ -69218,23 +69246,22 @@ static const char *startup_source = " disarmed-s_0" " formals_0" " body_0" -" ctx_0" -" 'lambda-renames)))" +" ctx_0)))" "(if(expand-context-to-parsed?" " ctx_0)" "(list" " exp-formals_0" " exp-body_0)" -"(let-values(((rebuild-clause92_0)" +"(let-values(((rebuild-clause88_0)" " rebuild-clause_0)" -"((temp93_0)" +"((temp89_0)" "(list*" " exp-formals_0" " exp-body_0)))" "(rebuild.1" " #t" -" rebuild-clause92_0" -" temp93_0)))))))" +" rebuild-clause88_0" +" temp89_0)))))))" " fold-var_1))))" "(values fold-var_2)))))" "(if(not #f)" @@ -69248,8 +69275,8 @@ static const char *startup_source = " lst_2))))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-case-lambda6.1 rebuild-s_0 clauses_0)" -"(let-values(((rebuild-s94_0) rebuild-s_0)((temp95_0)(list* case-lambda73_0 clauses_0)))" -"(rebuild.1 #t rebuild-s94_0 temp95_0))))))))))))" +"(let-values(((rebuild-s90_0) rebuild-s_0)((temp91_0)(list* case-lambda69_0 clauses_0)))" +"(rebuild.1 #t rebuild-s90_0 temp91_0))))))))))))" "(define-values" "(parse-and-flatten-formals)" "(lambda(all-formals_0 sc_0 s_0)" @@ -69304,61 +69331,59 @@ static const char *startup_source = " formals_0))))" "(define-values" "(make-let-values-form.1)" -"(lambda(log-tag1_0 rec?3_0 renames-log-tag5_0 split-by-reference?4_0 syntaxes?2_0)" +"(lambda(log-tag1_0 rec?3_0 split-by-reference?4_0 syntaxes?2_0)" "(begin" " 'make-let-values-form" "(let-values(((log-tag_0) log-tag1_0))" "(let-values(((syntaxes?_0) syntaxes?2_0))" "(let-values(((rec?_0) rec?3_0))" "(let-values(((split-by-reference?_0) split-by-reference?4_0))" -"(let-values(((renames-log-tag_0) renames-log-tag5_0))" "(let-values()" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 log-tag_0)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 log-tag_0 disarmed-s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((ok?_0" -" letrec-syntaxes+values96_0" -" id:trans97_0" -" trans-rhs98_0" -" id:val99_0" -" val-rhs100_0" -" body101_0)" +" letrec-syntaxes+values92_0" +" id:trans93_0" +" trans-rhs94_0" +" id:val95_0" +" val-rhs96_0" +" body97_0)" "(let-values(((s_1) disarmed-s_0))" "(if(if syntaxes?_0 #t #f)" "(let-values(((orig-s_0) s_1))" -"(let-values(((letrec-syntaxes+values96_0" -" id:trans97_0" -" trans-rhs98_0" -" id:val99_0" -" val-rhs100_0" -" body101_0)" -"(let-values(((s_2)" -"(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" +"(let-values(((letrec-syntaxes+values92_0" +" id:trans93_0" +" trans-rhs94_0" +" id:val95_0" +" val-rhs96_0" +" body97_0)" +"(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((letrec-syntaxes+values102_0)" +"(let-values(((letrec-syntaxes+values98_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((id:trans103_0" -" trans-rhs104_0" -" id:val105_0" -" val-rhs106_0" -" body107_0)" +"((id:trans99_0" +" trans-rhs100_0" +" id:val101_0" +" val-rhs102_0" +" body103_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((id:trans108_0" -" trans-rhs109_0)" +"(let-values(((id:trans104_0" +" trans-rhs105_0)" "(let-values(((s_5)" -"(car" -" s_4)))" +"(car s_4)))" "(let-values(((s_6)" "(if(syntax?$1" " s_5)" @@ -69372,7 +69397,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id:trans_0" @@ -69409,8 +69434,8 @@ static const char *startup_source = "(let-values(((id:trans_2" " trans-rhs_2)" "(let-values()" -"(let-values(((id:trans139_0" -" trans-rhs140_0)" +"(let-values(((id:trans135_0" +" trans-rhs136_0)" "(let-values()" "(let-values(((s_8)" "(if(syntax?$1" @@ -69420,7 +69445,7 @@ static const char *startup_source = " s_7)))" "(if(pair?" " s_8)" -"(let-values(((id:trans113_0)" +"(let-values(((id:trans109_0)" "(let-values(((s_9)" "(car" " s_8)))" @@ -69438,7 +69463,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id:trans_2)" @@ -69469,7 +69494,7 @@ static const char *startup_source = " id:trans_2))" "(let-values(((id:trans_4)" "(let-values()" -"(let-values(((id:trans141_0)" +"(let-values(((id:trans137_0)" "(let-values()" "(if(let-values(((or-part_0)" "(if(syntax?$1" @@ -69485,11 +69510,11 @@ static const char *startup_source = " s_11" "(raise-syntax-error$1" " #f" -" \"not an identifier\"" +" \"not an identifier\"" " orig-s_0" " s_11)))))" "(cons" -" id:trans141_0" +" id:trans137_0" " id:trans_3)))))" "(values" " id:trans_4)))))" @@ -69505,7 +69530,7 @@ static const char *startup_source = " lst_2)))))" "(reverse$1" " id:trans_2))))))))" -"((trans-rhs114_0)" +"((trans-rhs110_0)" "(let-values(((s_9)" "(cdr" " s_8)))" @@ -69517,7 +69542,7 @@ static const char *startup_source = " s_9)))" "(if(pair?" " s_10)" -"(let-values(((trans-rhs115_0)" +"(let-values(((trans-rhs111_0)" "(let-values(((s_11)" "(car" " s_10)))" @@ -69537,27 +69562,27 @@ static const char *startup_source = "(values)" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" trans-rhs115_0))" +" trans-rhs111_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" id:trans113_0" -" trans-rhs114_0))" +" id:trans109_0" +" trans-rhs110_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" "(cons" -" id:trans139_0" +" id:trans135_0" " id:trans_1)" "(cons" -" trans-rhs140_0" +" trans-rhs136_0" " trans-rhs_1))))))" "(values" " id:trans_2" @@ -69583,12 +69608,11 @@ static const char *startup_source = " id:trans_0)" "(reverse$1" " trans-rhs_0)))))))))" -"((id:val110_0" -" val-rhs111_0" -" body112_0)" +"((id:val106_0" +" val-rhs107_0" +" body108_0)" "(let-values(((s_5)" -"(cdr" -" s_4)))" +"(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1" " s_5)" @@ -69596,8 +69620,8 @@ static const char *startup_source = " s_5)" " s_5)))" "(if(pair? s_6)" -"(let-values(((id:val116_0" -" val-rhs117_0)" +"(let-values(((id:val112_0" +" val-rhs113_0)" "(let-values(((s_7)" "(car" " s_6)))" @@ -69615,7 +69639,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id:val_0" @@ -69652,8 +69676,8 @@ static const char *startup_source = "(let-values(((id:val_2" " val-rhs_2)" "(let-values()" -"(let-values(((id:val142_0" -" val-rhs143_0)" +"(let-values(((id:val138_0" +" val-rhs139_0)" "(let-values()" "(let-values(((s_10)" "(if(syntax?$1" @@ -69663,7 +69687,7 @@ static const char *startup_source = " s_9)))" "(if(pair?" " s_10)" -"(let-values(((id:val119_0)" +"(let-values(((id:val115_0)" "(let-values(((s_11)" "(car" " s_10)))" @@ -69681,7 +69705,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id:val_2)" @@ -69712,7 +69736,7 @@ static const char *startup_source = " id:val_2))" "(let-values(((id:val_4)" "(let-values()" -"(let-values(((id:val144_0)" +"(let-values(((id:val140_0)" "(let-values()" "(if(let-values(((or-part_0)" "(if(syntax?$1" @@ -69728,11 +69752,11 @@ static const char *startup_source = " s_13" "(raise-syntax-error$1" " #f" -" \"not an identifier\"" +" \"not an identifier\"" " orig-s_0" " s_13)))))" "(cons" -" id:val144_0" +" id:val140_0" " id:val_3)))))" "(values" " id:val_4)))))" @@ -69748,7 +69772,7 @@ static const char *startup_source = " lst_2)))))" "(reverse$1" " id:val_2))))))))" -"((val-rhs120_0)" +"((val-rhs116_0)" "(let-values(((s_11)" "(cdr" " s_10)))" @@ -69760,7 +69784,7 @@ static const char *startup_source = " s_11)))" "(if(pair?" " s_12)" -"(let-values(((val-rhs121_0)" +"(let-values(((val-rhs117_0)" "(let-values(((s_13)" "(car" " s_12)))" @@ -69780,27 +69804,27 @@ static const char *startup_source = "(values)" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" val-rhs121_0))" +" val-rhs117_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" id:val119_0" -" val-rhs120_0))" +" id:val115_0" +" val-rhs116_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" "(cons" -" id:val142_0" +" id:val138_0" " id:val_1)" "(cons" -" val-rhs143_0" +" val-rhs139_0" " val-rhs_1))))))" "(values" " id:val_2" @@ -69826,7 +69850,7 @@ static const char *startup_source = " id:val_0)" "(reverse$1" " val-rhs_0)))))))))" -"((body118_0)" +"((body114_0)" "(let-values(((s_7)" "(cdr" " s_6)))" @@ -69844,71 +69868,71 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(if(null?" " flat-s_0)" "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0))))))))" "(values" -" id:val116_0" -" val-rhs117_0" -" body118_0))" +" id:val112_0" +" val-rhs113_0" +" body114_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" id:trans108_0" -" trans-rhs109_0" -" id:val110_0" -" val-rhs111_0" -" body112_0))" +" id:trans104_0" +" trans-rhs105_0" +" id:val106_0" +" val-rhs107_0" +" body108_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" letrec-syntaxes+values102_0" -" id:trans103_0" -" trans-rhs104_0" -" id:val105_0" -" val-rhs106_0" -" body107_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" +" letrec-syntaxes+values98_0" +" id:trans99_0" +" trans-rhs100_0" +" id:val101_0" +" val-rhs102_0" +" body103_0))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" "(values" " #t" -" letrec-syntaxes+values96_0" -" id:trans97_0" -" trans-rhs98_0" -" id:val99_0" -" val-rhs100_0" -" body101_0)))" +" letrec-syntaxes+values92_0" +" id:trans93_0" +" trans-rhs94_0" +" id:val95_0" +" val-rhs96_0" +" body97_0)))" "(values #f #f #f #f #f #f #f)))))" -"(let-values(((ok?_1 let-values122_0 id:val123_0 val-rhs124_0 body125_0)" +"(let-values(((ok?_1 let-values118_0 id:val119_0 val-rhs120_0 body121_0)" "(let-values(((s_1) disarmed-s_0))" "(if(if(not syntaxes?_0) #t #f)" "(let-values(((orig-s_0) s_1))" -"(let-values(((let-values122_0 id:val123_0 val-rhs124_0 body125_0)" +"(let-values(((let-values118_0 id:val119_0 val-rhs120_0 body121_0)" "(let-values(((s_2)" "(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((let-values126_0)" +"(let-values(((let-values122_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((id:val127_0 val-rhs128_0 body129_0)" +"((id:val123_0 val-rhs124_0 body125_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((id:val130_0" -" val-rhs131_0)" +"(let-values(((id:val126_0" +" val-rhs127_0)" "(let-values(((s_5)" "(car" " s_4)))" @@ -69921,12 +69945,11 @@ static const char *startup_source = "(let-values(((flat-s_0)" "(to-syntax-list.1" " s_6)))" -"(if(not" -" flat-s_0)" +"(if(not flat-s_0)" "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id:val_0" @@ -69963,8 +69986,8 @@ static const char *startup_source = "(let-values(((id:val_2" " val-rhs_2)" "(let-values()" -"(let-values(((id:val145_0" -" val-rhs146_0)" +"(let-values(((id:val141_0" +" val-rhs142_0)" "(let-values()" "(let-values(((s_8)" "(if(syntax?$1" @@ -69974,7 +69997,7 @@ static const char *startup_source = " s_7)))" "(if(pair?" " s_8)" -"(let-values(((id:val133_0)" +"(let-values(((id:val129_0)" "(let-values(((s_9)" "(car" " s_8)))" @@ -69992,7 +70015,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id:val_2)" @@ -70023,7 +70046,7 @@ static const char *startup_source = " id:val_2))" "(let-values(((id:val_4)" "(let-values()" -"(let-values(((id:val147_0)" +"(let-values(((id:val143_0)" "(let-values()" "(if(let-values(((or-part_0)" "(if(syntax?$1" @@ -70039,11 +70062,11 @@ static const char *startup_source = " s_11" "(raise-syntax-error$1" " #f" -" \"not an identifier\"" +" \"not an identifier\"" " orig-s_0" " s_11)))))" "(cons" -" id:val147_0" +" id:val143_0" " id:val_3)))))" "(values" " id:val_4)))))" @@ -70059,7 +70082,7 @@ static const char *startup_source = " lst_2)))))" "(reverse$1" " id:val_2))))))))" -"((val-rhs134_0)" +"((val-rhs130_0)" "(let-values(((s_9)" "(cdr" " s_8)))" @@ -70071,7 +70094,7 @@ static const char *startup_source = " s_9)))" "(if(pair?" " s_10)" -"(let-values(((val-rhs135_0)" +"(let-values(((val-rhs131_0)" "(let-values(((s_11)" "(car" " s_10)))" @@ -70091,27 +70114,27 @@ static const char *startup_source = "(values)" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" val-rhs135_0))" +" val-rhs131_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" id:val133_0" -" val-rhs134_0))" +" id:val129_0" +" val-rhs130_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" "(cons" -" id:val145_0" +" id:val141_0" " id:val_1)" "(cons" -" val-rhs146_0" +" val-rhs142_0" " val-rhs_1))))))" "(values" " id:val_2" @@ -70137,7 +70160,7 @@ static const char *startup_source = " id:val_0)" "(reverse$1" " val-rhs_0)))))))))" -"((body132_0)" +"((body128_0)" "(let-values(((s_5)" "(cdr" " s_4)))" @@ -70150,37 +70173,36 @@ static const char *startup_source = "(let-values(((flat-s_0)" "(to-syntax-list.1" " s_6)))" -"(if(not" -" flat-s_0)" +"(if(not flat-s_0)" "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(if(null?" " flat-s_0)" "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0))))))))" "(values" -" id:val130_0" -" val-rhs131_0" -" body132_0))" +" id:val126_0" +" val-rhs127_0" +" body128_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" -" let-values126_0" -" id:val127_0" -" val-rhs128_0" -" body129_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t let-values122_0 id:val123_0 val-rhs124_0 body125_0)))" +" let-values122_0" +" id:val123_0" +" val-rhs124_0" +" body125_0))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" +"(values #t let-values118_0 id:val119_0 val-rhs120_0 body121_0)))" "(values #f #f #f #f #f)))))" "(let-values(((sc_0)(new-scope 'local)))" "(let-values(((body-sc_0)(if rec?_0(new-scope 'letrec-body) #f)))" @@ -70188,7 +70210,7 @@ static const char *startup_source = "(let-values(((frame-id_0)(if syntaxes?_0(make-reference-record) #f)))" "(let-values(((trans-idss_0)" "(reverse$1" -"(let-values(((lst_0)(if syntaxes?_0 id:trans97_0 null)))" +"(let-values(((lst_0)(if syntaxes?_0 id:trans93_0 null)))" "(begin" "(if(variable-reference-from-unsafe?(#%variable-reference))" "(void)" @@ -70199,8 +70221,7 @@ static const char *startup_source = " 'for-loop" "(if(pair? lst_1)" "(let-values(((ids_0)(unsafe-car lst_1))" -"((rest_0)" -"(unsafe-cdr lst_1)))" +"((rest_0)(unsafe-cdr lst_1)))" "(let-values(((fold-var_1)" "(let-values(((fold-var_1)" " fold-var_0))" @@ -70255,6 +70276,42 @@ static const char *startup_source = " null" " lst_2)))))" " fold-var_1))))" +"(values fold-var_2)))))" +"(if(not #f)" +"(for-loop_0 fold-var_1 rest_0)" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" lst_0))))))" +"(let-values(((trans-rhss_0)" +"(if syntaxes?_0" +"(reverse$1" +"(let-values(((lst_0) trans-rhs94_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 lst_1)" +"(begin" +" 'for-loop" +"(if(pair? lst_1)" +"(let-values(((rhs_0)" +"(unsafe-car lst_1))" +"((rest_0)" +"(unsafe-cdr lst_1)))" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +"(add-scope" +" rhs_0" +" sc_0))" +" fold-var_1))))" "(values" " fold-var_2)))))" "(if(not #f)" @@ -70263,10 +70320,11 @@ static const char *startup_source = " fold-var_0)))))" " for-loop_0)" " null" -" lst_0))))))" +" lst_0))))" +" '())))" "(let-values(((val-idss_0)" "(reverse$1" -"(let-values(((lst_0)(if syntaxes?_0 id:val99_0 id:val123_0)))" +"(let-values(((lst_0)(if syntaxes?_0 id:val95_0 id:val119_0)))" "(begin" "(if(variable-reference-from-unsafe?(#%variable-reference))" "(void)" @@ -70347,7 +70405,7 @@ static const char *startup_source = "(if rec?_0" "(reverse$1" "(let-values(((lst_0)" -"(if syntaxes?_0 val-rhs100_0 val-rhs124_0)))" +"(if syntaxes?_0 val-rhs96_0 val-rhs120_0)))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -70384,17 +70442,17 @@ static const char *startup_source = " for-loop_0)" " null" " lst_0))))" -"(if syntaxes?_0 val-rhs100_0 val-rhs124_0))))" +"(if syntaxes?_0 val-rhs96_0 val-rhs120_0))))" "(let-values(((val-clauses_0)" "(if syntaxes?_0" "(let-values()" -"(let-values(((ok?_2 _148_0 _149_0 clause150_0 _151_0)" +"(let-values(((ok?_2 _144_0 _145_0 clause146_0 _147_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((_148_0" -" _149_0" -" clause150_0" -" _151_0)" +"(let-values(((_144_0" +" _145_0" +" clause146_0" +" _147_0)" "(let-values(((s_2)" "(if(syntax?$1" " s_1)" @@ -70402,14 +70460,14 @@ static const char *startup_source = " s_1)" " s_1)))" "(if(pair? s_2)" -"(let-values(((_152_0)" +"(let-values(((_148_0)" "(let-values(((s_3)" "(car" " s_2)))" " s_3))" -"((_153_0" -" clause154_0" -" _155_0)" +"((_149_0" +" clause150_0" +" _151_0)" "(let-values(((s_3)" "(cdr" " s_2)))" @@ -70421,13 +70479,13 @@ static const char *startup_source = " s_3)))" "(if(pair?" " s_4)" -"(let-values(((_156_0)" +"(let-values(((_152_0)" "(let-values(((s_5)" "(car" " s_4)))" " s_5))" -"((clause157_0" -" _158_0)" +"((clause153_0" +" _154_0)" "(let-values(((s_5)" "(cdr" " s_4)))" @@ -70439,7 +70497,7 @@ static const char *startup_source = " s_5)))" "(if(pair?" " s_6)" -"(let-values(((clause159_0)" +"(let-values(((clause155_0)" "(let-values(((s_7)" "(car" " s_6)))" @@ -70461,47 +70519,47 @@ static const char *startup_source = " orig-s_0))" "(let-values()" " flat-s_0))))))" -"((_160_0)" +"((_156_0)" "(let-values(((s_7)" "(cdr" " s_6)))" " s_7)))" "(values" -" clause159_0" -" _160_0))" +" clause155_0" +" _156_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" _156_0" -" clause157_0" -" _158_0))" +" _152_0" +" clause153_0" +" _154_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" _152_0" -" _153_0" -" clause154_0" -" _155_0))" +" _148_0" +" _149_0" +" clause150_0" +" _151_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" _148_0" -" _149_0" -" clause150_0" -" _151_0))))))" -" clause150_0))" +" _144_0" +" _145_0" +" clause146_0" +" _147_0))))))" +" clause146_0))" "(let-values()" -"(let-values(((ok?_2 _161_0 clause162_0 _163_0)" +"(let-values(((ok?_2 _157_0 clause158_0 _159_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((_161_0 clause162_0 _163_0)" +"(let-values(((_157_0 clause158_0 _159_0)" "(let-values(((s_2)" "(if(syntax?$1" " s_1)" @@ -70509,13 +70567,13 @@ static const char *startup_source = " s_1)" " s_1)))" "(if(pair? s_2)" -"(let-values(((_164_0)" +"(let-values(((_160_0)" "(let-values(((s_3)" "(car" " s_2)))" " s_3))" -"((clause165_0" -" _166_0)" +"((clause161_0" +" _162_0)" "(let-values(((s_3)" "(cdr" " s_2)))" @@ -70527,7 +70585,7 @@ static const char *startup_source = " s_3)))" "(if(pair?" " s_4)" -"(let-values(((clause167_0)" +"(let-values(((clause163_0)" "(let-values(((s_5)" "(car" " s_4)))" @@ -70549,42 +70607,42 @@ static const char *startup_source = " orig-s_0))" "(let-values()" " flat-s_0))))))" -"((_168_0)" +"((_164_0)" "(let-values(((s_5)" "(cdr" " s_4)))" " s_5)))" "(values" -" clause167_0" -" _168_0))" +" clause163_0" +" _164_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" _164_0" -" clause165_0" -" _166_0))" +" _160_0" +" clause161_0" +" _162_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" _161_0" -" clause162_0" -" _163_0))))))" -" clause162_0)))))" +" _157_0" +" clause158_0" +" _159_0))))))" +" clause158_0)))))" "(let-values((()" "(begin" -"(let-values(((temp136_0)(list trans-idss_0 val-idss_0))" -"((phase137_0) phase_0)" -"((s138_0) s_0))" +"(let-values(((temp132_0)(list trans-idss_0 val-idss_0))" +"((phase133_0) phase_0)" +"((s134_0) s_0))" "(check-no-duplicate-ids.1" " unsafe-undefined" -" temp136_0" -" phase137_0" -" s138_0" +" temp132_0" +" phase133_0" +" s134_0" " unsafe-undefined))" "(values))))" "(let-values(((counter_0)(root-expand-context-counter ctx_0)))" @@ -70646,25 +70704,25 @@ static const char *startup_source = "(let-values()" "(cons" "(let-values()" -"(let-values(((id169_0)" +"(let-values(((id165_0)" " id_0)" -"((phase170_0)" +"((phase166_0)" " phase_0)" -"((counter171_0)" +"((counter167_0)" " counter_0)" -"((frame-id172_0)" +"((frame-id168_0)" " frame-id_0)" -"((s173_0)" +"((s169_0)" " s_0)" -"((local-sym174_0)" +"((local-sym170_0)" " local-sym_0))" "(add-local-binding!.1" -" frame-id172_0" -" s173_0" -" local-sym174_0" -" id169_0" -" phase170_0" -" counter171_0)))" +" frame-id168_0" +" s169_0" +" local-sym170_0" +" id165_0" +" phase166_0" +" counter167_0)))" " fold-var_3))))" "(values" " fold-var_4)))))" @@ -70746,25 +70804,25 @@ static const char *startup_source = "(let-values()" "(cons" "(let-values()" -"(let-values(((id175_0)" +"(let-values(((id171_0)" " id_0)" -"((phase176_0)" +"((phase172_0)" " phase_0)" -"((counter177_0)" +"((counter173_0)" " counter_0)" -"((frame-id178_0)" +"((frame-id174_0)" " frame-id_0)" -"((s179_0)" +"((s175_0)" " s_0)" -"((local-sym180_0)" +"((local-sym176_0)" " local-sym_0))" "(add-local-binding!.1" -" frame-id178_0" -" s179_0" -" local-sym180_0" -" id175_0" -" phase176_0" -" counter177_0)))" +" frame-id174_0" +" s175_0" +" local-sym176_0" +" id171_0" +" phase172_0" +" counter173_0)))" " fold-var_3))))" "(values" " fold-var_4)))))" @@ -70793,9 +70851,7 @@ static const char *startup_source = "(let-values(((bodys_0)" "(reverse$1" "(let-values(((lst_0)" -"(if syntaxes?_0" -" body101_0" -" body125_0)))" +"(if syntaxes?_0 body97_0 body121_0)))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -70846,15 +70902,15 @@ static const char *startup_source = "(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(log-let-renames" +"(let-values()" +"(call-expand-observe" " obs_0" -" renames-log-tag_0" +" 'letX-renames" +" trans-idss_0" +" trans-rhss_0" " val-idss_0" " val-rhss_0" -" bodys_0" -" trans-idss_0" -"(if syntaxes?_0 trans-rhs98_0 #f)" -" sc_0))" +" bodys_0)))" "(void)))" "(values))))" "(let-values((()" @@ -70877,10 +70933,7 @@ static const char *startup_source = "(values))))" "(let-values(((trans-valss_0)" "(reverse$1" -"(let-values(((lst_0)" -"(if syntaxes?_0" -" trans-rhs98_0" -" '()))" +"(let-values(((lst_0) trans-rhss_0)" "((lst_1) trans-idss_0))" "(begin" "(if(variable-reference-from-unsafe?" @@ -70940,9 +70993,7 @@ static const char *startup_source = "(let-values(((trans-val_0)" "(eval-for-syntaxes-binding" " 'letrec-syntaxes+values" -"(add-scope" " rhs_0" -" sc_0)" " ids_0" " ctx_0)))" "(begin" @@ -71244,6 +71295,22 @@ static const char *startup_source = " lst_0" " lst_1" " lst_2)))))" +"(let-values((()" +"(begin" +"(if syntaxes?_0" +"(let-values()" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'next-group)))" +"(void))))" +"(void))" +"(values))))" "(let-values(((expr-ctx_0)" "(as-expression-context ctx_0)))" "(let-values(((orig-rrs_0)" @@ -71251,12 +71318,13 @@ static const char *startup_source = " expr-ctx_0)))" "(let-values(((rec-ctx_0)" "(let-values(((v_0) expr-ctx_0))" -"(let-values(((the-struct_0) v_0))" +"(let-values(((the-struct_0)" +" v_0))" "(if(expand-context/outer?" " the-struct_0)" -"(let-values(((env181_0)" +"(let-values(((env177_0)" " rec-env_0)" -"((scopes182_0)" +"((scopes178_0)" "(let-values(((scopes_0)" "(cons" " sc_0" @@ -71267,24 +71335,24 @@ static const char *startup_source = " body-sc_0" " scopes_0)" " scopes_0)))" -"((reference-records183_0)" +"((reference-records179_0)" "(if split-by-reference?_0" "(cons" " frame-id_0" " orig-rrs_0)" " orig-rrs_0))" -"((binding-layer184_0)" +"((binding-layer180_0)" "(increment-binding-layer" "(cons" " trans-idss_0" " val-idss_0)" " ctx_0" " sc_0))" -"((inner185_0)" +"((inner181_0)" "(root-expand-context/outer-inner" " v_0)))" "(expand-context/outer1.1" -" inner185_0" +" inner181_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -71293,12 +71361,12 @@ static const char *startup_source = " the-struct_0)" "(expand-context/outer-context" " the-struct_0)" -" env181_0" -" scopes182_0" +" env177_0" +" scopes178_0" "(expand-context/outer-def-ctx-scopes" " the-struct_0)" -" binding-layer184_0" -" reference-records183_0" +" binding-layer180_0" +" reference-records179_0" "(expand-context/outer-only-immediate?" " the-struct_0)" "(expand-context/outer-need-eventually-defined" @@ -71311,7 +71379,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((letrec-values-id_0)" "(if(not" @@ -71321,18 +71389,19 @@ static const char *startup_source = "(core-id" " 'letrec-values" " phase_0)" -" let-values122_0)" +" let-values118_0)" " #f)))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx186_0) ctx_0)" -"((s187_0) s_0)" -"((temp188_0) #t))" +"(let-values(((ctx182_0)" +" ctx_0)" +"((s183_0) s_0)" +"((temp184_0) #t))" "(keep-as-needed.1" " #f" -" temp188_0" +" temp184_0" " #f" -" ctx186_0" -" s187_0))))" +" ctx182_0" +" s183_0))))" "(let-values(((val-name-idss_0)" "(if(expand-context-to-parsed?" " ctx_0)" @@ -71429,46 +71498,10 @@ static const char *startup_source = " null" " lst_0))))" " val-idss_0)))" -"(let-values((()" -"(begin" -"(if syntaxes?_0" -"(let-values()" -"(let-values(((obs_0)" -"(expand-context-observer" -" ctx_0)))" -"(if obs_0" -"(let-values()" -"(log-letrec-values" -" obs_0" -" val-idss_0" -" val-rhss_0" -" bodys_0))" -"(void))))" -"(void))" -"(values))))" "(let-values(((get-body_0)" "(lambda()" "(begin" " 'get-body" -"(let-values((()" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" ctx_0)))" -"(if obs_0" -"(let-values()" -"(if(not" -"(if syntaxes?_0" -"(null?" -" val-idss_0)" -" #f))" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'next-group))" -"(void)))" -"(void)))" -"(values))))" "(let-values(((body-ctx_0)" "(let-values(((v_0)" " rec-ctx_0))" @@ -71476,13 +71509,13 @@ static const char *startup_source = " v_0))" "(if(expand-context/outer?" " the-struct_0)" -"(let-values(((reference-records192_0)" +"(let-values(((reference-records188_0)" " orig-rrs_0)" -"((inner193_0)" +"((inner189_0)" "(root-expand-context/outer-inner" " v_0)))" "(expand-context/outer1.1" -" inner193_0" +" inner189_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -71499,7 +71532,7 @@ static const char *startup_source = " the-struct_0)" "(expand-context/outer-binding-layer" " the-struct_0)" -" reference-records192_0" +" reference-records188_0" "(expand-context/outer-only-immediate?" " the-struct_0)" "(expand-context/outer-need-eventually-defined" @@ -71512,25 +71545,25 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" -"(let-values(((bodys189_0)" +"(let-values(((bodys185_0)" " bodys_0)" -"((temp190_0)" -"(let-values(((body-ctx194_0)" +"((temp186_0)" +"(let-values(((body-ctx190_0)" " body-ctx_0)" -"((ctx195_0)" +"((ctx191_0)" " ctx_0))" "(as-tail-context.1" -" ctx195_0" -" body-ctx194_0)))" -"((rebuild-s191_0)" +" ctx191_0" +" body-ctx190_0)))" +"((rebuild-s187_0)" " rebuild-s_0))" "(expand-body.1" -" rebuild-s191_0" +" rebuild-s187_0" " #f" -" bodys189_0" -" temp190_0))))))))" +" bodys185_0" +" temp186_0)))))))" "(let-values(((result-s_0)" "(if(not" " split-by-reference?_0)" @@ -71634,9 +71667,9 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((exp-rhs_0)" -"(let-values(((rhs196_0)" +"(let-values(((rhs192_0)" " rhs_0)" -"((temp197_0)" +"((temp193_0)" "(if rec?_0" "(as-named-context" " rec-ctx_0" @@ -71647,9 +71680,8 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" -" rhs196_0" -" temp197_0))))" +" rhs192_0" +" temp193_0))))" "(if(expand-context-to-parsed?" " ctx_0)" "(list" @@ -71702,189 +71734,93 @@ static const char *startup_source = " val-name-idss_0" " clauses_0" " exp-body_0))" -"(let-values(((rebuild-s198_0)" +"(let-values(((rebuild-s194_0)" " rebuild-s_0)" -"((temp199_0)" +"((temp195_0)" "(list*" " letrec-values-id_0" " clauses_0" " exp-body_0)))" "(rebuild.1" " #t" -" rebuild-s198_0" -" temp199_0)))))))" +" rebuild-s194_0" +" temp195_0)))))))" "(let-values()" -"(let-values(((val-idss200_0)" +"(let-values(((val-idss196_0)" " val-idss_0)" -"((val-keyss201_0)" +"((val-keyss197_0)" " val-keyss_0)" -"((val-rhss202_0)" +"((val-rhss198_0)" " val-rhss_0)" -"((val-clauses203_0)" +"((val-clauses199_0)" " val-clauses_0)" -"((temp204_0)" +"((temp200_0)" " #t)" -"((frame-id205_0)" +"((frame-id201_0)" " frame-id_0)" -"((rec-ctx206_0)" +"((rec-ctx202_0)" " rec-ctx_0)" -"((rebuild-s207_0)" +"((rebuild-s203_0)" " rebuild-s_0)" -"((syntaxes?208_0)" +"((syntaxes?204_0)" " syntaxes?_0)" -"((get-body209_0)" +"((get-body205_0)" " get-body_0)" -"((temp210_0)" +"((temp206_0)" " #t))" "(expand-and-split-bindings-by-reference.1" -" rec-ctx206_0" -" frame-id205_0" -" get-body209_0" -" syntaxes?208_0" -" rebuild-s207_0" -" temp204_0" -" temp210_0" -" val-idss200_0" -" val-keyss201_0" -" val-rhss202_0" -" val-clauses203_0))))))" +" rec-ctx202_0" +" frame-id201_0" +" get-body205_0" +" syntaxes?204_0" +" rebuild-s203_0" +" temp200_0" +" temp206_0" +" val-idss196_0" +" val-keyss197_0" +" val-rhss198_0" +" val-clauses199_0))))))" "(if(expand-context-to-parsed?" " ctx_0)" " result-s_0" "(attach-disappeared-transformer-bindings" " result-s_0" " trans-idss_0))))))))))))))))))))))))))))))))))))))))))))" -"(define-values" -"(log-let-renames)" -"(lambda(obs_0 renames-log-tag_0 val-idss_0 val-rhss_0 bodys_0 trans-idss_0 trans-rhss_0 sc_0)" -"(begin" -"(let-values(((vals+body_0)" -"(cons" -"(reverse$1" -"(let-values(((lst_0) val-idss_0)((lst_1) val-rhss_0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_0)))" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_1)))" -"((letrec-values(((for-loop_0)" -"(lambda(fold-var_0 lst_2 lst_3)" -"(begin" -" 'for-loop" -"(if(if(pair? lst_2)(pair? lst_3) #f)" -"(let-values(((val-ids_0)(unsafe-car lst_2))" -"((rest_0)(unsafe-cdr lst_2))" -"((val-rhs_0)(unsafe-car lst_3))" -"((rest_1)(unsafe-cdr lst_3)))" -"(let-values(((fold-var_1)" -"(let-values(((fold-var_1) fold-var_0))" -"(let-values(((fold-var_2)" -"(let-values()" -"(cons" -"(let-values()" -"(datum->syntax$1" -" #f" -"(list val-ids_0 val-rhs_0)))" -" fold-var_1))))" -"(values fold-var_2)))))" -"(if(not #f)(for-loop_0 fold-var_1 rest_0 rest_1) fold-var_1)))" -" fold-var_0)))))" -" for-loop_0)" -" null" -" lst_0" -" lst_1))))" -"(datum->syntax$1 #f bodys_0))))" -"(call-expand-observe" -" obs_0" -" renames-log-tag_0" -"(if(not trans-rhss_0)" -" vals+body_0" -"(cons" -"(reverse$1" -"(let-values(((lst_0) trans-idss_0)((lst_1) trans-rhss_0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_0)))" -"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_1)))" -"((letrec-values(((for-loop_0)" -"(lambda(fold-var_0 lst_2 lst_3)" -"(begin" -" 'for-loop" -"(if(if(pair? lst_2)(pair? lst_3) #f)" -"(let-values(((trans-ids_0)(unsafe-car lst_2))" -"((rest_0)(unsafe-cdr lst_2))" -"((trans-rhs_0)(unsafe-car lst_3))" -"((rest_1)(unsafe-cdr lst_3)))" -"(let-values(((fold-var_1)" -"(let-values(((fold-var_1) fold-var_0))" -"(let-values(((fold-var_2)" -"(let-values()" -"(cons" -"(let-values()" -"(datum->syntax$1" -" #f" -"(list" -" trans-ids_0" -"(add-scope trans-rhs_0 sc_0))))" -" fold-var_1))))" -"(values fold-var_2)))))" -"(if(not #f)(for-loop_0 fold-var_1 rest_0 rest_1) fold-var_1)))" -" fold-var_0)))))" -" for-loop_0)" -" null" -" lst_0" -" lst_1))))" -" vals+body_0)))))))" -"(define-values" -"(log-letrec-values)" -"(lambda(obs_0 val-idss_0 val-rhss_0 bodys_0)" -"(begin" -"(begin" -"(call-expand-observe obs_0 'next-group)" -"(if(null? val-idss_0)" -"(void)" -"(let-values()" -"(begin" -"(call-expand-observe obs_0 'prim-letrec-values)" -"(log-let-renames obs_0 'let-renames val-idss_0 val-rhss_0 bodys_0 #f #f #f))))))))" "(void" "(add-core-form!*" " 'let-values" -"(let-values(((temp211_0) 'prim-let-values))(make-let-values-form.1 temp211_0 #f 'let-renames #f #f))))" +"(let-values(((temp207_0) 'prim-let-values))(make-let-values-form.1 temp207_0 #f #f #f))))" "(void" "(add-core-form!*" " 'letrec-values" -"(let-values(((temp212_0) #t)((temp213_0) 'prim-letrec-values))" -"(make-let-values-form.1 temp213_0 temp212_0 'let-renames #f #f))))" +"(let-values(((temp208_0) #t)((temp209_0) 'prim-letrec-values))" +"(make-let-values-form.1 temp209_0 temp208_0 #f #f))))" "(void" "(add-core-form!*" " 'letrec-syntaxes+values" -"(let-values(((temp214_0) #t)" -"((temp215_0) #t)" -"((temp216_0) #t)" -"((temp217_0) 'prim-letrec-syntaxes+values)" -"((temp218_0) 'letrec-syntaxes-renames))" -"(make-let-values-form.1 temp217_0 temp215_0 temp218_0 temp216_0 temp214_0))))" +"(let-values(((temp210_0) #t)((temp211_0) #t)((temp212_0) #t)((temp213_0) 'prim-letrec-syntaxes+values))" +"(make-let-values-form.1 temp213_0 temp211_0 temp212_0 temp210_0))))" "(void" "(add-core-form!*" " '#%stratified-body" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-#%stratified)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-#%stratified disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 #%stratified-body219_0 body220_0)" +"(let-values(((ok?_0 #%stratified-body214_0 body215_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%stratified-body219_0 body220_0)" +"(let-values(((#%stratified-body214_0 body215_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%stratified-body221_0)" +"(let-values(((#%stratified-body216_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((body222_0)" +"((body217_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" @@ -71896,48 +71832,50 @@ static const char *startup_source = "(let-values()" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" "(let-values() flat-s_0))))))))" -"(values #%stratified-body221_0 body222_0))" +"(values #%stratified-body216_0 body217_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%stratified-body219_0 body220_0))))))" +"(values #t #%stratified-body214_0 body215_0))))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx223_0) ctx_0)((s224_0) s_0)((temp225_0) #t))" -"(keep-as-needed.1 #f temp225_0 #f ctx223_0 s224_0))))" +"(let-values(((ctx218_0) ctx_0)((s219_0) s_0)((temp220_0) #t))" +"(keep-as-needed.1 #f temp220_0 #f ctx218_0 s219_0))))" "(let-values(((exp-body_0)" -"(let-values(((temp226_0) body220_0)" -"((ctx227_0) ctx_0)" -"((temp228_0) #t)" -"((rebuild-s229_0) rebuild-s_0))" -"(expand-body.1 rebuild-s229_0 temp228_0 temp226_0 ctx227_0))))" +"(let-values(((temp221_0) body215_0)" +"((ctx222_0) ctx_0)" +"((temp223_0) #t)" +"((rebuild-s224_0) rebuild-s_0))" +"(expand-body.1 rebuild-s224_0 temp223_0 temp221_0 ctx222_0))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-begin12.1 rebuild-s_0 exp-body_0)" -"(let-values(((rebuild-s230_0) rebuild-s_0)" -"((temp231_0)" +"(let-values(((rebuild-s225_0) rebuild-s_0)" +"((temp226_0)" "(if(null?(cdr exp-body_0))" "(car exp-body_0)" "(list*(core-id 'begin(expand-context-phase ctx_0)) exp-body_0))))" -"(rebuild.1 #t rebuild-s230_0 temp231_0)))))))))))" +"(rebuild.1 #t rebuild-s225_0 temp226_0)))))))))))" "(void" "(add-core-form!*" " '#%datum" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-#%datum)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-#%datum disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 #%datum232_0 datum233_0)" +"(let-values(((ok?_0 #%datum227_0 datum228_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%datum232_0 datum233_0)" +"(let-values(((#%datum227_0 datum228_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%datum234_0)(let-values(((s_3)(car s_2))) s_3))" -"((datum235_0)(let-values(((s_3)(cdr s_2))) s_3)))" -"(values #%datum234_0 datum235_0))" +"(let-values(((#%datum229_0)(let-values(((s_3)(car s_2))) s_3))" +"((datum230_0)(let-values(((s_3)(cdr s_2))) s_3)))" +"(values #%datum229_0 datum230_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%datum232_0 datum233_0))))))" -"(let-values(((datum_0) datum233_0))" +"(values #t #%datum227_0 datum228_0))))))" +"(let-values(((datum_0) datum228_0))" "(let-values((()" "(begin" "(if(if(syntax?$1 datum_0)(keyword?(syntax-e$1 datum_0)) #f)" @@ -71948,26 +71886,28 @@ static const char *startup_source = "(let-values(((phase_0)(expand-context-phase ctx_0)))" "(if(if(expand-context-to-parsed? ctx_0)(free-id-set-empty?(expand-context-stops ctx_0)) #f)" "(parsed-quote14.1(keep-properties-only~ s_0)(syntax->datum$1 datum_0))" -"(let-values(((s236_0) s_0)((temp237_0)(list(core-id 'quote phase_0) datum_0)))" -"(rebuild.1 #t s236_0 temp237_0))))))))))))" +"(let-values(((s231_0) s_0)((temp232_0)(list(core-id 'quote phase_0) datum_0)))" +"(rebuild.1 #t s231_0 temp232_0))))))))))))" "(void" "(add-core-form!*" " '#%app" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-#%app)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-#%app disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 #%app238_0 e239_0)" +"(let-values(((ok?_0 #%app233_0 e234_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%app238_0 e239_0)" +"(let-values(((#%app233_0 e234_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%app240_0)(let-values(((s_3)(car s_2))) s_3))" -"((e241_0)" +"(let-values(((#%app235_0)(let-values(((s_3)(car s_2))) s_3))" +"((e236_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" @@ -71976,51 +71916,44 @@ static const char *startup_source = "(let-values()" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" "(let-values() flat-s_0)))))))" -"(values #%app240_0 e241_0))" +"(values #%app235_0 e236_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%app238_0 e239_0))))))" -"(let-values(((es_0) e239_0))" +"(values #t #%app233_0 e234_0))))))" +"(let-values(((es_0) e234_0))" "(if(null? es_0)" "(let-values()" "(let-values(((phase_0)(expand-context-phase ctx_0)))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-quote14.1(keep-properties-only~ s_0) null)" -"(let-values(((s242_0) s_0)((temp243_0)(list(core-id 'quote phase_0) null)))" -"(rebuild.1 #t s242_0 temp243_0)))))" +"(let-values(((s237_0) s_0)((temp238_0)(list(core-id 'quote phase_0) null)))" +"(rebuild.1 #t s237_0 temp238_0)))))" "(let-values()" "(let-values(((keep-for-parsed?_0) keep-source-locations?))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx244_0) ctx_0)" -"((s245_0) s_0)" -"((keep-for-parsed?246_0) keep-for-parsed?_0))" -"(keep-as-needed.1 #f #f keep-for-parsed?246_0 ctx244_0 s245_0))))" +"(let-values(((ctx239_0) ctx_0)" +"((s240_0) s_0)" +"((keep-for-parsed?241_0) keep-for-parsed?_0))" +"(keep-as-needed.1 #f #f keep-for-parsed?241_0 ctx239_0 s240_0))))" "(let-values(((prefixless_0)(cdr(syntax-e$1 disarmed-s_0))))" "(let-values(((rebuild-prefixless_0)" "(if(syntax?$1 prefixless_0)" -"(let-values(((ctx247_0) ctx_0)" -"((prefixless248_0) prefixless_0)" -"((keep-for-parsed?249_0) keep-for-parsed?_0))" -"(keep-as-needed.1 #f #f keep-for-parsed?249_0 ctx247_0 prefixless248_0))" +"(let-values(((ctx242_0) ctx_0)" +"((prefixless243_0) prefixless_0)" +"((keep-for-parsed?244_0) keep-for-parsed?_0))" +"(keep-as-needed.1 #f #f keep-for-parsed?244_0 ctx242_0 prefixless243_0))" " #f)))" "(let-values(((expr-ctx_0)(as-expression-context ctx_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer expr-ctx_0)))" "(if obs_0" -"(let-values()" -"(let-values()" -"(begin" -"(call-expand-observe" -" obs_0" -" 'enter-list" -"(datum->syntax$1 #f es_0 s_0))" -"(call-expand-observe obs_0 'next))))" +"(let-values()(let-values()(call-expand-observe obs_0 'next)))" "(void)))" "(values))))" "(let-values(((rest-es_0)(cdr es_0)))" "(let-values(((exp-rator_0)" -"(let-values(((temp250_0)(car es_0))((expr-ctx251_0) expr-ctx_0))" -"(expand.1 #f #f #f temp250_0 expr-ctx251_0))))" +"(let-values(((temp245_0)(car es_0))((expr-ctx246_0) expr-ctx_0))" +"(expand.1 #f #f temp245_0 expr-ctx246_0))))" "(let-values(((exp-es_0)" "(reverse$1" "(let-values(((lst_0) rest-es_0))" @@ -72053,16 +71986,15 @@ static const char *startup_source = " obs_0" " 'next)))" "(void)))" -"(let-values(((e252_0)" +"(let-values(((e247_0)" " e_0)" -"((expr-ctx253_0)" +"((expr-ctx248_0)" " expr-ctx_0))" "(expand.1" " #f" " #f" -" #f" -" e252_0" -" expr-ctx253_0))))" +" e247_0" +" expr-ctx248_0))))" " fold-var_1))))" "(values fold-var_2)))))" "(if(not #f)" @@ -72083,23 +72015,13 @@ static const char *startup_source = "(let-values(((es_1)" "(let-values(((exp-es_1)(cons exp-rator_0 exp-es_0)))" "(if rebuild-prefixless_0" -"(let-values(((rebuild-prefixless256_0) rebuild-prefixless_0)" -"((exp-es257_0) exp-es_1))" -"(rebuild.1 #t rebuild-prefixless256_0 exp-es257_0))" +"(let-values(((rebuild-prefixless251_0) rebuild-prefixless_0)" +"((exp-es252_0) exp-es_1))" +"(rebuild.1 #t rebuild-prefixless251_0 exp-es252_0))" " exp-es_1))))" -"(begin" -"(let-values(((obs_0)(expand-context-observer expr-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'exit-list" -"(datum->syntax$1 #f es_1 rebuild-s_0))))" -"(void)))" -"(let-values(((rebuild-s254_0) rebuild-s_0)" -"((temp255_0)(cons #%app238_0 es_1)))" -"(rebuild.1 #t rebuild-s254_0 temp255_0))))))))))))))))))))))))" +"(let-values(((rebuild-s249_0) rebuild-s_0)" +"((temp250_0)(cons #%app233_0 es_1)))" +"(rebuild.1 #t rebuild-s249_0 temp250_0)))))))))))))))))))))))" "(void" "(add-core-form!*" " 'quote" @@ -72107,21 +72029,21 @@ static const char *startup_source = "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-quote)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-quote #f)))(void)))" "(values))))" -"(let-values(((ok?_0 quote258_0 datum259_0)" +"(let-values(((ok?_0 quote253_0 datum254_0)" "(let-values(((s_1)(syntax-disarm$1 s_0)))" "(let-values(((orig-s_0) s_1))" -"(let-values(((quote258_0 datum259_0)" +"(let-values(((quote253_0 datum254_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((quote260_0)(let-values(((s_3)(car s_2))) s_3))" -"((datum261_0)" +"(let-values(((quote255_0)(let-values(((s_3)(car s_2))) s_3))" +"((datum256_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((datum262_0)" +"(let-values(((datum257_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -72135,25 +72057,27 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values datum262_0))" +"(values datum257_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values quote260_0 datum261_0))" +"(values quote255_0 datum256_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t quote258_0 datum259_0))))))" +"(values #t quote253_0 datum254_0))))))" "(if(expand-context-to-parsed? ctx_0)" -"(parsed-quote14.1(keep-properties-only~ s_0)(syntax->datum$1 datum259_0))" +"(parsed-quote14.1(keep-properties-only~ s_0)(syntax->datum$1 datum254_0))" " s_0))))))" "(void" "(add-core-form!*" " 'quote-syntax" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-quote-syntax)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-quote-syntax disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 quote-syntax263_0 datum264_0)" +"(let-values(((ok?_0 quote-syntax258_0 datum259_0)" "(let-values(((s_1) disarmed-s_0))" "(if(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" @@ -72178,14 +72102,14 @@ static const char *startup_source = " #f)" " #f))" "(let-values()" -"(let-values(((quote-syntax263_0 datum264_0)" +"(let-values(((quote-syntax258_0 datum259_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" -"(let-values(((quote-syntax265_0)(let-values(((s_3)(car s_2))) s_3))" -"((datum266_0)" +"(let-values(((quote-syntax260_0)(let-values(((s_3)(car s_2))) s_3))" +"((datum261_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" -"(let-values(((datum267_0)" +"(let-values(((datum262_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -72214,26 +72138,26 @@ static const char *startup_source = " s_7)))" "(values)))))" "(values))))))" -"(values datum267_0))))))" -"(values quote-syntax265_0 datum266_0)))))" -"(values #t quote-syntax263_0 datum264_0)))" +"(values datum262_0))))))" +"(values quote-syntax260_0 datum261_0)))))" +"(values #t quote-syntax258_0 datum259_0)))" "(values #f #f #f)))))" -"(let-values(((ok?_1 quote-syntax268_0 datum269_0)" +"(let-values(((ok?_1 quote-syntax263_0 datum264_0)" "(let-values(((s_1) disarmed-s_0))" "(if(if(not ok?_0) #t #f)" "(let-values(((orig-s_0) s_1))" -"(let-values(((quote-syntax268_0 datum269_0)" +"(let-values(((quote-syntax263_0 datum264_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((quote-syntax270_0)(let-values(((s_3)(car s_2))) s_3))" -"((datum271_0)" +"(let-values(((quote-syntax265_0)(let-values(((s_3)(car s_2))) s_3))" +"((datum266_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((datum272_0)" +"(let-values(((datum267_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -72247,37 +72171,37 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values datum272_0))" +"(values datum267_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values quote-syntax270_0 datum271_0))" +"(values quote-syntax265_0 datum266_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t quote-syntax268_0 datum269_0)))" +"(values #t quote-syntax263_0 datum264_0)))" "(values #f #f #f)))))" "(if ok?_0" "(let-values()" "(let-values((()" "(begin(reference-records-all-used!(expand-context-reference-records ctx_0))(values))))" -"(let-values(((ok?_2 _273_0 _274_0 kw275_0)" +"(let-values(((ok?_2 _268_0 _269_0 kw270_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((_273_0 _274_0 kw275_0)" +"(let-values(((_268_0 _269_0 kw270_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((_276_0)(let-values(((s_3)(car s_2))) s_3))" -"((_277_0 kw278_0)" +"(let-values(((_271_0)(let-values(((s_3)(car s_2))) s_3))" +"((_272_0 kw273_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((_279_0)" +"(let-values(((_274_0)" "(let-values(((s_5)(car s_4)))" " s_5))" -"((kw280_0)" +"((kw275_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1" @@ -72286,7 +72210,7 @@ static const char *startup_source = " s_5)" " s_5)))" "(if(pair? s_6)" -"(let-values(((kw281_0)" +"(let-values(((kw276_0)" "(let-values(((s_7)" "(car" " s_6)))" @@ -72308,44 +72232,46 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values kw281_0))" +"(values kw276_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values _279_0 kw280_0))" +"(values _274_0 kw275_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values _276_0 _277_0 kw278_0))" +"(values _271_0 _272_0 kw273_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t _273_0 _274_0 kw275_0))))))" +"(values #t _268_0 _269_0 kw270_0))))))" "(if(expand-context-to-parsed? ctx_0)" -"(parsed-quote-syntax15.1(keep-properties-only~ s_0) datum264_0)" -"(let-values(((s282_0) s_0)((temp283_0)(list quote-syntax263_0 datum264_0 kw275_0)))" -"(rebuild.1 #t s282_0 temp283_0))))))" +"(parsed-quote-syntax15.1(keep-properties-only~ s_0) datum259_0)" +"(let-values(((s277_0) s_0)((temp278_0)(list quote-syntax258_0 datum259_0 kw270_0)))" +"(rebuild.1 #t s277_0 temp278_0))))))" "(let-values()" "(let-values(((use-site-scopes_0)(root-expand-context-use-site-scopes ctx_0)))" "(let-values(((datum-s_0)" "(remove-scopes" -"(remove-scopes datum269_0(expand-context-scopes ctx_0))" +"(remove-scopes datum264_0(expand-context-scopes ctx_0))" "(if use-site-scopes_0(unbox use-site-scopes_0) '()))))" "(if(if(expand-context-to-parsed? ctx_0)(free-id-set-empty?(expand-context-stops ctx_0)) #f)" "(parsed-quote-syntax15.1(keep-properties-only~ s_0) datum-s_0)" -"(let-values(((s284_0) s_0)((temp285_0)(list quote-syntax268_0 datum-s_0)))" -"(rebuild.1 #t s284_0 temp285_0))))))))))))))" +"(let-values(((s279_0) s_0)((temp280_0)(list quote-syntax263_0 datum-s_0)))" +"(rebuild.1 #t s279_0 temp280_0))))))))))))))" "(void" "(add-core-form!*" " 'if" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-if)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-if disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 _286_0 _287_0 _288_0)" +"(let-values(((ok?_0 _281_0 _282_0 _283_0)" "(let-values(((s_1) disarmed-s_0))" "(if(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" @@ -72368,22 +72294,22 @@ static const char *startup_source = " #f)" " #f))" "(let-values()" -"(let-values(((_286_0 _287_0 _288_0)" +"(let-values(((_281_0 _282_0 _283_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" -"(let-values(((_289_0)(let-values(((s_3)(car s_2))) s_3))" -"((_290_0 _291_0)" +"(let-values(((_284_0)(let-values(((s_3)(car s_2))) s_3))" +"((_285_0 _286_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" -"(let-values(((_292_0)" +"(let-values(((_287_0)" "(let-values(((s_5)(car s_4))) s_5))" -"((_293_0)" +"((_288_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" "(syntax-e$1 s_5)" " s_5)))" -"(let-values(((_294_0)" +"(let-values(((_289_0)" "(let-values(((s_7)" "(car s_6)))" " s_7))" @@ -72397,10 +72323,10 @@ static const char *startup_source = " s_7)" " s_7)))" "(values)))))" -"(values _294_0))))))" -"(values _292_0 _293_0))))))" -"(values _289_0 _290_0 _291_0)))))" -"(values #t _286_0 _287_0 _288_0)))" +"(values _289_0))))))" +"(values _287_0 _288_0))))))" +"(values _284_0 _285_0 _286_0)))))" +"(values #t _281_0 _282_0 _283_0)))" "(values #f #f #f #f)))))" "(let-values((()" "(begin" @@ -72408,35 +72334,35 @@ static const char *startup_source = " (let-values () (raise-syntax-error$1 #f \"missing an \\\"else\\\" expression\" s_0))" "(void))" "(values))))" -"(let-values(((ok?_1 if295_0 tst296_0 thn297_0 els298_0)" +"(let-values(((ok?_1 if290_0 tst291_0 thn292_0 els293_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((if295_0 tst296_0 thn297_0 els298_0)" +"(let-values(((if290_0 tst291_0 thn292_0 els293_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((if299_0)(let-values(((s_3)(car s_2))) s_3))" -"((tst300_0 thn301_0 els302_0)" +"(let-values(((if294_0)(let-values(((s_3)(car s_2))) s_3))" +"((tst295_0 thn296_0 els297_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((tst303_0)" +"(let-values(((tst298_0)" "(let-values(((s_5)(car s_4))) s_5))" -"((thn304_0 els305_0)" +"((thn299_0 els300_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" "(syntax-e$1 s_5)" " s_5)))" "(if(pair? s_6)" -"(let-values(((thn306_0)" +"(let-values(((thn301_0)" "(let-values(((s_7)" "(car" " s_6)))" " s_7))" -"((els307_0)" +"((els302_0)" "(let-values(((s_7)" "(cdr" " s_6)))" @@ -72448,7 +72374,7 @@ static const char *startup_source = " s_7)))" "(if(pair?" " s_8)" -"(let-values(((els308_0)" +"(let-values(((els303_0)" "(let-values(((s_9)" "(car" " s_8)))" @@ -72471,34 +72397,34 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))))))" "(values" -" els308_0))" +" els303_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values thn306_0 els307_0))" +"(values thn301_0 els302_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values tst303_0 thn304_0 els305_0))" +"(values tst298_0 thn299_0 els300_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values if299_0 tst300_0 thn301_0 els302_0))" +"(values if294_0 tst295_0 thn296_0 els297_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t if295_0 tst296_0 thn297_0 els298_0))))))" +"(values #t if290_0 tst291_0 thn292_0 els293_0))))))" "(let-values(((expr-ctx_0)(as-expression-context ctx_0)))" "(let-values(((tail-ctx_0)" -"(let-values(((expr-ctx309_0) expr-ctx_0)((ctx310_0) ctx_0))" -"(as-tail-context.1 ctx310_0 expr-ctx309_0))))" +"(let-values(((expr-ctx304_0) expr-ctx_0)((ctx305_0) ctx_0))" +"(as-tail-context.1 ctx305_0 expr-ctx304_0))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx311_0) ctx_0)((s312_0) s_0))" -"(keep-as-needed.1 #f #f #f ctx311_0 s312_0))))" +"(let-values(((ctx306_0) ctx_0)((s307_0) s_0))" +"(keep-as-needed.1 #f #f #f ctx306_0 s307_0))))" "(let-values(((exp-tst_0)" -"(let-values(((temp313_0) tst296_0)((expr-ctx314_0) expr-ctx_0))" -"(expand.1 #f #f #f temp313_0 expr-ctx314_0))))" +"(let-values(((temp308_0) tst291_0)((expr-ctx309_0) expr-ctx_0))" +"(expand.1 #f #f temp308_0 expr-ctx309_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -72507,8 +72433,8 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((exp-thn_0)" -"(let-values(((temp315_0) thn297_0)((tail-ctx316_0) tail-ctx_0))" -"(expand.1 #f #f #f temp315_0 tail-ctx316_0))))" +"(let-values(((temp310_0) thn292_0)((tail-ctx311_0) tail-ctx_0))" +"(expand.1 #f #f temp310_0 tail-ctx311_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -72517,53 +72443,54 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((exp-els_0)" -"(let-values(((temp317_0) els298_0)((tail-ctx318_0) tail-ctx_0))" -"(expand.1 #f #f #f temp317_0 tail-ctx318_0))))" +"(let-values(((temp312_0) els293_0)((tail-ctx313_0) tail-ctx_0))" +"(expand.1 #f #f temp312_0 tail-ctx313_0))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-if8.1 rebuild-s_0 exp-tst_0 exp-thn_0 exp-els_0)" -"(let-values(((rebuild-s319_0) rebuild-s_0)" -"((temp320_0)(list if295_0 exp-tst_0 exp-thn_0 exp-els_0)))" -"(rebuild.1 #t rebuild-s319_0 temp320_0)))))))))))))))))))" +"(let-values(((rebuild-s314_0) rebuild-s_0)" +"((temp315_0)(list if290_0 exp-tst_0 exp-thn_0 exp-els_0)))" +"(rebuild.1 #t rebuild-s314_0 temp315_0)))))))))))))))))))" "(void" "(add-core-form!*" " 'with-continuation-mark" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-with-continuation-mark)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'prim-with-continuation-mark disarmed-s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 with-continuation-mark321_0 key322_0 val323_0 body324_0)" +"(let-values(((ok?_0 with-continuation-mark316_0 key317_0 val318_0 body319_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((with-continuation-mark321_0 key322_0 val323_0 body324_0)" +"(let-values(((with-continuation-mark316_0 key317_0 val318_0 body319_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((with-continuation-mark325_0)" +"(let-values(((with-continuation-mark320_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((key326_0 val327_0 body328_0)" +"((key321_0 val322_0 body323_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((key329_0)" +"(let-values(((key324_0)" "(let-values(((s_5)(car s_4))) s_5))" -"((val330_0 body331_0)" +"((val325_0 body326_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" "(syntax-e$1 s_5)" " s_5)))" "(if(pair? s_6)" -"(let-values(((val332_0)" +"(let-values(((val327_0)" "(let-values(((s_7)" "(car" " s_6)))" " s_7))" -"((body333_0)" +"((body328_0)" "(let-values(((s_7)" "(cdr" " s_6)))" @@ -72574,7 +72501,7 @@ static const char *startup_source = " s_7)" " s_7)))" "(if(pair? s_8)" -"(let-values(((body334_0)" +"(let-values(((body329_0)" "(let-values(((s_9)" "(car" " s_8)))" @@ -72597,36 +72524,36 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))))))" "(values" -" body334_0))" +" body329_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values val332_0 body333_0))" +"(values val327_0 body328_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values key329_0 val330_0 body331_0))" +"(values key324_0 val325_0 body326_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values with-continuation-mark325_0 key326_0 val327_0 body328_0))" +"(values with-continuation-mark320_0 key321_0 val322_0 body323_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t with-continuation-mark321_0 key322_0 val323_0 body324_0))))))" +"(values #t with-continuation-mark316_0 key317_0 val318_0 body319_0))))))" "(let-values(((expr-ctx_0)(as-expression-context ctx_0)))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx335_0) ctx_0)((s336_0) s_0))" -"(keep-as-needed.1 #f #f #f ctx335_0 s336_0))))" +"(let-values(((ctx330_0) ctx_0)((s331_0) s_0))" +"(keep-as-needed.1 #f #f #f ctx330_0 s331_0))))" "(let-values(((exp-key_0)" -"(let-values(((temp337_0) key322_0)((expr-ctx338_0) expr-ctx_0))" -"(expand.1 #f #f #f temp337_0 expr-ctx338_0))))" +"(let-values(((temp332_0) key317_0)((expr-ctx333_0) expr-ctx_0))" +"(expand.1 #f #f temp332_0 expr-ctx333_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'next)))(void)))" "(values))))" "(let-values(((exp-val_0)" -"(let-values(((temp339_0) val323_0)((expr-ctx340_0) expr-ctx_0))" -"(expand.1 #f #f #f temp339_0 expr-ctx340_0))))" +"(let-values(((temp334_0) val318_0)((expr-ctx335_0) expr-ctx_0))" +"(expand.1 #f #f temp334_0 expr-ctx335_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -72635,44 +72562,42 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((exp-body_0)" -"(let-values(((temp341_0) body324_0)" -"((temp342_0)" -"(let-values(((expr-ctx343_0) expr-ctx_0)((ctx344_0) ctx_0))" -"(as-tail-context.1 ctx344_0 expr-ctx343_0))))" -"(expand.1 #f #f #f temp341_0 temp342_0))))" +"(let-values(((temp336_0) body319_0)" +"((temp337_0)" +"(let-values(((expr-ctx338_0) expr-ctx_0)((ctx339_0) ctx_0))" +"(as-tail-context.1 ctx339_0 expr-ctx338_0))))" +"(expand.1 #f #f temp336_0 temp337_0))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-with-continuation-mark10.1 rebuild-s_0 exp-key_0 exp-val_0 exp-body_0)" -"(let-values(((rebuild-s345_0) rebuild-s_0)" -"((temp346_0)(list with-continuation-mark321_0 exp-key_0 exp-val_0 exp-body_0)))" -"(rebuild.1 #t rebuild-s345_0 temp346_0))))))))))))))))" +"(let-values(((rebuild-s340_0) rebuild-s_0)" +"((temp341_0)(list with-continuation-mark316_0 exp-key_0 exp-val_0 exp-body_0)))" +"(rebuild.1 #t rebuild-s340_0 temp341_0))))))))))))))))" "(define-values" "(make-begin.1)" -"(lambda(last-is-tail?13_0 list-start-index12_0 log-tag16_0 parsed-begin17_0)" +"(lambda(last-is-tail?10_0 log-tag12_0 parsed-begin13_0)" "(begin" " 'make-begin" -"(let-values(((log-tag_0) log-tag16_0))" -"(let-values(((parsed-begin_0) parsed-begin17_0))" -"(let-values(((list-start-index_0) list-start-index12_0))" -"(let-values(((last-is-tail?_0) last-is-tail?13_0))" +"(let-values(((log-tag_0) log-tag12_0))" +"(let-values(((parsed-begin_0) parsed-begin13_0))" +"(let-values(((last-is-tail?_0) last-is-tail?10_0))" "(let-values()" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 log-tag_0)))" +"(let-values()(let-values()(call-expand-observe obs_0 log-tag_0 disarmed-s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 begin347_0 e348_0)" +"(let-values(((ok?_0 begin342_0 e343_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((begin347_0 e348_0)" +"(let-values(((begin342_0 e343_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((begin349_0)" -"(let-values(((s_3)(car s_2))) s_3))" -"((e350_0)" +"(let-values(((begin344_0)(let-values(((s_3)(car s_2))) s_3))" +"((e345_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" @@ -72684,109 +72609,75 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(if(null? flat-s_0)" "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values() flat-s_0))))))))" -"(values begin349_0 e350_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t begin347_0 e348_0))))))" +"(values begin344_0 e345_0))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" +"(values #t begin342_0 e343_0))))))" "(let-values(((expr-ctx_0)" "(if last-is-tail?_0" "(as-begin-expression-context ctx_0)" "(as-expression-context ctx_0))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx351_0) ctx_0)((s352_0) s_0))" -"(keep-as-needed.1 #f #f #f ctx351_0 s352_0))))" +"(let-values(((ctx346_0) ctx_0)((s347_0) s_0))" +"(keep-as-needed.1 #f #f #f ctx346_0 s347_0))))" "(let-values(((exp-es_0)" "((letrec-values(((loop_0)" -"(lambda(es_0 index_0)" +"(lambda(es_0)" "(begin" " 'loop" -"(begin" -"(if(zero? index_0)" -"(let-values()" -"(let-values(((obs_0)" -"(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(begin" -"(if(zero? list-start-index_0)" -"(void)" -"(let-values()" -"(call-expand-observe obs_0 'next)))" -"(call-expand-observe" -" obs_0" -" 'enter-list" -"(datum->syntax$1 #f es_0 rebuild-s_0))))" -"(void))))" -"(void))" "(if(null? es_0)" "(let-values() null)" "(let-values()" "(let-values(((rest-es_0)(cdr es_0)))" "(begin" "(let-values(((obs_0)" -"(expand-context-observer" -" ctx_0)))" +"(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" "(let-values()" "(call-expand-observe obs_0 'next)))" "(void)))" "(cons" -"(let-values(((temp353_0)(car es_0))" -"((temp354_0)" +"(let-values(((temp348_0)(car es_0))" +"((temp349_0)" "(if(if last-is-tail?_0" "(null? rest-es_0)" " #f)" -"(let-values(((expr-ctx355_0)" +"(let-values(((expr-ctx350_0)" " expr-ctx_0)" -"((ctx356_0)" -" ctx_0))" +"((ctx351_0) ctx_0))" "(as-tail-context.1" -" ctx356_0" -" expr-ctx355_0))" +" ctx351_0" +" expr-ctx350_0))" " expr-ctx_0)))" -"(expand.1 #f #f #f temp353_0 temp354_0))" -"(loop_0 rest-es_0(sub1 index_0))))))))))))" +"(expand.1 #f #f temp348_0 temp349_0))" +"(loop_0 rest-es_0))))))))))" " loop_0)" -" e348_0" -" list-start-index_0)))" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'exit-list" -"(datum->syntax$1 #f(list-tail exp-es_0 list-start-index_0) rebuild-s_0))))" -"(void)))" +" e343_0)))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-begin_0 rebuild-s_0 exp-es_0)" -"(let-values(((rebuild-s357_0) rebuild-s_0)((temp358_0)(cons begin347_0 exp-es_0)))" -"(rebuild.1 #t rebuild-s357_0 temp358_0)))))))))))))))))))" +"(let-values(((rebuild-s352_0) rebuild-s_0)((temp353_0)(cons begin342_0 exp-es_0)))" +"(rebuild.1 #t rebuild-s352_0 temp353_0)))))))))))))))))" "(void" "(add-core-form!*" " 'begin" "(let-values(((nonempty-begin_0)" -"(let-values(((temp359_0) 'prim-begin)" -"((parsed-begin360_0) parsed-begin12.1)" -"((temp361_0) 0)" -"((temp362_0) #t))" -"(make-begin.1 temp362_0 temp361_0 temp359_0 parsed-begin360_0))))" +"(let-values(((temp354_0) 'prim-begin)((parsed-begin355_0) parsed-begin12.1)((temp356_0) #t))" +"(make-begin.1 temp356_0 temp354_0 parsed-begin355_0))))" "(lambda(s_0 ctx_0)" "(let-values(((context_0)(expand-context-context ctx_0)))" "(if(let-values(((or-part_0)(eq? context_0 'top-level)))(if or-part_0 or-part_0(eq? context_0 'module)))" "(let-values()" "(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 begin363_0)" +"(let-values(((ok?_0 begin357_0)" "(let-values(((s_1) disarmed-s_0))" "(if(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" @@ -72796,9 +72687,9 @@ static const char *startup_source = " #f)" " #f))" "(let-values()" -"(let-values(((begin363_0)" +"(let-values(((begin357_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" -"(let-values(((begin364_0)(let-values(((s_3)(car s_2))) s_3))" +"(let-values(((begin358_0)(let-values(((s_3)(car s_2))) s_3))" "(()" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" @@ -72806,16 +72697,16 @@ static const char *startup_source = "(syntax-e$1 s_3)" " s_3)))" "(values)))))" -"(values begin364_0)))))" -"(values #t begin363_0)))" +"(values begin358_0)))))" +"(values #t begin357_0)))" "(values #f #f)))))" "(if ok?_0 s_0(nonempty-begin_0 s_0 ctx_0)))))" "(let-values()(nonempty-begin_0 s_0 ctx_0))))))))" "(void" "(add-core-form!*" " 'begin0" -"(let-values(((temp365_0) 'prim-begin0)((parsed-begin0366_0) parsed-begin013.1)((temp367_0) 1)((temp368_0) #f))" -"(make-begin.1 temp368_0 temp367_0 temp365_0 parsed-begin0366_0))))" +"(let-values(((temp359_0) 'prim-begin0)((parsed-begin0360_0) parsed-begin013.1)((temp361_0) #f))" +"(make-begin.1 temp361_0 temp359_0 parsed-begin0360_0))))" "(define-values" "(register-eventual-variable!?)" "(lambda(id_0 ctx_0)" @@ -72833,41 +72724,43 @@ static const char *startup_source = "(void" "(add-core-form!*" " '#%top" -"(let-values(((...nder/expand/expr.rkt:594:1_0)" -"(lambda(s370_0 ctx371_0 implicit-omitted?369_0)" +"(let-values(((...nder/expand/expr.rkt:562:1_0)" +"(lambda(s363_0 ctx364_0 implicit-omitted?362_0)" "(begin" -" '...nder/expand/expr.rkt:594:1" -"(let-values(((s_0) s370_0))" -"(let-values(((ctx_0) ctx371_0))" -"(let-values(((implicit-omitted?_0) implicit-omitted?369_0))" +" '...nder/expand/expr.rkt:562:1" +"(let-values(((s_0) s363_0))" +"(let-values(((ctx_0) ctx364_0))" +"(let-values(((implicit-omitted?_0) implicit-omitted?362_0))" "(let-values()" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-#%top)))" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'prim-#%top disarmed-s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((id_0)" "(if implicit-omitted?_0" "(let-values() s_0)" "(let-values()" -"(let-values(((ok?_0 #%top372_0 id373_0)" +"(let-values(((ok?_0 #%top365_0 id366_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%top372_0 id373_0)" +"(let-values(((#%top365_0 id366_0)" "(let-values(((s_2)" "(if(syntax?$1 s_1)" "(syntax-e$1 s_1)" " s_1)))" "(if(pair? s_2)" -"(let-values(((#%top374_0)" +"(let-values(((#%top367_0)" "(let-values(((s_3)" "(car" " s_2)))" " s_3))" -"((id375_0)" +"((id368_0)" "(let-values(((s_3)" "(cdr" " s_2)))" @@ -72888,25 +72781,25 @@ static const char *startup_source = " \"not an identifier\"" " orig-s_0" " s_3)))))" -"(values #%top374_0 id375_0))" +"(values #%top367_0 id368_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" -"(values #t #%top372_0 id373_0))))))" -" id373_0)))))" +"(values #t #%top365_0 id366_0))))))" +" id366_0)))))" "(let-values(((b_0)" -"(let-values(((id376_0) id_0)" -"((temp377_0)(expand-context-phase ctx_0))" -"((temp378_0) 'ambiguous))" +"(let-values(((id369_0) id_0)" +"((temp370_0)(expand-context-phase ctx_0))" +"((temp371_0) 'ambiguous))" "(resolve+shift.1" -" temp378_0" +" temp371_0" " #f" " null" " unsafe-undefined" " #f" -" id376_0" -" temp377_0))))" +" id369_0" +" temp370_0))))" "(if(eq? b_0 'ambiguous)" "(let-values()(raise-ambiguous-error id_0 ctx_0))" "(if(if b_0" @@ -72939,10 +72832,10 @@ static const char *startup_source = " id_0" "(root-expand-context-top-level-bind-scope ctx_0))))" "(let-values(((tl-b_0)" -"(let-values(((tl-id379_0) tl-id_0)" -"((temp380_0)" +"(let-values(((tl-id372_0) tl-id_0)" +"((temp373_0)" "(expand-context-phase ctx_0)))" -"(resolve.1 #f #f null #f tl-id379_0 temp380_0))))" +"(resolve.1 #f #f null #f tl-id372_0 temp373_0))))" "(if tl-b_0" "(let-values()" "(if(expand-context-to-parsed? ctx_0)" @@ -72950,10 +72843,10 @@ static const char *startup_source = "(if implicit-omitted?_0" "(let-values() id_0)" "(let-values()" -"(let-values(((ok?_0 #%top381_0 id382_0)" +"(let-values(((ok?_0 #%top374_0 id375_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%top381_0 id382_0)" +"(let-values(((#%top374_0 id375_0)" "(let-values(((s_2)" "(if(syntax?$1" " s_1)" @@ -72961,12 +72854,12 @@ static const char *startup_source = " s_1)" " s_1)))" "(if(pair? s_2)" -"(let-values(((#%top383_0)" +"(let-values(((#%top376_0)" "(let-values(((s_3)" "(car" " s_2)))" " s_3))" -"((id384_0)" +"((id377_0)" "(let-values(((s_3)" "(cdr" " s_2)))" @@ -72988,46 +72881,48 @@ static const char *startup_source = " orig-s_0" " s_3)))))" "(values" -" #%top383_0" -" id384_0))" +" #%top376_0" +" id377_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" -"(values #t #%top381_0 id382_0))))))" -"(let-values(((s385_0) s_0)" -"((temp386_0)(cons #%top381_0 id_0)))" -"(rebuild.1 #t s385_0 temp386_0)))))))" +"(values #t #%top374_0 id375_0))))))" +"(let-values(((s378_0) s_0)" +"((temp379_0)(cons #%top374_0 id_0)))" +"(rebuild.1 #t s378_0 temp379_0)))))))" "(let-values()" "(if(expand-context-to-parsed? ctx_0)" "(parsed-top-id4.1 id_0 b_0 #f)" " s_0)))))))))))))))))))))))" "(case-lambda" -"((s_0 ctx_0)(...nder/expand/expr.rkt:594:1_0 s_0 ctx_0 #f))" -"((s_0 ctx_0 implicit-omitted?369_0)(...nder/expand/expr.rkt:594:1_0 s_0 ctx_0 implicit-omitted?369_0))))))" +"((s_0 ctx_0)(...nder/expand/expr.rkt:562:1_0 s_0 ctx_0 #f))" +"((s_0 ctx_0 implicit-omitted?362_0)(...nder/expand/expr.rkt:562:1_0 s_0 ctx_0 implicit-omitted?362_0))))))" "(void" "(add-core-form!*" " 'set!" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-set!)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-set! disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 set!387_0 id388_0 rhs389_0)" +"(let-values(((ok?_0 set!380_0 id381_0 rhs382_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((set!387_0 id388_0 rhs389_0)" +"(let-values(((set!380_0 id381_0 rhs382_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((set!390_0)(let-values(((s_3)(car s_2))) s_3))" -"((id391_0 rhs392_0)" +"(let-values(((set!383_0)(let-values(((s_3)(car s_2))) s_3))" +"((id384_0 rhs385_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((id393_0)" +"(let-values(((id386_0)" "(let-values(((s_5)(car s_4)))" "(if(let-values(((or-part_0)" "(if(syntax?$1 s_5)" @@ -73043,14 +72938,14 @@ static const char *startup_source = " \"not an identifier\"" " orig-s_0" " s_5))))" -"((rhs394_0)" +"((rhs387_0)" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" "(syntax-e$1 s_5)" " s_5)))" "(if(pair? s_6)" -"(let-values(((rhs395_0)" +"(let-values(((rhs388_0)" "(let-values(((s_7)" "(car" " s_6)))" @@ -73071,27 +72966,27 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values rhs395_0))" +"(values rhs388_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values id393_0 rhs394_0))" +"(values id386_0 rhs387_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values set!390_0 id391_0 rhs392_0))" +"(values set!383_0 id384_0 rhs385_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t set!387_0 id388_0 rhs389_0))))))" -"(let-values(((orig-id_0) id388_0))" +"(values #t set!380_0 id381_0 rhs382_0))))))" +"(let-values(((orig-id_0) id381_0))" "((letrec-values(((rename-loop_0)" "(lambda(id_0 from-rename?_0)" "(begin" " 'rename-loop" "(let-values(((binding_0)" -"(let-values(((id396_0) id_0)" -"((temp397_0)(expand-context-phase ctx_0))" -"((temp398_0) 'ambiguous)" -"((temp399_0) #t))" -"(resolve+shift.1 temp398_0 #f null temp399_0 #f id396_0 temp397_0))))" +"(let-values(((id389_0) id_0)" +"((temp390_0)(expand-context-phase ctx_0))" +"((temp391_0) 'ambiguous)" +"((temp392_0) #t))" +"(resolve+shift.1 temp391_0 #f null temp392_0 #f id389_0 temp390_0))))" "(let-values((()" "(begin" "(if(eq? binding_0 'ambiguous)" @@ -73100,10 +72995,10 @@ static const char *startup_source = "(values))))" "(let-values(((t_0 primitive?_0 insp_0 protected?_0)" "(if binding_0" -"(let-values(((binding400_0) binding_0)" -"((ctx401_0) ctx_0)" -"((s402_0) s_0))" -"(lookup.1 #f #f binding400_0 ctx401_0 s402_0))" +"(let-values(((binding393_0) binding_0)" +"((ctx394_0) ctx_0)" +"((s395_0) s_0))" +"(lookup.1 #f #f binding393_0 ctx394_0 s395_0))" "(values #f #f #f #f))))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -73149,33 +73044,33 @@ static const char *startup_source = "(register-variable-referenced-if-local! binding_0)" "(values))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx403_0) ctx_0)((s404_0) s_0))" -"(keep-as-needed.1 #f #f #f ctx403_0 s404_0))))" +"(let-values(((ctx396_0) ctx_0)((s397_0) s_0))" +"(keep-as-needed.1 #f #f #f ctx396_0 s397_0))))" "(let-values(((exp-rhs_0)" -"(let-values(((temp405_0) rhs389_0)" -"((temp406_0)" +"(let-values(((temp398_0) rhs382_0)" +"((temp399_0)" "(as-expression-context ctx_0)))" -"(expand.1 #f #f #f temp405_0 temp406_0))))" +"(expand.1 #f #f temp398_0 temp399_0))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-set!9.1" " rebuild-s_0" "(parsed-id2.1 id_0 binding_0 #f)" " exp-rhs_0)" -"(let-values(((rebuild-s407_0) rebuild-s_0)" -"((temp408_0)" +"(let-values(((rebuild-s400_0) rebuild-s_0)" +"((temp401_0)" "(list" -" set!387_0" -"(let-values(((id409_0) id_0)" -"((t410_0) t_0)" -"((temp411_0)" +" set!380_0" +"(let-values(((id402_0) id_0)" +"((t403_0) t_0)" +"((temp404_0)" "(free-id-set-empty-or-just-module*?" "(expand-context-stops ctx_0))))" "(substitute-variable.1" -" temp411_0" -" id409_0" -" t410_0))" +" temp404_0" +" id402_0" +" t403_0))" " exp-rhs_0)))" -"(rebuild.1 #t rebuild-s407_0 temp408_0)))))))))" +"(rebuild.1 #t rebuild-s400_0 temp401_0)))))))))" "(if(not binding_0)" "(let-values()" "(raise-unbound-syntax-error" @@ -73189,62 +73084,62 @@ static const char *startup_source = "(let-values()" "(if(not-in-this-expand-context? t_0 ctx_0)" "(let-values()" -"(let-values(((temp412_0)" +"(let-values(((temp405_0)" "(avoid-current-expand-context" "(substitute-set!-rename" " s_0" " disarmed-s_0" -" set!387_0" -" rhs389_0" +" set!380_0" +" rhs382_0" " id_0" " from-rename?_0" " ctx_0)" " t_0" " ctx_0))" -"((ctx413_0) ctx_0))" -"(expand.1 #f #f #f temp412_0 ctx413_0)))" +"((ctx406_0) ctx_0))" +"(expand.1 #f #f temp405_0 ctx406_0)))" "(let-values()" "(let-values(((exp-s_0 re-ctx_0)" -"(let-values(((t414_0) t_0)" -"((insp415_0) insp_0)" -"((s416_0) s_0)" -"((orig-id417_0) orig-id_0)" -"((ctx418_0) ctx_0)" -"((binding419_0) binding_0)" -"((orig-id420_0) orig-id_0))" +"(let-values(((t407_0) t_0)" +"((insp408_0) insp_0)" +"((s409_0) s_0)" +"((orig-id410_0) orig-id_0)" +"((ctx411_0) ctx_0)" +"((binding412_0) binding_0)" +"((orig-id413_0) orig-id_0))" "(apply-transformer.1" -" orig-id420_0" -" t414_0" -" insp415_0" -" s416_0" -" orig-id417_0" -" ctx418_0" -" binding419_0))))" +" orig-id413_0" +" t407_0" +" insp408_0" +" s409_0" +" orig-id410_0" +" ctx411_0" +" binding412_0))))" "(if(expand-context-just-once? ctx_0)" "(let-values() exp-s_0)" "(let-values()" -"(let-values(((exp-s421_0) exp-s_0)" -"((re-ctx422_0) re-ctx_0))" -"(expand.1 #f #f #f exp-s421_0 re-ctx422_0))))))))" +"(let-values(((exp-s414_0) exp-s_0)" +"((re-ctx415_0) re-ctx_0))" +"(expand.1 #f #f exp-s414_0 re-ctx415_0))))))))" "(if(1/rename-transformer? t_0)" "(let-values()" "(if(not-in-this-expand-context? t_0 ctx_0)" "(let-values()" -"(let-values(((temp423_0)" +"(let-values(((temp416_0)" "(avoid-current-expand-context" "(substitute-set!-rename" " s_0" " disarmed-s_0" -" set!387_0" -" rhs389_0" +" set!380_0" +" rhs382_0" " id_0" " from-rename?_0" " ctx_0" " t_0)" " t_0" " ctx_0))" -"((ctx424_0) ctx_0))" -"(expand.1 #f #f #f temp423_0 ctx424_0)))" +"((ctx417_0) ctx_0))" +"(expand.1 #f #f temp416_0 ctx417_0)))" "(let-values()" "(rename-loop_0" "(syntax-track-origin$1" @@ -73264,17 +73159,17 @@ static const char *startup_source = "(define-values" "(substitute-set!-rename)" "(let-values(((substitute-set!-rename_0)" -"(lambda(s20_0 disarmed-s21_0 set!-id22_0 id23_0 rhs-s24_0 from-rename?25_0 ctx26_0 t19_0)" +"(lambda(s16_0 disarmed-s17_0 set!-id18_0 id19_0 rhs-s20_0 from-rename?21_0 ctx22_0 t15_0)" "(begin" " 'substitute-set!-rename" -"(let-values(((s_0) s20_0))" -"(let-values(((disarmed-s_0) disarmed-s21_0))" -"(let-values(((set!-id_0) set!-id22_0))" -"(let-values(((id_0) id23_0))" -"(let-values(((rhs-s_0) rhs-s24_0))" -"(let-values(((from-rename?_0) from-rename?25_0))" -"(let-values(((ctx_0) ctx26_0))" -"(let-values(((t_0) t19_0))" +"(let-values(((s_0) s16_0))" +"(let-values(((disarmed-s_0) disarmed-s17_0))" +"(let-values(((set!-id_0) set!-id18_0))" +"(let-values(((id_0) id19_0))" +"(let-values(((rhs-s_0) rhs-s20_0))" +"(let-values(((from-rename?_0) from-rename?21_0))" +"(let-values(((ctx_0) ctx22_0))" +"(let-values(((t_0) t15_0))" "(let-values()" "(if(let-values(((or-part_0) t_0))(if or-part_0 or-part_0 from-rename?_0))" "(let-values()" @@ -73291,21 +73186,22 @@ static const char *startup_source = "(case-lambda" "((s_0 disarmed-s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0)" "(begin(substitute-set!-rename_0 s_0 disarmed-s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0 #f)))" -"((s_0 disarmed-s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0 t19_0)" -"(substitute-set!-rename_0 s_0 disarmed-s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0 t19_0)))))" +"((s_0 disarmed-s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0 t15_0)" +"(substitute-set!-rename_0 s_0 disarmed-s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0 t15_0)))))" "(void" "(add-core-form!*" " '#%variable-reference" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-#%variable-reference)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'prim-#%variable-reference disarmed-s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 #%variable-reference425_0 id426_0)" +"(let-values(((ok?_0 #%variable-reference418_0 id419_0)" "(let-values(((s_1) disarmed-s_0))" "(if(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" @@ -73325,15 +73221,15 @@ static const char *startup_source = " #f)" " #f))" "(let-values()" -"(let-values(((#%variable-reference425_0 id426_0)" +"(let-values(((#%variable-reference418_0 id419_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" -"(let-values(((#%variable-reference427_0)" +"(let-values(((#%variable-reference420_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((id428_0)" +"((id421_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" -"(let-values(((id429_0)" +"(let-values(((id422_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -73342,11 +73238,11 @@ static const char *startup_source = "(syntax-e$1 s_5)" " s_5)))" "(values)))))" -"(values id429_0))))))" -"(values #%variable-reference427_0 id428_0)))))" -"(values #t #%variable-reference425_0 id426_0)))" +"(values id422_0))))))" +"(values #%variable-reference420_0 id421_0)))))" +"(values #t #%variable-reference418_0 id419_0)))" "(values #f #f #f)))))" -"(let-values(((ok?_1 #%variable-reference430_0 #%top431_0 id432_0)" +"(let-values(((ok?_1 #%variable-reference423_0 #%top424_0 id425_0)" "(let-values(((s_1) disarmed-s_0))" "(if(if(not ok?_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" @@ -73376,31 +73272,31 @@ static const char *startup_source = " #f))" " #f)" "(let-values()" -"(let-values(((#%variable-reference430_0 #%top431_0 id432_0)" +"(let-values(((#%variable-reference423_0 #%top424_0 id425_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" -"(let-values(((#%variable-reference433_0)" +"(let-values(((#%variable-reference426_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((#%top434_0 id435_0)" +"((#%top427_0 id428_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" -"(let-values(((#%top436_0 id437_0)" +"(let-values(((#%top429_0 id430_0)" "(let-values(((s_5)(car s_4)))" "(let-values(((s_6)" "(if(syntax?$1 s_5)" "(syntax-e$1 s_5)" " s_5)))" -"(let-values(((#%top438_0)" +"(let-values(((#%top431_0)" "(let-values(((s_7)" "(car" " s_6)))" " s_7))" -"((id439_0)" +"((id432_0)" "(let-values(((s_7)" "(cdr" " s_6)))" " s_7)))" -"(values #%top438_0 id439_0)))))" +"(values #%top431_0 id432_0)))))" "(()" "(let-values(((s_5)(cdr s_4)))" "(let-values(((s_6)" @@ -73408,18 +73304,18 @@ static const char *startup_source = "(syntax-e$1 s_5)" " s_5)))" "(values)))))" -"(values #%top436_0 id437_0))))))" -"(values #%variable-reference433_0 #%top434_0 id435_0)))))" -"(values #t #%variable-reference430_0 #%top431_0 id432_0)))" +"(values #%top429_0 id430_0))))))" +"(values #%variable-reference426_0 #%top427_0 id428_0)))))" +"(values #t #%variable-reference423_0 #%top424_0 id425_0)))" "(values #f #f #f #f)))))" -"(let-values(((ok?_2 #%variable-reference440_0)" +"(let-values(((ok?_2 #%variable-reference433_0)" "(let-values(((s_1) disarmed-s_0))" "(if(if(not(let-values(((or-part_0) ok?_0))(if or-part_0 or-part_0 ok?_1))) #t #f)" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%variable-reference440_0)" +"(let-values(((#%variable-reference433_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%variable-reference441_0)" +"(let-values(((#%variable-reference434_0)" "(let-values(((s_3)(car s_2))) s_3))" "(()" "(let-values(((s_3)(cdr s_2)))" @@ -73433,18 +73329,18 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values #%variable-reference441_0))" +"(values #%variable-reference434_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%variable-reference440_0)))" +"(values #t #%variable-reference433_0)))" "(values #f #f)))))" "(if(let-values(((or-part_0) ok?_0))(if or-part_0 or-part_0 ok?_1))" "(let-values()" -"(let-values(((var-id_0)(if ok?_0 id426_0 id432_0)))" +"(let-values(((var-id_0)(if ok?_0 id419_0 id425_0)))" "(let-values(((binding_0)" -"(let-values(((var-id442_0) var-id_0)" -"((temp443_0)(expand-context-phase ctx_0))" -"((temp444_0) 'ambiguous))" -"(resolve+shift.1 temp444_0 #f null unsafe-undefined #f var-id442_0 temp443_0))))" +"(let-values(((var-id435_0) var-id_0)" +"((temp436_0)(expand-context-phase ctx_0))" +"((temp437_0) 'ambiguous))" +"(resolve+shift.1 temp437_0 #f null unsafe-undefined #f var-id435_0 temp436_0))))" "(let-values((()" "(begin" "(if(eq? binding_0 'ambiguous)" @@ -73467,12 +73363,12 @@ static const char *startup_source = "(values))))" "(let-values(((t_0 primitive?_0 insp-of-t_0 protected?_0)" "(if binding_0" -"(let-values(((binding445_0) binding_0)" -"((ctx446_0) ctx_0)" -"((var-id447_0) var-id_0)" -"((s448_0) s_0)" -"((temp449_0)(expand-context-in-local-expand? ctx_0)))" -"(lookup.1 s448_0 temp449_0 binding445_0 ctx446_0 var-id447_0))" +"(let-values(((binding438_0) binding_0)" +"((ctx439_0) ctx_0)" +"((var-id440_0) var-id_0)" +"((s441_0) s_0)" +"((temp442_0)(expand-context-in-local-expand? ctx_0)))" +"(lookup.1 s441_0 temp442_0 binding438_0 ctx439_0 var-id440_0))" "(values #f #f #f #f))))" "(begin" "(if(if t_0(not(variable? t_0)) #f)" @@ -73496,25 +73392,27 @@ static const char *startup_source = "(add-core-form!*" " '#%expression" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-#%expression)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-#%expression disarmed-s_0)))" +"(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" -"(let-values(((ok?_0 #%expression450_0 e451_0)" +"(let-values(((ok?_0 #%expression443_0 e444_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%expression450_0 e451_0)" +"(let-values(((#%expression443_0 e444_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%expression452_0)(let-values(((s_3)(car s_2))) s_3))" -"((e453_0)" +"(let-values(((#%expression445_0)(let-values(((s_3)(car s_2))) s_3))" +"((e446_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" -"(let-values(((e454_0)" +"(let-values(((e447_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -73528,20 +73426,20 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values e454_0))" +"(values e447_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values #%expression452_0 e453_0))" +"(values #%expression445_0 e446_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%expression450_0 e451_0))))))" +"(values #t #%expression443_0 e444_0))))))" "(let-values(((rebuild-s_0)" -"(let-values(((ctx455_0) ctx_0)((s456_0) s_0)((temp457_0) #t))" -"(keep-as-needed.1 temp457_0 #f #f ctx455_0 s456_0))))" +"(let-values(((ctx448_0) ctx_0)((s449_0) s_0)((temp450_0) #t))" +"(keep-as-needed.1 temp450_0 #f #f ctx448_0 s449_0))))" "(let-values(((exp-e_0)" -"(let-values(((temp458_0) e451_0)" -"((temp459_0)" -"(let-values(((temp460_0)(as-expression-context ctx_0))((ctx461_0) ctx_0))" -"(as-tail-context.1 ctx461_0 temp460_0))))" -"(expand.1 #f #f #f temp458_0 temp459_0))))" +"(let-values(((temp451_0) e444_0)" +"((temp452_0)" +"(let-values(((temp453_0)(as-expression-context ctx_0))((ctx454_0) ctx_0))" +"(as-tail-context.1 ctx454_0 temp453_0))))" +"(expand.1 #f #f temp451_0 temp452_0))))" "(if(expand-context-to-parsed? ctx_0)" " exp-e_0" "(if(let-values(((or-part_0)" @@ -73550,8 +73448,8 @@ static const char *startup_source = " #f)))" "(if or-part_0 or-part_0(eq? 'top-level(expand-context-context ctx_0))))" "(let-values()" -"(let-values(((rebuild-s462_0) rebuild-s_0)((temp463_0)(list #%expression450_0 exp-e_0)))" -"(rebuild.1 #t rebuild-s462_0 temp463_0)))" +"(let-values(((rebuild-s455_0) rebuild-s_0)((temp456_0)(list #%expression443_0 exp-e_0)))" +"(rebuild.1 #t rebuild-s455_0 temp456_0)))" "(let-values()" "(let-values(((result-s_0)(syntax-track-origin$1 exp-e_0 rebuild-s_0)))" "(begin" @@ -75620,7 +75518,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " temp104_0" " temp105_0))))" "(let-values((()" @@ -76551,7 +76448,7 @@ static const char *startup_source = "(let-values()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module #f)))(void)))" " (raise-syntax-error$1 #f \"allowed only at the top level\" s_0))))" "(if log-performance?(let-values()(start-performance-region 'expand 'module))(void))" "(begin0" @@ -76565,7 +76462,7 @@ static const char *startup_source = "(lambda(s_0 ctx_0)" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module #f)))(void)))" " (raise-syntax-error$1 #f \"illegal use (not in a module top-level)\" s_0)))))" "(void" "(add-core-form!*" @@ -76573,7 +76470,7 @@ static const char *startup_source = "(lambda(s_0 ctx_0)" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module-begin)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module-begin #f)))(void)))" "(if(eq?(expand-context-context ctx_0) 'module-begin)" "(void)" " (let-values () (raise-syntax-error$1 #f \"not in a module-definition context\" s_0)))" @@ -76642,7 +76539,7 @@ static const char *startup_source = "(lambda(s_0 ctx_0)" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-declare)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-declare #f)))(void)))" " (raise-syntax-error$1 #f \"not allowed outside of a module body\" s_0)))))" "(define-values" "(expand-module.1)" @@ -76670,14 +76567,15 @@ static const char *startup_source = "(make-hasheq)" " modules-being-compiled6_0)))" "(let-values()" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer init-ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-module)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'prim-module disarmed-s_0)))" "(void)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((ok?_0 module200_0 id:module-name201_0 initial-require202_0 body203_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" @@ -77242,6 +77140,20 @@ static const char *startup_source = "(initial-require!_0" " temp220_0))" "(values))))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" init-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'rename-one" +" bodys_0)))" +"(void)))" +"(values))))" "(let-values(((again?_0)" " #f))" "(letrec-values(((module-begin-k_0)" @@ -77405,7 +77317,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner275_0" @@ -77438,26 +77350,12 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((added-s_0)" "(add-scope" " mb-s_0" " inside-scope_0)))" -"(let-values((()" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" ctx_1)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'rename-one" -" added-s_0)))" -"(void)))" -"(values))))" "(let-values(((disarmed-mb-s_0)" "(syntax-disarm$1" " added-s_0)))" @@ -77518,6 +77416,20 @@ static const char *startup_source = " body270_0))))))" "(let-values(((bodys_1)" " body270_0))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_1)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'rename-one" +" added-s_0)))" +"(void)))" +"(values))))" "(let-values(((rebuild-mb-s_0)" "(let-values(((ctx287_0)" " ctx_1)" @@ -77674,7 +77586,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner300_0" @@ -77705,7 +77617,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((partially-expanded-bodys_0)" "(let-values(((bodys318_0)" @@ -77862,7 +77774,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner336_0" @@ -77894,7 +77806,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((partially-expanded-bodys289_0)" " partially-expanded-bodys_0)" @@ -77912,7 +77824,7 @@ static const char *startup_source = " modules-being-compiled_0)" "((mpis-to-reset296_0)" " mpis-to-reset_0))" -"(finish-expanding-body-expressons.1" +"(finish-expanding-body-expressions.1" " compiled-submodules294_0" " body-ctx291_0" " declared-submodule-names293_0" @@ -77928,6 +77840,19 @@ static const char *startup_source = " ctx_1))))" "(let-values((()" "(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_1)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'next-group)))" +"(void)))" +"(values))))" +"(let-values((()" +"(begin" "(check-defined-by-now" " need-eventually-defined_0" " self_0" @@ -77986,7 +77911,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"cannot be cross-phase persistent due to required modules\"" +" \"cannot be cross-phase persistent due to required modules\"" " rebuild-s_0" "(hash-ref" " declared-keywords_0" @@ -78006,7 +77931,7 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'next)))" +" 'next-group)))" "(void)))" "(values))))" "(let-values(((submod-m-ns_0)" @@ -78094,7 +78019,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner353_0" @@ -78126,7 +78051,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((declare-enclosing-module_0)" "(promise1.1" @@ -78240,7 +78165,7 @@ static const char *startup_source = "(parsed-only" " fully-expanded-bodys_0))))" "(let-values()" -" mb-result-s_0)))))))))))))))))))))))))))))))))" +" mb-result-s_0))))))))))))))))))))))))))))))))))" "(let-values(((mb-ctx_0)" "(let-values(((v_0)" " ctx_0))" @@ -78321,7 +78246,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner381_0" @@ -78354,7 +78279,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((mb-scopes-s_0)" "(if keep-enclosing-scope-at-phase_0" @@ -78390,6 +78315,19 @@ static const char *startup_source = " s395_0" " mb-scopes-s390_0" " bodys388_0))))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'next)))" +"(void)))" +"(values))))" "(let-values(((expanded-mb_0)" "(begin" "(if log-performance?" @@ -78447,12 +78385,11 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(expand.1" " #f" " #f" -" #f" " mb396_0" " temp397_0)))" "(if log-performance?" @@ -78612,7 +78549,7 @@ static const char *startup_source = " result-s_0" " result-form_0))" "(let-values()" -" result-s_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" +" result-s_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" "(define-values" "(ensure-module-begin.1)" "(lambda(ctx20_0 def-ctx-scopes21_0 m-ns19_0 module-name-sym17_0 phase22_0 s23_0 scopes-s18_0 bodys31_0)" @@ -78661,32 +78598,44 @@ static const char *startup_source = "(let-values(((mb_0)" "(if(= 1(length bodys_0))" "(let-values()" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe obs_0 'rename-one(car bodys_0))))" -"(void)))" "(if(eq?" " '#%module-begin" "(core-form-sym(syntax-disarm$1(car bodys_0)) phase_0))" "(let-values()(car bodys_0))" "(let-values()" +"(let-values(((named-body-s_0)" +"(add-enclosing-name-property" +"(car bodys_0)" +" module-name-sym_0)))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'track-syntax" +" 'property" +" named-body-s_0" +"(car bodys_0))))" +"(void)))" +"(values))))" "(let-values(((partly-expanded-body_0)" "(begin" "(if log-performance?" "(let-values()" -"(start-performance-region 'expand 'module-begin))" +"(start-performance-region" +" 'expand" +" 'module-begin))" "(void))" "(begin0" "(let-values()" -"(let-values(((temp409_0)" -"(add-enclosing-name-property" -"(car bodys_0)" -" module-name-sym_0))" +"(let-values(((named-body-s409_0)" +" named-body-s_0)" "((temp410_0)(make-mb-ctx_0)))" -"(expand.1 #f #f #f temp409_0 temp410_0)))" +"(expand.1 #f #f named-body-s409_0 temp410_0)))" "(if log-performance?" "(let-values()(end-performance-region))" "(void))))))" @@ -78711,7 +78660,7 @@ static const char *startup_source = " scopes-s413_0" " phase414_0" " module-name-sym415_0" -" temp416_0)))))))))" +" temp416_0))))))))))" "(let-values()" "(let-values(((bodys418_0) bodys_0)" "((s419_0) s_0)" @@ -78727,7 +78676,15 @@ static const char *startup_source = " phase421_0" " module-name-sym422_0" " temp423_0))))))" -"(add-enclosing-name-property mb_0 module-name-sym_0)))))))))))))))" +"(let-values(((named-mb_0)(add-enclosing-name-property mb_0 module-name-sym_0)))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'track-syntax 'property named-mb_0 mb_0)))" +"(void)))" +" named-mb_0))))))))))))))))" "(define-values" "(add-module-begin.1)" "(lambda(log-rename-one?33_0 bodys35_0 s36_0 scopes-s37_0 phase38_0 module-name-sym39_0 mb-ctx40_0)" @@ -78739,7 +78696,7 @@ static const char *startup_source = "(let-values(((phase_0) phase38_0))" "(let-values(((module-name-sym_0) module-name-sym39_0))" "(let-values(((mb-ctx_0) mb-ctx40_0))" -"(let-values(((log-rename-one?_0) log-rename-one?33_0))" +"(let-values()" "(let-values()" "(let-values(((disarmed-scopes-s_0)(syntax-disarm$1 scopes-s_0)))" "(let-values(((mb-id_0)(datum->syntax$1 disarmed-scopes-s_0 '#%module-begin)))" @@ -78762,16 +78719,20 @@ static const char *startup_source = "(let-values()(let-values()(call-expand-observe obs_0 'tag mb_0)))" "(void)))" "(values))))" +"(let-values(((named-mb_0)(add-enclosing-name-property mb_0 module-name-sym_0)))" "(let-values((()" "(begin" -"(if log-rename-one?_0" -"(let-values()" "(let-values(((obs_0)(expand-context-observer mb-ctx_0)))" "(if obs_0" "(let-values()" -"(let-values()(call-expand-observe obs_0 'rename-one mb_0)))" -"(void))))" -"(void))" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'track-syntax" +" 'property" +" named-mb_0" +" mb_0)))" +"(void)))" "(values))))" "(let-values(((partly-expanded-mb_0)" "(begin" @@ -78780,12 +78741,9 @@ static const char *startup_source = "(void))" "(begin0" "(let-values()" -"(let-values(((temp426_0)" -"(add-enclosing-name-property" -" mb_0" -" module-name-sym_0))" +"(let-values(((named-mb426_0) named-mb_0)" "((mb-ctx427_0) mb-ctx_0))" -"(expand.1 #f #f #f temp426_0 mb-ctx427_0)))" +"(expand.1 #f #f named-mb426_0 mb-ctx427_0)))" "(if log-performance?" "(let-values()(end-performance-region))" "(void))))))" @@ -78797,10 +78755,10 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"expansion of #%module-begin is not a #%plain-module-begin form\"" +" \"expansion of #%module-begin is not a #%plain-module-begin form\"" " s_0" " partly-expanded-mb_0)))" -" partly-expanded-mb_0)))))))))))))))))))" +" partly-expanded-mb_0))))))))))))))))))))" "(define-values" "(add-enclosing-name-property)" "(lambda(stx_0 module-name-sym_0)(begin(syntax-property$1 stx_0 'enclosing-module-name module-name-sym_0))))" @@ -78897,20 +78855,7 @@ static const char *startup_source = "(if(null? bodys_1)" "(let-values()" "(if(if tail?_0(not(zero? phase_0)) #f)" -"(let-values()" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" partial-body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'module-lift-end-loop" -" '())))" -"(void)))" -" null))" +"(let-values() null)" "(if tail?_0" "(let-values()" "(let-values(((bodys_2)" @@ -78921,6 +78866,13 @@ static const char *startup_source = "(get-and-clear-provide-lifts!" "(expand-context-to-module-lifts" " partial-body-ctx_0)))))" +"(if(null? bodys_2)" +"(let-values() null)" +"(let-values()" +"(let-values(((added-bodys_0)" +"(add-post-expansion-scope" +" bodys_2" +" partial-body-ctx_0)))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -78930,17 +78882,10 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'module-lift-end-loop" -" bodys_2)))" +" 'module-end-lifts" +" added-bodys_0)))" "(void)))" -"(if(null? bodys_2)" -"(let-values() null)" -"(let-values()" -"(loop_0" -" #t" -"(add-post-expansion-scope" -" bodys_2" -" partial-body-ctx_0)))))))" +"(loop_0 #t added-bodys_0)))))))" "(let-values() null))))" "(let-values()" "(let-values(((rest-bodys_0)(cdr bodys_1)))" @@ -78974,7 +78919,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " temp435_0" " partial-body-ctx436_0)))" "(if log-performance?" @@ -78987,15 +78931,30 @@ static const char *startup_source = "(get-and-clear-lifts!" "(expand-context-lifts" " partial-body-ctx_0))))" +"(let-values(((lifted-reqs_0)" +"(get-and-clear-require-lifts!" +"(expand-context-require-lifts" +" partial-body-ctx_0))))" +"(let-values(((lifted-mods_0)" +"(get-and-clear-module-lifts!" +"(expand-context-module-lifts" +" partial-body-ctx_0))))" +"(let-values(((added-lifted-mods_0)" +"(add-post-expansion-scope" +" lifted-mods_0" +" partial-body-ctx_0)))" +"(let-values((()" "(begin" -"(if(pair? lifted-defns_0)" +"(if(if(null?" +" lifted-defns_0)" +"(if(null?" +" lifted-reqs_0)" +"(null?" +" lifted-mods_0)" +" #f)" +" #f)" +"(void)" "(let-values()" -"(log-lifted-defns" -" partial-body-ctx_0" -" lifted-defns_0" -" exp-body_0" -" rest-bodys_0))" -"(void))" "(let-values(((obs_0)" "(expand-context-observer" " partial-body-ctx_0)))" @@ -79004,7 +78963,27 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'rename-one" +" 'module-pass1-lifts" +"(lifted-defns-extract-syntax" +" lifted-defns_0)" +" lifted-reqs_0" +" added-lifted-mods_0)))" +"(void)))))" +"(values))))" +"(let-values(((exp-lifted-mods_0)" +"(loop_0" +" #f" +" added-lifted-mods_0)))" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'module-pass1-case" " exp-body_0)))" "(void)))" "(let-values(((finish_0)" @@ -79019,6 +78998,20 @@ static const char *startup_source = " tmp_0" " 'begin)" "(let-values()" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prim-begin" +" disarmed-exp-body_0)))" +"(void)))" +"(values))))" "(let-values(((ok?_0" " begin437_0" " e438_0)" @@ -79059,7 +79052,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -79068,7 +79061,7 @@ static const char *startup_source = " e440_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -79101,7 +79094,7 @@ static const char *startup_source = "(void)))" "(loop_0" " tail?_0" -" spliced-bodys_0))))))" +" spliced-bodys_0)))))))" "(if(equal?" " tmp_0" " 'begin-for-syntax)" @@ -79114,40 +79107,10 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(begin" "(call-expand-observe" " obs_0" -" 'enter-prim" -" exp-body_0)" -"(call-expand-observe" -" obs_0" -" 'prim-begin-for-syntax)" -"(call-expand-observe" -" obs_0" -" 'prepare-env))))" -"(void)))" -"(values))))" -"(let-values(((ct-m-ns_0)" -"(namespace->namespace-at-phase" -" m-ns_0" -"(add1" -" phase_0))))" -"(let-values((()" -"(begin" -"(prepare-next-phase-namespace" -" partial-body-ctx_0)" -"(values))))" -"(let-values((()" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" partial-body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'phase-up)))" +" 'prim-begin-for-syntax" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ok?_0" @@ -79190,7 +79153,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -79199,12 +79162,48 @@ static const char *startup_source = " e444_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" " begin-for-syntax441_0" " e442_0))))))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prepare-env)))" +"(void)))" +"(values))))" +"(let-values(((ct-m-ns_0)" +"(namespace->namespace-at-phase" +" m-ns_0" +"(add1" +" phase_0))))" +"(let-values((()" +"(begin" +"(prepare-next-phase-namespace" +" partial-body-ctx_0)" +"(values))))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'phase-up)))" +"(void)))" +"(values))))" "(let-values(((nested-bodys_0)" "(pass-1-and-2-loop_0" " e442_0" @@ -79244,7 +79243,7 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'exit-prim" +" 'exit-case" "(let-values(((s-nested-bodys_0)" "(reverse$1" "(let-values(((lst_0)" @@ -79291,12 +79290,9 @@ static const char *startup_source = " for-loop_0)" " null" " lst_0))))))" -"(datum->syntax$1" -" #f" "(cons" " begin-for-syntax441_0" -" s-nested-bodys_0)" -" exp-body_0)))))" +" s-nested-bodys_0)))))" "(void)))" "(cons" "(semi-parsed-begin-for-syntax3.1" @@ -79304,7 +79300,7 @@ static const char *startup_source = " nested-bodys_0)" "(loop_0" " tail?_0" -" rest-bodys_0))))))))))" +" rest-bodys_0)))))))))))" "(if(equal?" " tmp_0" " 'define-values)" @@ -79317,14 +79313,10 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(begin" "(call-expand-observe" " obs_0" -" 'enter-prim" -" exp-body_0)" -"(call-expand-observe" -" obs_0" -" 'prim-define-values))))" +" 'prim-define-values" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ok?_0" @@ -79382,7 +79374,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id_0)" @@ -79429,7 +79421,7 @@ static const char *startup_source = " s_6" "(raise-syntax-error$1" " #f" -" \"not an identifier\"" +" \"not an identifier\"" " orig-s_0" " s_6)))))" "(cons" @@ -79481,20 +79473,20 @@ static const char *startup_source = "(values)" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" " rhs453_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" " id451_0" " rhs452_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" " define-values448_0" @@ -79502,7 +79494,7 @@ static const char *startup_source = " rhs450_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -79634,14 +79626,11 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'exit-prim" -"(datum->syntax$1" -" #f" +" 'exit-case" "(list" " define-values445_0" " ids_0" -" rhs447_0)" -" exp-body_0))))" +" rhs447_0))))" "(void)))" "(cons" "(semi-parsed-define-values2.1" @@ -79664,35 +79653,10 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(begin" "(call-expand-observe" " obs_0" -" 'enter-prim" -" exp-body_0)" -"(call-expand-observe" -" obs_0" -" 'prim-define-syntaxes)" -"(call-expand-observe" -" obs_0" -" 'prepare-env))))" -"(void)))" -"(values))))" -"(let-values((()" -"(begin" -"(prepare-next-phase-namespace" -" partial-body-ctx_0)" -"(values))))" -"(let-values((()" -"(begin" -"(let-values(((obs_0)" -"(expand-context-observer" -" partial-body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'phase-up)))" +" 'prim-define-syntaxes" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ok?_0" @@ -79750,7 +79714,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id_0)" @@ -79797,7 +79761,7 @@ static const char *startup_source = " s_6" "(raise-syntax-error$1" " #f" -" \"not an identifier\"" +" \"not an identifier\"" " orig-s_0" " s_6)))))" "(cons" @@ -79849,20 +79813,20 @@ static const char *startup_source = "(values)" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" " rhs481_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" " id479_0" " rhs480_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values" " define-syntaxes476_0" @@ -79870,13 +79834,44 @@ static const char *startup_source = " rhs478_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" " define-syntaxes473_0" " id474_0" " rhs475_0))))))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prepare-env)))" +"(void)))" +"(values))))" +"(let-values((()" +"(begin" +"(prepare-next-phase-namespace" +" partial-body-ctx_0)" +"(values))))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'phase-up)))" +"(void)))" +"(values))))" "(let-values(((ids_0)" "(remove-use-site-scopes" " id474_0" @@ -80044,7 +80039,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner509_0" @@ -80077,7 +80072,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0)))))" "((temp507_0)" " #f))" @@ -80189,13 +80184,11 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'exit-prim" -"(datum->syntax$1" -" #f" +" 'exit-case" "(list" " define-syntaxes473_0" " ids_0" -" exp-rhs_0)))))" +" exp-rhs_0))))" "(void)))" "(values))))" "(let-values(((parsed-body_0)" @@ -80224,7 +80217,7 @@ static const char *startup_source = " parsed-body_0))" "(loop_0" " tail?_0" -" rest-bodys_0)))))))))))))))))" +" rest-bodys_0))))))))))))))))))" "(if(equal?" " tmp_0" " '#%require)" @@ -80237,14 +80230,10 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(begin" "(call-expand-observe" " obs_0" -" 'enter-prim" -" exp-body_0)" -"(call-expand-observe" -" obs_0" -" 'prim-require))))" +" 'prim-require" +" disarmed-exp-body_0)))" "(void)))" "(values))))" "(let-values(((ready-body_0)" @@ -80291,7 +80280,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -80300,7 +80289,7 @@ static const char *startup_source = " req518_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -80349,7 +80338,7 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'exit-prim" +" 'exit-case" " ready-body_0)))" "(void)))" "(cons" @@ -80361,15 +80350,41 @@ static const char *startup_source = " tmp_0" " '#%provide)" "(let-values()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prim-stop" +" #f)))" +"(void)))" "(cons" " exp-body_0" "(loop_0" " tail?_0" -" rest-bodys_0)))" +" rest-bodys_0))))" "(if(equal?" " tmp_0" " 'module)" "(let-values()" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prim-submodule" +" #f)))" +"(void)))" +"(values))))" "(let-values(((ready-body_0)" "(remove-use-site-scopes" " exp-body_0" @@ -80407,7 +80422,7 @@ static const char *startup_source = " submod_0" "(loop_0" " tail?_0" -" rest-bodys_0)))))" +" rest-bodys_0))))))" "(if(equal?" " tmp_0" " 'module*)" @@ -80419,18 +80434,10 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values()" -"(begin" "(call-expand-observe" " obs_0" -" 'enter-prim" -" exp-body_0)" -"(call-expand-observe" -" obs_0" -" 'prim-submodule*)" -"(call-expand-observe" -" obs_0" -" 'exit-prim" -" exp-body_0))))" +" 'prim-stop" +" #f)))" "(void)))" "(cons" " exp-body_0" @@ -80441,6 +80448,20 @@ static const char *startup_source = " tmp_0" " '#%declare)" "(let-values()" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prim-declare" +" disarmed-exp-body_0)))" +"(void)))" +"(values))))" "(let-values(((ok?_0" " #%declare536_0" " kw537_0)" @@ -80481,7 +80502,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -80490,7 +80511,7 @@ static const char *startup_source = " kw539_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -80533,7 +80554,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"expected a keyword\"" +" \"expected a keyword\"" " exp-body_0" " kw_0)))" "(if(memq" @@ -80545,7 +80566,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"not an allowed declaration keyword\"" +" \"not an allowed declaration keyword\"" " exp-body_0" " kw_0)))" "(if(hash-ref" @@ -80556,7 +80577,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"keyword declared multiple times\"" +" \"keyword declared multiple times\"" " exp-body_0" " kw_0))" "(void))" @@ -80589,31 +80610,35 @@ static const char *startup_source = " parsed-body_0))" "(loop_0" " tail?_0" -" rest-bodys_0)))))))" +" rest-bodys_0))))))))" "(let-values()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" partial-body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'prim-stop" +" #f)))" +"(void)))" "(cons" " exp-body_0" "(loop_0" " tail?_0" -" rest-bodys_0)))))))))))))))))" +" rest-bodys_0))))))))))))))))))" "(let-values(((l_0)" "(append" -"(get-and-clear-require-lifts!" -"(expand-context-require-lifts" -" partial-body-ctx_0))" +" lifted-reqs_0" " lifted-defns_0" -"(loop_0" -" #f" -"(add-post-expansion-scope" -"(get-and-clear-module-lifts!" -"(expand-context-module-lifts" -" partial-body-ctx_0))" -" partial-body-ctx_0)))))" +" exp-lifted-mods_0)))" "(if(null? l_0)" "(finish_0)" "(append" " l_0" -"(finish_0)))))))))))))))))" +"(finish_0))))))))))))))))))))))" " loop_0)" " #t" " bodys_0))))))))))))))))))))))" @@ -80711,7 +80736,7 @@ static const char *startup_source = " lst_0))))" " bodys_0)))))" "(define-values" -"(finish-expanding-body-expressons.1)" +"(finish-expanding-body-expressions.1)" "(lambda(compiled-submodules78_0" " ctx75_0" " declared-submodule-names77_0" @@ -80721,7 +80746,7 @@ static const char *startup_source = " self76_0" " partially-expanded-bodys88_0)" "(begin" -" 'finish-expanding-body-expressons" +" 'finish-expanding-body-expressions" "(let-values(((partially-expanded-bodys_0) partially-expanded-bodys88_0))" "(let-values(((phase_0) phase74_0))" "(let-values(((body-ctx_0) ctx75_0))" @@ -80738,15 +80763,7 @@ static const char *startup_source = "(if(null? bodys_0)" "(let-values()" "(if(if tail?_0(not(zero? phase_0)) #f)" -"(let-values()" -"(begin" -"(let-values(((obs_0)(expand-context-observer body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe obs_0 'module-lift-end-loop '())))" -"(void)))" -" null))" +"(let-values() null)" "(if tail?_0" "(let-values()" "(let-values(((bodys_1)" @@ -80756,6 +80773,7 @@ static const char *startup_source = "(get-and-clear-provide-lifts!" "(expand-context-to-module-lifts body-ctx_0)))))" "(if(null? bodys_1)" +"(let-values() null)" "(let-values()" "(begin" "(let-values(((obs_0)" @@ -80765,14 +80783,12 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'module-lift-end-loop" -" '())))" +" 'module-end-lifts" +" bodys_1)))" "(void)))" -" null))" -"(let-values()" "(loop_0" " #t" -"(add-post-expansion-scope bodys_1 body-ctx_0))))))" +"(add-post-expansion-scope bodys_1 body-ctx_0)))))))" "(let-values() null))))" "(let-values()" "(let-values((()" @@ -80942,9 +80958,26 @@ static const char *startup_source = " s557_0))))" "(let-values((()" "(begin" -"(log-defn-enter" -" body-ctx_0" -" body_0)" +"(let-values(((obs_0)" +"(expand-context-observer" +" body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(begin" +"(call-expand-observe" +" obs_0" +" 'visit" +" #f)" +"(call-expand-observe" +" obs_0" +" 'enter-prim" +" #f)" +"(call-expand-observe" +" obs_0" +" 'prim-define-values" +" #f))))" +"(void)))" "(values))))" "(let-values(((exp-rhs_0)" "(begin" @@ -80964,7 +80997,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " temp559_0" " rhs-ctx560_0)))" "(if log-performance?" @@ -80973,10 +81005,17 @@ static const char *startup_source = "(void))))))" "(let-values((()" "(begin" -"(log-defn-exit" -" body-ctx_0" -" body_0" -" exp-rhs_0)" +"(let-values(((obs_0)" +"(expand-context-observer" +" body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'exit-prim/return" +" #f)))" +"(void)))" "(values))))" "(let-values(((comp-form_0)" "(parsed-define-values19.1" @@ -80994,7 +81033,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " exp-rhs561_0" " temp562_0))))))" "(if(expand-context-to-parsed?" @@ -81045,7 +81083,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " body565_0" " temp566_0))))" "(if(expand-context-to-parsed?" @@ -81061,7 +81098,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " exp-body567_0" " temp568_0))))))" "(if log-performance?" @@ -81096,14 +81132,13 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'module-lift-loop" -"(append" +" 'module-pass2-lifts" " lifted-requires_0" -"(lifted-defns-extract-syntax" -" lifted-defns_0)" "(add-post-expansion-scope" " lifted-modules_0" -" body-ctx_0)))))" +" body-ctx_0)" +"(lifted-defns-extract-syntax" +" lifted-defns_0))))" "(void)))))" "(values))))" "(let-values(((exp-lifted-modules_0)" @@ -81130,6 +81165,22 @@ static const char *startup_source = " phase570_0" " self571_0" " body-ctx572_0))))" +"(let-values((()" +"(begin" +"(if no-lifts?_0" +"(void)" +"(let-values()" +"(let-values(((obs_0)" +"(expand-context-observer" +" body-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'next-group)))" +"(void)))))" +"(values))))" "(let-values(((exp-lifted-defns_0)" "(loop_0 #f lifted-defns_0)))" "(begin" @@ -81144,17 +81195,17 @@ static const char *startup_source = "(let-values()" "(call-expand-observe" " obs_0" -" 'next)))" +" 'next-group)))" "(void)))))" "(append" " lifted-requires_0" -" exp-lifted-defns_0" " exp-lifted-modules_0" +" exp-lifted-defns_0" "(cons" " exp-body_0" "(loop_0" " tail?_0" -" rest-bodys_0)))))))))))))))))))))" +" rest-bodys_0))))))))))))))))))))))" " loop_0)" " #t" " partially-expanded-bodys_0)))))))))))))" @@ -81324,14 +81375,42 @@ static const char *startup_source = "(if(let-values(((or-part_0)(parsed?(car bodys_0))))" "(if or-part_0 or-part_0(expanded+parsed?(car bodys_0))))" "(let-values()" -"(cons(car bodys_0)(loop_0(cdr bodys_0) phase_1)))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'next)))" +"(void)))" +"(cons(car bodys_0)(loop_0(cdr bodys_0) phase_1))))" "(if(semi-parsed-begin-for-syntax?(car bodys_0))" "(let-values()" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'enter-begin-for-syntax)))" +"(void)))" +"(values))))" "(let-values(((nested-bodys_0)" "(loop_0" "(semi-parsed-begin-for-syntax-body" "(car bodys_0))" "(add1 phase_1))))" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'exit-begin-for-syntax)))" +"(void)))" "(cons" "(let-values(((the-struct_0)(car bodys_0)))" "(if(semi-parsed-begin-for-syntax? the-struct_0)" @@ -81341,9 +81420,9 @@ static const char *startup_source = " body579_0))" "(raise-argument-error" " 'struct-copy" -" \"semi-parsed-begin-for-syntax?\"" +" \"semi-parsed-begin-for-syntax?\"" " the-struct_0)))" -"(loop_0(cdr bodys_0) phase_1))))" +"(loop_0(cdr bodys_0) phase_1))))))" "(let-values()" "(let-values(((disarmed-body_0)" "(syntax-disarm$1(car bodys_0))))" @@ -81366,7 +81445,8 @@ static const char *startup_source = "(car bodys_0))" "(call-expand-observe" " obs_0" -" 'prim-provide))))" +" 'prim-provide" +" disarmed-body_0))))" "(void)))" "(values))))" "(let-values(((ok?_0 #%provide580_0 spec581_0)" @@ -81571,9 +81651,17 @@ static const char *startup_source = " new-s_0" "(loop_0(cdr bodys_0) phase_1))))))))))" "(let-values()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'next)))" +"(void)))" "(cons" "(car bodys_0)" -"(loop_0(cdr bodys_0) phase_1))))))))))))))" +"(loop_0(cdr bodys_0) phase_1)))))))))))))))" " loop_0)" " expression-expanded-bodys_0" " phase_0))" @@ -81729,6 +81817,19 @@ static const char *startup_source = "(let-values(((body-s_0)" "(semi-parsed-begin-for-syntax-s" " body_0)))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" submod-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'enter-begin-for-syntax)))" +"(void)))" +"(values))))" "(let-values(((ok?_0 begin-for-syntax603_0 _604_0)" "(let-values(((s_0)" "(syntax-disarm$1" @@ -81766,7 +81867,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -81775,7 +81876,7 @@ static const char *startup_source = " _606_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -81800,7 +81901,19 @@ static const char *startup_source = "(let-values(((parsed-bfs_0)" "(parsed-begin-for-syntax21.1" " rebuild-body-s_0" -"(parsed-only nested-bodys_0))))" +"(parsed-only" +" nested-bodys_0))))" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" submod-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'exit-begin-for-syntax)))" +"(void)))" "(cons" "(if(expand-context-to-parsed?" " submod-ctx_0)" @@ -81818,13 +81931,22 @@ static const char *startup_source = " rebuild-body-s609_0" " temp610_0))" " parsed-bfs_0))" -"(loop_0 rest-bodys_0 phase_1))))))))" +"(loop_0 rest-bodys_0 phase_1))))))))))" "(if(let-values(((or-part_0)(parsed? body_0)))" "(if or-part_0" " or-part_0" "(expanded+parsed? body_0)))" "(let-values()" -"(cons body_0(loop_0 rest-bodys_0 phase_1)))" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" submod-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe obs_0 'next)))" +"(void)))" +"(cons body_0(loop_0 rest-bodys_0 phase_1))))" "(let-values()" "(let-values(((disarmed-body_0)" "(syntax-disarm$1 body_0)))" @@ -82091,11 +82213,22 @@ static const char *startup_source = " submod_0" "(loop_0 rest-bodys_0 phase_1)))))))" "(let-values()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" submod-ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'next)))" +"(void)))" "(cons" " body_0" "(loop_0" " rest-bodys_0" -" phase_1)))))))))))))))))" +" phase_1))))))))))))))))))" " loop_0)" " fully-expanded-bodys-except-post-submodules_0" " phase_0)))))))))))))))))" @@ -82358,9 +82491,6 @@ static const char *startup_source = "(let-values()" "(let-values((()" "(begin" -"(if is-star?_0" -"(void)" -"(let-values()" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" @@ -82369,8 +82499,9 @@ static const char *startup_source = "(call-expand-observe obs_0 'enter-prim s_0)" "(call-expand-observe" " obs_0" -"(if is-star?_0 'prim-submodule* 'prim-submodule)))))" -"(void)))))" +"(if is-star?_0 'prim-submodule* 'prim-submodule)" +" #f))))" +"(void)))" "(values))))" "(let-values(((ok?_0 module647_0 name648_0 _649_0)" "(let-values(((s_1) s_0))" @@ -82636,18 +82767,6 @@ static const char *startup_source = " #f" " temp679_0" " compiled-submodule678_0))))" -"(if is-star?_0" -"(void)" -"(let-values()" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values()" -"(call-expand-observe" -" obs_0" -" 'exit-prim" -"(extract-syntax submod_0))))" -"(void)))))" "(if(not is-star?_0)" "(let-values() submod_0)" "(if(expanded+parsed? submod_0)" @@ -82750,6 +82869,17 @@ static const char *startup_source = "(let-values()" "(cons" "(let-values()" +"(begin" +"(let-values(((obs_0)" +"(expand-context-observer" +" ctx_0)))" +"(if obs_0" +"(let-values()" +"(let-values()" +"(call-expand-observe" +" obs_0" +" 'next)))" +"(void)))" "(let-values(((tmp_0)" "(core-form-sym" "(syntax-disarm$1" @@ -82785,7 +82915,8 @@ static const char *startup_source = " body683_0" " self684_0" " ctx685_0)))" -"(let-values() body_0))))" +"(let-values()" +" body_0)))))" " fold-var_1))))" "(values fold-var_2)))))" "(if(not #f)(for-loop_0 fold-var_1 rest_0) fold-var_1)))" @@ -82906,216 +83037,6 @@ static const char *startup_source = " null" " lst_0)))))))" "(define-values" -"(log-lifted-defns)" -"(lambda(partial-body-ctx_0 lifted-defns_0 exp-body_0 rest-bodys_0)" -"(begin" -"(let-values(((obs_0)(expand-context-observer partial-body-ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values(((s-lifted-defns_0)(lifted-defns-extract-syntax lifted-defns_0)))" -"(let-values((()" -"(begin(call-expand-observe obs_0 'rename-list(cons exp-body_0 rest-bodys_0))(values))))" -"(let-values((()(begin(call-expand-observe obs_0 'module-lift-loop s-lifted-defns_0)(values))))" -"(let-values((()" -"(begin" -"(let-values(((lst_0) s-lifted-defns_0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_0)))" -"((letrec-values(((for-loop_0)" -"(lambda(lst_1)" -"(begin" -" 'for-loop" -"(if(pair? lst_1)" -"(let-values(((s-lifted-defn_0)(unsafe-car lst_1))" -"((rest_0)(unsafe-cdr lst_1)))" -"(let-values((()" -"(let-values()" -"(let-values((()" -"(let-values()" -"(begin" -"(let-values()" -"(let-values(((ok?_0" -" define-values709_0" -" _710_0)" -"(let-values(((s_0)" -" s-lifted-defn_0))" -"(let-values(((orig-s_0)" -" s_0))" -"(let-values(((define-values709_0" -" _710_0)" -"(let-values(((s_1)" -"(if(syntax?$1" -" s_0)" -"(syntax-e$1" -" s_0)" -" s_0)))" -"(if(pair?" -" s_1)" -"(let-values(((define-values711_0)" -"(let-values(((s_2)" -"(car" -" s_1)))" -" s_2))" -"((_712_0)" -"(let-values(((s_2)" -"(cdr" -" s_1)))" -"(let-values(((s_3)" -"(if(syntax?$1" -" s_2)" -"(syntax-e$1" -" s_2)" -" s_2)))" -"(let-values(((flat-s_0)" -"(to-syntax-list.1" -" s_3)))" -"(if(not" -" flat-s_0)" -"(let-values()" -"(raise-syntax-error$1" -" #f" -" \"bad syntax\"" -" orig-s_0))" -"(let-values()" -" flat-s_0)))))))" -"(values" -" define-values711_0" -" _712_0))" -"(raise-syntax-error$1" -" #f" -" \"bad syntax\"" -" orig-s_0)))))" -"(values" -" #t" -" define-values709_0" -" _710_0))))))" -"(begin" -"(call-expand-observe" -" obs_0" -" 'next)" -"(call-expand-observe" -" obs_0" -" 'visit" -" s-lifted-defn_0)" -"(call-expand-observe" -" obs_0" -" 'resolve" -" define-values709_0)" -"(call-expand-observe" -" obs_0" -" 'enter-prim" -" s-lifted-defn_0)" -"(call-expand-observe" -" obs_0" -" 'prim-stop)" -"(call-expand-observe" -" obs_0" -" 'exit-prim" -" s-lifted-defn_0)" -"(call-expand-observe" -" obs_0" -" 'return" -" s-lifted-defn_0)" -"(call-expand-observe" -" obs_0" -" 'rename-one" -" s-lifted-defn_0)" -"(call-expand-observe" -" obs_0" -" 'enter-prim" -" s-lifted-defn_0)" -"(call-expand-observe" -" obs_0" -" 'prim-define-values)" -"(call-expand-observe" -" obs_0" -" 'exit-prim" -" s-lifted-defn_0))))" -"(values)))))" -"(values)))))" -"(if(not #f)(for-loop_0 rest_0)(values))))" -"(values))))))" -" for-loop_0)" -" lst_0)))" -"(values))))" -"(let-values()" -"(let-values(((ok?_0 form-id705_0 _706_0)" -"(let-values(((s_0) exp-body_0))" -"(let-values(((orig-s_0) s_0))" -"(let-values(((form-id705_0 _706_0)" -"(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" -"(if(pair? s_1)" -"(let-values(((form-id707_0)" -"(let-values(((s_2)(car s_1))) s_2))" -"((_708_0)(let-values(((s_2)(cdr s_1))) s_2)))" -"(values form-id707_0 _708_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t form-id705_0 _706_0))))))" -"(begin" -"(call-expand-observe obs_0 'next)" -"(call-expand-observe obs_0 'visit exp-body_0)" -"(call-expand-observe obs_0 'resolve form-id705_0)" -"(call-expand-observe obs_0 'enter-prim exp-body_0)" -"(call-expand-observe obs_0 'prim-stop)" -"(call-expand-observe obs_0 'exit-prim exp-body_0)" -"(call-expand-observe obs_0 'return exp-body_0)))))))))" -"(void))))))" -"(define-values" -"(log-defn-enter)" -"(lambda(ctx_0 defn_0)" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values(((s-defn_0)(defn-extract-syntax defn_0)))" -"(let-values(((ok?_0 define-values713_0 _714_0)" -"(let-values(((s_0) s-defn_0))" -"(let-values(((orig-s_0) s_0))" -"(let-values(((define-values713_0 _714_0)" -"(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" -"(if(pair? s_1)" -"(let-values(((define-values715_0)" -"(let-values(((s_2)(car s_1))) s_2))" -"((_716_0)" -"(let-values(((s_2)(cdr s_1)))" -"(let-values(((s_3)" -"(if(syntax?$1 s_2)" -"(syntax-e$1 s_2)" -" s_2)))" -"(let-values(((flat-s_0)(to-syntax-list.1 s_3)))" -"(if(not flat-s_0)" -"(let-values()" -"(raise-syntax-error$1" -" #f" -" \"bad syntax\"" -" orig-s_0))" -"(let-values() flat-s_0)))))))" -"(values define-values715_0 _716_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t define-values713_0 _714_0))))))" -"(begin" -"(call-expand-observe obs_0 'visit s-defn_0)" -"(call-expand-observe obs_0 'resolve define-values713_0)" -"(call-expand-observe obs_0 'enter-prim s-defn_0)" -"(call-expand-observe obs_0 'prim-define-values)))))" -"(void))))))" -"(define-values" -"(log-defn-exit)" -"(lambda(ctx_0 defn_0 exp-rhs_0)" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()" -"(let-values(((s-defn_0)" -"(datum->syntax$1" -" #f" -"(list 'define-values(semi-parsed-define-values-ids defn_0) exp-rhs_0)" -"(semi-parsed-define-values-s defn_0))))" -"(begin(call-expand-observe obs_0 'exit-prim s-defn_0)(call-expand-observe obs_0 'return s-defn_0))))" -"(void))))))" -"(define-values" "(as-expand-time-top-level-bindings)" "(lambda(ids_0 s_0 ctx_0)" "(begin" @@ -83190,20 +83111,20 @@ static const char *startup_source = "(add-core-form!*" " 'define-values" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-define-values)))" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-define-values disarmed-s_0)))" "(void)))" "(values))))" "(let-values((()" "(begin" "(if(eq?(expand-context-context ctx_0) 'top-level)" "(void)" -" (let-values () (raise-syntax-error$1 #f \"not allowed in an expression position\" s_0)))" +" (let-values () (raise-syntax-error$1 #f \"not allowed in an expression position\" s_0)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((ok?_0 define-values1_0 id2_0 rhs3_0)" "(let-values(((s_1) s_0))" "(let-values(((orig-s_0) s_1))" @@ -83337,7 +83258,7 @@ static const char *startup_source = "(let-values(((exp-rhs_0)" "(let-values(((temp11_0) rhs3_0)" "((temp12_0)(as-named-context(as-expression-context ctx_0) ids_0)))" -"(expand.1 #f #f #f temp11_0 temp12_0))))" +"(expand.1 #f #f temp11_0 temp12_0))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-define-values19.1 s_0 ids_0 syms_0 exp-rhs_0)" "(let-values(((s13_0) s_0)((temp14_0)(list define-values1_0 ids_0 exp-rhs_0)))" @@ -83346,39 +83267,32 @@ static const char *startup_source = "(add-core-form!*" " 'define-syntaxes" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-define-syntaxes)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'prim-define-syntaxes disarmed-s_0)))" "(void)))" "(values))))" "(let-values((()" "(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prepare-env)))(void)))" -"(values))))" -"(let-values((()" -"(begin" "(if(eq?(expand-context-context ctx_0) 'top-level)" "(void)" " (let-values () (raise-syntax-error$1 #f \"not in a definition context\" s_0)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((ok?_0 define-syntaxes15_0 id16_0 rhs17_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" "(let-values(((define-syntaxes15_0 id16_0 rhs17_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((define-syntaxes18_0)" -"(let-values(((s_3)(car s_2))) s_3))" +"(let-values(((define-syntaxes18_0)(let-values(((s_3)(car s_2))) s_3))" "((id19_0 rhs20_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" -"(if(syntax?$1 s_3)" -"(syntax-e$1 s_3)" -" s_3)))" +"(if(syntax?$1 s_3)(syntax-e$1 s_3) s_3)))" "(if(pair? s_4)" "(let-values(((id21_0)" "(let-values(((s_5)(car s_4)))" @@ -83393,7 +83307,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" "(let-values(((id_0)" @@ -83440,7 +83354,7 @@ static const char *startup_source = " s_7" "(raise-syntax-error$1" " #f" -" \"not an identifier\"" +" \"not an identifier\"" " orig-s_0" " s_7)))))" "(cons" @@ -83481,27 +83395,30 @@ static const char *startup_source = "(syntax-e$1" " s_7)" " s_7)))" -"(if(null?" -" s_8)" +"(if(null? s_8)" "(values)" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values rhs23_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))))))" "(values id21_0 rhs22_0))" -"(raise-syntax-error$1" -" #f" -" \"bad syntax\"" -" orig-s_0))))))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" "(values define-syntaxes18_0 id19_0 rhs20_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" "(values #t define-syntaxes15_0 id16_0 rhs17_0))))))" "(let-values(((ids_0 syms_0)(as-expand-time-top-level-bindings id16_0 s_0 ctx_0)))" +"(let-values((()" +"(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prepare-env)))" +"(void)))" +"(values))))" "(let-values(((exp-rhs_0)" "(let-values(((temp25_0) rhs17_0)((temp26_0)(as-named-context ctx_0 ids_0)))" "(expand-transformer.1 #f #f 'expression #t #f unsafe-undefined temp25_0 temp26_0))))" @@ -83515,9 +83432,16 @@ static const char *startup_source = "(lambda(s_0 ctx_0)" "(let-values((()" "(begin" +"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-begin-for-syntax #f)))" +"(void)))" +"(values))))" +"(let-values((()" +"(begin" "(if(eq?(expand-context-context ctx_0) 'top-level)" "(void)" -" (let-values () (raise-syntax-error$1 #f \"not in a definition context\" s_0)))" +" (let-values () (raise-syntax-error$1 #f \"not in a definition context\" s_0)))" "(values))))" "(let-values(((ok?_0 begin-for-syntax29_0 form30_0)" "(let-values(((s_1) s_0))" @@ -83533,21 +83457,14 @@ static const char *startup_source = "(let-values(((flat-s_0)(to-syntax-list.1 s_4)))" "(if(not flat-s_0)" "(let-values()" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" "(let-values() flat-s_0)))))))" "(values begin-for-syntax31_0 form32_0))" -" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" +" (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" "(values #t begin-for-syntax29_0 form30_0))))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'prim-begin-for-syntax)))" -"(void)))" -"(values))))" -"(let-values((()" -"(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prepare-env)))(void)))" "(values))))" "(let-values(((trans-ctx_0)" @@ -83631,7 +83548,7 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'enter-list" -"(datum->syntax$1 #f form30_0 s_0))))" +" form30_0)))" "(void)))" "(values))))" "(let-values(((exp-forms_0)" @@ -83654,10 +83571,7 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'exit-list" -"(datum->syntax$1" -" #f" -" forms_2" -" s_0))))" +" forms_2)))" "(void)))" " forms_2)))" "(let-values()" @@ -83683,7 +83597,6 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" #f" " temp40_0" " capture-ctx41_0))))" "(loop_1" @@ -83740,18 +83653,20 @@ static const char *startup_source = "(add-core-form!*" " '#%require" "(lambda(s_0 ctx_0)" +"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-require)))(void)))" +"(if obs_0" +"(let-values()(let-values()(call-expand-observe obs_0 'prim-require disarmed-s_0)))" +"(void)))" "(values))))" "(let-values((()" "(begin" "(if(eq?(expand-context-context ctx_0) 'top-level)" "(void)" -" (let-values () (raise-syntax-error$1 #f \"allowed only in a module or the top level\" s_0)))" +" (let-values () (raise-syntax-error$1 #f \"allowed only in a module or the top level\" s_0)))" "(values))))" -"(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" "(let-values(((ok?_0 #%require47_0 req48_0)" "(let-values(((s_1) disarmed-s_0))" "(let-values(((orig-s_0) s_1))" @@ -83837,7 +83752,7 @@ static const char *startup_source = "(lambda(s_0 ctx_0)" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" -"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-provide)))(void)))" +"(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-provide #f)))(void)))" " (raise-syntax-error$1 #f \"not allowed outside of a module body\" s_0)))))" "(define-values" "(namespace-init!)"