(export (rename (boot boot)
                (1/bound-identifier=? bound-identifier=?)
                (1/compile compile)
                (compile-keep-source-locations! compile-keep-source-locations!)
                (1/compiled-expression-recompile compiled-expression-recompile)
                (1/current-compile current-compile)
                (1/current-compiled-file-roots current-compiled-file-roots)
                (1/current-eval current-eval)
                (1/current-library-collection-links
                 current-library-collection-links)
                (1/current-library-collection-paths
                 current-library-collection-paths)
                (1/current-load current-load)
                (1/current-load/use-compiled current-load/use-compiled)
                (1/current-namespace current-namespace)
                (datum->kernel-syntax datum->kernel-syntax)
                (1/datum->syntax datum->syntax)
                (declare-primitive-module! declare-primitive-module!)
                (1/dynamic-require dynamic-require)
                (embedded-load embedded-load)
                (1/eval eval)
                (eval$1 eval-top-level)
                (expand$1 expand)
                (expander-place-init! expander-place-init!)
                (1/find-compiled-file-roots find-compiled-file-roots)
                (1/find-library-collection-links find-library-collection-links)
                (1/find-library-collection-paths find-library-collection-paths)
                (find-main-config find-main-config)
                (get-installation-name get-installation-name)
                (1/identifier-binding identifier-binding)
                (identifier? identifier?)
                (1/load load)
                (1/load-extension load-extension)
                (1/load/use-compiled load/use-compiled)
                (make-namespace make-namespace)
                (maybe-raise-missing-module maybe-raise-missing-module)
                (maybe-syntax->datum maybe-syntax->datum)
                (1/module->language-info module->language-info)
                (1/module-compiled-exports module-compiled-exports)
                (1/module-compiled-indirect-exports
                 module-compiled-indirect-exports)
                (1/module-declared? module-declared?)
                (1/module-path-index-join module-path-index-join)
                (1/module-path-index? module-path-index?)
                (1/module-path? module-path?)
                (1/module-predefined? module-predefined?)
                (namespace->instance namespace->instance)
                (1/namespace-attach-module namespace-attach-module)
                (1/namespace-attach-module-declaration
                 namespace-attach-module-declaration)
                (namespace-datum-introduce namespace-datum-introduce)
                (1/namespace-mapped-symbols namespace-mapped-symbols)
                (1/namespace-module-identifier namespace-module-identifier)
                (1/namespace-require namespace-require)
                (1/namespace-syntax-introduce namespace-syntax-introduce)
                (1/namespace-variable-value namespace-variable-value)
                (path-list-string->path-list path-list-string->path-list)
                (1/read read)
                (1/read-accept-compiled read-accept-compiled)
                (1/read-installation-configuration-table
                 read-installation-configuration-table)
                (1/read-syntax read-syntax)
                (1/resolved-module-path? resolved-module-path?)
                (seal seal)
                (1/syntax->datum syntax->datum)
                (1/syntax-debug-info syntax-debug-info)
                (1/syntax-deserialize syntax-deserialize)
                (1/syntax-e syntax-e)
                (syntax-property$1 syntax-property)
                (1/syntax-serialize syntax-serialize)
                (1/syntax-shift-phase-level syntax-shift-phase-level)
                (syntax?$1 syntax?)
                (1/use-collection-link-paths use-collection-link-paths)
                (1/use-compiled-file-check use-compiled-file-check)
                (1/use-compiled-file-paths use-compiled-file-paths)
                (1/use-user-specific-search-paths
                 use-user-specific-search-paths)))
(define rx2276 (regexp "^[\\][\\][?][\\]"))
(define rx2490 (byte-regexp #vu8(94 91 92 93 91 92 93 91 63 93 91 92 93)))
(define rx2515 (regexp "/"))
(define rx2283 (regexp "[/\\][. ]+[/\\]*$"))
(define rx2458 (regexp "(?<=[^ ./\\])[ .]+([/\\]*)$"))
(define rx2566 (regexp "^\\\\\\\\[?]\\\\[a-z]:"))
(define rx2590 (regexp "^\\\\\\\\[?]\\\\UNC\\\\"))
(define rx2623 (regexp "^\\\\\\\\"))
(define rx2947 (regexp "^[a-z]:"))
(define rx2199 (byte-regexp #vu8(34)))
(define rx2194 (byte-regexp #vu8(0)))
(define rx2668 (regexp "[.]"))
(define hash2725 (hash))
(define hash2610 (hasheq))
(define hash2589 (hasheqv))
(define rx2640 (regexp "[.](..).*"))
(define kw2299 (string->keyword "resolved-module-path"))
(define kw2226 (string->keyword "syntax+props"))
(define kw2099 (string->keyword "datum->syntax"))
(define kw2641 (string->keyword "syntax"))
(define kw2450 (string->keyword "none"))
(define kw2804 (string->keyword "module-binding"))
(define kw1932 (string->keyword "inspector"))
(define kw2755 (string->keyword "simple-module-binding"))
(define kw2335 (string->keyword "like-ambiguous-binding"))
(define kw2169 (string->keyword "table-with-bulk-bindings"))
(define kw2707 (string->keyword "bulk-binding-at"))
(define kw2576 (string->keyword "scope-fill!"))
(define kw2129 (string->keyword "scope"))
(define kw2535 (string->keyword "scope+kind"))
(define kw2241 (string->keyword "interned-scope"))
(define kw2645 (string->keyword "multi-scope"))
(define kw2073 (string->keyword "representative-scope-fill!"))
(define kw2600 (string->keyword "representative-scope"))
(define kw2201 (string->keyword "shifted-multi-scope"))
(define kw2677 (string->keyword "local-binding"))
(define kw2897 (string->keyword "provided"))
(define kw2882 (string->keyword "bulk-binding+provides"))
(define kw2762 (string->keyword "bulk-binding"))
(define kw2607 (string->keyword "bulk-binding-registry"))
(define rx2823 (regexp "\n"))
(define kw2626 (string->keyword "quote"))
(define kw2603 (string->keyword "ref"))
(define kw3163 (string->keyword "mpi"))
(define kw2802 (string->keyword "list"))
(define kw2821 (string->keyword "cons"))
(define kw2525 (string->keyword "box"))
(define kw2967 (string->keyword "vector"))
(define kw3357 (string->keyword "seteq"))
(define kw2333 (string->keyword "seteqv"))
(define kw2473 (string->keyword "set"))
(define kw2796 (string->keyword "hasheq"))
(define kw2406 (string->keyword "hasheqv/phase+space"))
(define kw3245 (string->keyword "hasheqv"))
(define kw2582 (string->keyword "hash"))
(define kw2931 (string->keyword "prefab"))
(define kw2496 (string->keyword "srcloc"))
(define kw2531 (string->keyword "set-box!"))
(define kw3046 (string->keyword "set-vector!"))
(define kw2194 (string->keyword "set-hash!"))
(define hash2385
  (hasheq
   kw2525
   '10
   kw2762
   '28
   kw2882
   '30
   kw2707
   '23
   kw2607
   '3
   kw2821
   '11
   kw2099
   '5
   kw2582
   '13
   kw2796
   '13
   kw3245
   '13
   kw2406
   '14
   kw1932
   '2
   kw2241
   '19
   kw2335
   '29
   kw2802
   '12
   kw2677
   '27
   kw2804
   '25
   kw3163
   '9
   kw2645
   '20
   kw2931
   '16
   kw2897
   '31
   kw2626
   '8
   kw2603
   '1
   kw2600
   '24
   kw2129
   '17
   kw2535
   '18
   kw2473
   '15
   kw3357
   '15
   kw2333
   '15
   kw2201
   '21
   kw2755
   '26
   kw2496
   '7
   kw2641
   '4
   kw2226
   '6
   kw2169
   '22
   kw2967
   '12))
(define hash2804
  (hasheq
   'all-except
   '11
   'for-label
   '4
   'for-meta
   '1
   'for-space
   '7
   'for-syntax
   '2
   'for-template
   '3
   'just-meta
   '5
   'just-space
   '8
   'only
   '9
   'portal
   '6
   'prefix
   '10
   'prefix-all-except
   '12
   'rename
   '13))
(define kw2162 (string->keyword "not-recorded"))
(define hash2430
  (hasheq
   '|#%variable-reference|
   '1
   'begin
   '5
   'begin0
   '6
   'case-lambda
   '1
   'gensym
   '12
   'if
   '13
   'lambda
   '1
   'let-values
   '2
   'letrec-values
   '2
   'make-parameter
   '7
   'make-struct-field-accessor
   '9
   'make-struct-field-mutator
   '10
   'make-struct-type
   '8
   'make-struct-type-property
   '11
   'quote
   '1
   'values
   '3
   'void
   '4))
(define kw2208 (string->keyword "cross-phase-persistent"))
(define kw2910 (string->keyword "empty-namespace"))
(define kw2838 (string->keyword "unsafe"))
(define hash3012
  (hash
   'block->letrec
   '3
   'block->list
   '0
   'block-renames
   '2
   'enter-begin-for-syntax
   '0
   'enter-bind
   '0
   'enter-block
   '1
   'enter-list
   '1
   'enter-local
   '1
   'enter-macro
   '2
   'enter-prim
   '1
   'exit-begin-for-syntax
   '0
   'exit-bind
   '0
   'exit-case
   '1
   'exit-list
   '1
   'exit-local
   '1
   'exit-local-bind
   '0
   'exit-macro
   '2
   'exit-prim
   '1
   'exit-prim/return
   '1
   'finish-block
   '1
   'lambda-renames
   '2
   'letX-renames
   '5
   'letlift-loop
   '1
   'lift-end-decl
   '3
   'lift-expr
   '3
   'lift-loop
   '1
   'lift-module
   '2
   'lift-provide
   '1
   'lift-require
   '3
   'local-bind
   '1
   'local-post
   '1
   'local-pre
   '1
   'local-value
   '1
   'local-value-result
   '1
   '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|
   '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
   'tag/context
   '1
   'tag2
   '2
   'track-syntax
   '3
   'variable
   '2
   'visit
   '1))
(define kw2836 (string->keyword "missing"))
(define nhash2607 (cons #f (hasheq)))
(define rx2897 (regexp "/+"))
(define rx2900 (byte-regexp #vu8(91 46 93 40 91 94 46 93 42 41 36)))
(define rx2937 (regexp "[.]zo$"))
(define rx2418 (regexp "[.]ss$"))
(define kw2186 (string->keyword "local"))
(define hash2390
  (hasheq
   'all-defined
   '10
   'all-defined-except
   '11
   'all-from
   '8
   'all-from-except
   '9
   'expand
   '14
   'for-label
   '3
   'for-meta
   '1
   'for-space
   '4
   'for-syntax
   '2
   'prefix-all-defined
   '12
   'prefix-all-defined-except
   '13
   'protect
   '5
   'rename
   '6
   'struct
   '7))
(define kw1701 (string->keyword "realm"))
(define kws2603
  (cons
   (string->keyword "cross-phase-persistent")
   (cons
    (string->keyword "empty-namespace")
    (cons
     (string->keyword "unsafe")
     (cons
      (string->keyword "realm")
      (cons (string->keyword "require=define") '()))))))
(define kw2362 (string->keyword "require=define"))
(define call/ec call-with-escape-continuation)
(define qq-append
  (lambda (a_0 b_0)
    (if (list? a_0)
      (append a_0 b_0)
      (raise-argument-error 'unquote-splicing "list?" a_0))))
(define bad-list$1
  (|#%name|
   bad-list
   (lambda (who_0 orig-l_0)
     (begin (raise-arguments-error who_0 "not a proper list" "in" orig-l_0)))))
(define member
  (letrec*
   ((member_0
     (|#%name|
      member
      (lambda (v_0 orig-l_0 eql?_0)
        (begin
          (letrec*
           ((loop_0
             (|#%name|
              loop
              (lambda (ls_0 turtle_0)
                (begin
                  (if (null? ls_0)
                    #f
                    (if (not (pair? ls_0))
                      (begin-unsafe
                       (raise-arguments-error
                        'member
                        "not a proper list"
                        "in"
                        orig-l_0))
                      (if (|#%app| eql?_0 v_0 (car ls_0))
                        ls_0
                        (let ((ls_1 (cdr ls_0)))
                          (if (null? ls_1)
                            #f
                            (if (let ((or-part_0 (not (pair? ls_1))))
                                  (if or-part_0 or-part_0 (eq? ls_1 turtle_0)))
                              (begin-unsafe
                               (raise-arguments-error
                                'member
                                "not a proper list"
                                "in"
                                orig-l_0))
                              (if (|#%app| eql?_0 v_0 (car ls_1))
                                ls_1
                                (let ((app_0 (cdr ls_1)))
                                  (loop_0 app_0 (cdr turtle_0)))))))))))))))
           (loop_0 orig-l_0 orig-l_0)))))))
   (case-lambda
    ((v_0 ls_0) (member_0 v_0 ls_0 equal?))
    ((v_0 ls_0 eql?_0)
     (begin
       (if (if (procedure? eql?_0) (procedure-arity-includes? eql?_0 2) #f)
         (void)
         (raise-argument-error 'member "(procedure-arity-includes/c 2)" eq?))
       (member_0 v_0 ls_0 eql?_0))))))
(define current-parameterization
  (lambda () (continuation-mark-set-first #f parameterization-key)))
(define call-with-parameterization
  (lambda (paramz_0 thunk_0)
    (begin
      (if (parameterization? paramz_0)
        (void)
        (raise-argument-error
         'call-with-parameterization
         "parameterization?"
         0
         paramz_0
         thunk_0))
      (if (if (procedure? thunk_0) (procedure-arity-includes? thunk_0 0) #f)
        (void)
        (raise-argument-error
         'call-with-parameterization
         "(-> any)"
         1
         paramz_0
         thunk_0))
      (with-continuation-mark*
       authentic
       parameterization-key
       paramz_0
       (|#%app| thunk_0)))))
(define-values
 (struct:break-paramz
  make-break-paramz
  break-paramz?
  break-paramz-ref
  break-paramz-set!)
 (make-struct-type 'break-parameterization #f 1 0 #f))
(define current-break-parameterization
  (lambda ()
    (make-break-paramz (continuation-mark-set-first #f break-enabled-key))))
(define call-with-break-parameterization
  (lambda (paramz_0 thunk_0)
    (begin
      (if (break-paramz? paramz_0)
        (void)
        (raise-argument-error
         'call-with-break-parameterization
         "break-parameterization?"
         0
         paramz_0
         thunk_0))
      (if (if (procedure? thunk_0) (procedure-arity-includes? thunk_0 0) #f)
        (void)
        (raise-argument-error
         'call-with-parameterization
         "(-> any)"
         1
         paramz_0
         thunk_0))
      (begin0
        (with-continuation-mark*
         push-authentic
         break-enabled-key
         (|#%app| break-paramz-ref paramz_0 0)
         (begin (check-for-break) (|#%app| thunk_0)))
        (check-for-break)))))
(define select-handler/no-breaks
  (lambda (e_0 bpz_0 l_0)
    (with-continuation-mark*
     authentic
     break-enabled-key
     (make-thread-cell #f)
     (letrec*
      ((loop_0
        (|#%name|
         loop
         (lambda (l_1)
           (begin
             (if (null? l_1)
               (raise e_0)
               (if (|#%app| (caar l_1) e_0)
                 (begin0
                   (|#%app| (cdar l_1) e_0)
                   (with-continuation-mark*
                    push-authentic
                    break-enabled-key
                    bpz_0
                    (check-for-break)))
                 (loop_0 (cdr l_1)))))))))
      (loop_0 l_0)))))
(define false-thread-cell (make-thread-cell #f))
(define handler-prompt-key (make-continuation-prompt-tag 'handler-prompt-tag))
(define call-handled-body
  (lambda (bpz_0 handle-proc_0 body-thunk_0)
    (with-continuation-mark*
     authentic
     break-enabled-key
     false-thread-cell
     (call-with-continuation-prompt
      (lambda (bpz_1 body-thunk_1)
        (with-continuation-mark*
         authentic
         break-enabled-key
         bpz_1
         (with-continuation-mark*
          authentic
          exception-handler-key
          (lambda (e_0) (abort-current-continuation handler-prompt-key e_0))
          (|#%app| body-thunk_1))))
      handler-prompt-key
      handle-proc_0
      bpz_0
      body-thunk_0))))
(define call-with-exception-handler
  (lambda (exnh_0 thunk_0)
    (begin0
      (with-continuation-mark*
       push-authentic
       exception-handler-key
       exnh_0
       (|#%app| thunk_0))
      (void))))
(define not-there (gensym))
(define do-hash-update
  (lambda (who_0 mut?_0 set_0 ht_0 key_0 xform_0 default_0)
    (begin
      (let ((v_0 (hash-ref ht_0 key_0 default_0)))
        (if (eq? v_0 not-there)
          (raise-mismatch-error who_0 "no value found for key: " key_0)
          (|#%app| set_0 ht_0 key_0 (|#%app| xform_0 v_0)))))))
(define hash-update
  (case-lambda
   ((ht_0 key_0 xform_0 default_0)
    (do-hash-update 'hash-update #f hash-set ht_0 key_0 xform_0 default_0))
   ((ht_0 key_0 xform_0)
    (begin-unsafe
     (do-hash-update 'hash-update #f hash-set ht_0 key_0 xform_0 not-there)))))
(define hash-update!
  (case-lambda
   ((ht_0 key_0 xform_0 default_0)
    (do-hash-update 'hash-update! #t hash-set! ht_0 key_0 xform_0 default_0))
   ((ht_0 key_0 xform_0)
    (begin-unsafe
     (do-hash-update
      'hash-update!
      #t
      hash-set!
      ht_0
      key_0
      xform_0
      not-there)))))
(define hash-has-key?
  (lambda (ht_0 key_0)
    (begin
      (if (hash? ht_0)
        (void)
        (raise-argument-error 'hash-has-key? "hash?" 0 ht_0 key_0))
      (not (eq? not-there (hash-ref ht_0 key_0 not-there))))))
(define hash-ref!
  (lambda (ht_0 key_0 new_0)
    (begin
      (if (if (hash? ht_0) (not (immutable? ht_0)) #f)
        (void)
        (raise-argument-error
         'hash-ref!
         "(and/c hash? (not/c immutable?))"
         0
         ht_0
         key_0
         new_0))
      (let ((v_0 (hash-ref ht_0 key_0 not-there)))
        (if (eq? not-there v_0)
          (let ((n_0 (if (procedure? new_0) (|#%app| new_0) new_0)))
            (begin (hash-set! ht_0 key_0 n_0) n_0))
          v_0)))))
(define path-string?
  (lambda (s_0)
    (let ((or-part_0 (path? s_0)))
      (if or-part_0
        or-part_0
        (if (string? s_0)
          (let ((or-part_1 (relative-path? s_0)))
            (if or-part_1 or-part_1 (absolute-path? s_0)))
          #f)))))
(define bsbs (string '#\x5c '#\x5c))
(define normal-case-path
  (lambda (s_0)
    (begin
      (if (let ((or-part_0 (path-for-some-system? s_0)))
            (if or-part_0 or-part_0 (path-string? s_0)))
        (void)
        (raise-argument-error
         'normal-path-case
         "(or/c path-for-some-system? path-string?)"
         s_0))
      (if (if (path-for-some-system? s_0)
            (eq? (path-convention-type s_0) 'windows)
            (eq? (system-type) 'windows))
        (let ((bstr_0 (if (string? s_0) #f (path->bytes s_0))))
          (if (if (string? s_0) (regexp-match? rx2276 s_0) #f)
            (string->path s_0)
            (if (if bstr_0 (regexp-match? rx2490 bstr_0) #f)
              s_0
              (let ((norm_0
                     (|#%name|
                      norm
                      (lambda (s_1)
                        (begin
                          (string-locale-downcase
                           (regexp-replace* rx2515 s_1 bsbs)))))))
                (let ((norm-tail_0
                       (|#%name|
                        norm-tail
                        (lambda (s_1)
                          (begin
                            (if (regexp-match? rx2283 s_1)
                              s_1
                              (regexp-replace* rx2458 s_1 "\\1")))))))
                  (let ((finish_0
                         (|#%name|
                          finish
                          (lambda (bstr_1)
                            (begin (bytes->path bstr_1 'windows))))))
                    (if (string? s_0)
                      (let ((bstr_1
                             (string->bytes/locale
                              (norm_0 (norm-tail_0 s_0)))))
                        (begin-unsafe (begin (bytes->path bstr_1 'windows))))
                      (let ((c_0 (bytes-open-converter "" "UTF-8")))
                        (let ((bstr_1
                               (letrec*
                                ((loop_0
                                  (|#%name|
                                   loop
                                   (lambda (offset_0)
                                     (begin
                                       (call-with-values
                                        (lambda ()
                                          (bytes-convert
                                           c_0
                                           bstr_0
                                           offset_0
                                           (unsafe-bytes-length bstr_0)))
                                        (case-lambda
                                         ((new-bstr_0 used_0 status_0)
                                          (let ((s_1
                                                 (bytes->string/locale
                                                  new-bstr_0)))
                                            (let ((tail-s_0
                                                   (if (eq? status_0 'complete)
                                                     (norm-tail_0 s_1)
                                                     s_1)))
                                              (let ((done_0
                                                     (string->bytes/locale
                                                      (norm_0 tail-s_0))))
                                                (if (eq? status_0 'complete)
                                                  done_0
                                                  (if (eq? status_0 'aborts)
                                                    (bytes-append
                                                     done_0
                                                     (subbytes
                                                      bstr_0
                                                      (+ offset_0 used_0)))
                                                    (let ((app_0
                                                           (let ((app_0
                                                                  (+
                                                                   offset_0
                                                                   used_0)))
                                                             (subbytes
                                                              bstr_0
                                                              app_0
                                                              (+
                                                               offset_0
                                                               used_0
                                                               1)))))
                                                      (bytes-append
                                                       done_0
                                                       app_0
                                                       (loop_0
                                                        (+
                                                         offset_0
                                                         used_0
                                                         1))))))))))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args)))))))))
                                (loop_0 0))))
                          (begin-unsafe
                           (begin (bytes->path bstr_1 'windows))))))))))))
        (if (string? s_0) (string->path s_0) s_0)))))
(define check-extension-call
  (lambda (s_0 sfx_0 who_0 sep_0 trust-sep?_0)
    (begin
      (call-with-values
       (lambda ()
         (if (not
              (let ((or-part_0 (path-for-some-system? s_0)))
                (if or-part_0 or-part_0 (path-string? s_0))))
           (values "(or/c path-for-some-system? path-string?)" 0)
           (if (not
                (let ((or-part_0 (string? sfx_0)))
                  (if or-part_0 or-part_0 (bytes? sfx_0))))
             (values "(or/c string? bytes?)" 1)
             (if (not
                  (if trust-sep?_0
                    trust-sep?_0
                    (let ((or-part_0 (string? sep_0)))
                      (if or-part_0 or-part_0 (bytes? sep_0)))))
               (values "(or/c string? bytes?)" 2)
               (values #f #f)))))
       (case-lambda
        ((err-msg_0 err-index_0)
         (if err-msg_0
           (if trust-sep?_0
             (raise-argument-error who_0 err-msg_0 err-index_0 s_0 sfx_0)
             (raise-argument-error
              who_0
              err-msg_0
              err-index_0
              s_0
              sfx_0
              sep_0))
           (void)))
        (args (raise-binding-result-arity-error 2 args))))
      (call-with-values
       (lambda () (split-path s_0))
       (case-lambda
        ((base_0 name_0 dir?_0)
         (begin
           (if (not base_0)
             (raise-mismatch-error
              who_0
              "cannot add an extension to a root path: "
              s_0)
             (void))
           (values base_0 name_0)))
        (args (raise-binding-result-arity-error 3 args)))))))
(define path-adjust-extension
  (lambda (name_0 sep_0 rest-bytes_0 s_0 sfx_0 trust-sep?_0)
    (call-with-values
     (lambda () (check-extension-call s_0 sfx_0 name_0 sep_0 trust-sep?_0))
     (case-lambda
      ((base_0 name_1)
       (let ((bs_0 (path-element->bytes name_1)))
         (let ((finish_0
                (|#%name|
                 finish
                 (lambda (i_0 sep_1 i2_0)
                   (begin
                     (let ((app_0
                            (let ((app_0 (subbytes bs_0 0 i_0)))
                              (let ((app_1
                                     (if (string? sep_1)
                                       (string->bytes/locale sep_1 63)
                                       sep_1)))
                                (let ((app_2 (|#%app| rest-bytes_0 bs_0 i2_0)))
                                  (bytes-append
                                   app_0
                                   app_1
                                   app_2
                                   (if (string? sfx_0)
                                     (string->bytes/locale sfx_0 63)
                                     sfx_0)))))))
                       (bytes->path-element
                        app_0
                        (if (path-for-some-system? s_0)
                          (path-convention-type s_0)
                          (system-path-convention-type)))))))))
           (let ((new-name_0
                  (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda (i_0)
                        (begin
                          (if (zero? i_0)
                            (finish_0
                             (unsafe-bytes-length bs_0)
                             #vu8()
                             (unsafe-bytes-length bs_0))
                            (let ((i_1 (sub1 i_0)))
                              (if (if (not (zero? i_1))
                                    (eq? 46 (unsafe-bytes-ref bs_0 i_1))
                                    #f)
                                (finish_0 i_1 sep_0 (add1 i_1))
                                (loop_0 i_1)))))))))
                   (loop_0 (unsafe-bytes-length bs_0)))))
             (if (path-for-some-system? base_0)
               (build-path base_0 new-name_0)
               new-name_0)))))
      (args (raise-binding-result-arity-error 2 args))))))
(define path-replace-extension
  (lambda (s_0 sfx_0)
    (path-adjust-extension
     'path-replace-extension
     #vu8()
     (lambda (bs_0 i_0) #vu8())
     s_0
     sfx_0
     #t)))
(define path-add-extension
  (case-lambda
   ((s_0 sfx_0)
    (path-adjust-extension 'path-add-extension #vu8(95) subbytes s_0 sfx_0 #t))
   ((s_0 sfx_0 sep_0)
    (path-adjust-extension 'path-add-extension sep_0 subbytes s_0 sfx_0 #f))))
(define reroot-path
  (lambda (p_0 root_0)
    (begin
      (if (let ((or-part_0 (path-string? p_0)))
            (if or-part_0 or-part_0 (path-for-some-system? p_0)))
        (void)
        (raise-argument-error
         'reroot-path
         "(or/c path-string? path-for-some-system?)"
         0
         p_0
         root_0))
      (begin
        (if (let ((or-part_0 (path-string? root_0)))
              (if or-part_0 or-part_0 (path-for-some-system? root_0)))
          (void)
          (raise-argument-error
           'reroot-path
           "(or/c path-string? path-for-some-system?)"
           1
           p_0
           root_0))
        (let ((conv_0
               (if (path-for-some-system? p_0)
                 (path-convention-type p_0)
                 (system-path-convention-type))))
          (begin
            (if (let ((or-part_0 (complete-path? p_0)))
                  (if or-part_0
                    or-part_0
                    (eq? (system-path-convention-type) conv_0)))
              (void)
              (raise-arguments-error
               'reroot-path
               "path is not complete and not the platform's convention"
               "path"
               p_0
               "platform convention type"
               (system-path-convention-type)))
            (begin
              (if (eq?
                   (if (path-for-some-system? root_0)
                     (path-convention-type root_0)
                     (system-path-convention-type))
                   conv_0)
                (void)
                (raise-arguments-error
                 'reroot-path
                 "given paths use different conventions"
                 "path"
                 p_0
                 "root path"
                 root_0))
              (let ((c-p_0
                     (normal-case-path
                      (cleanse-path
                       (if (complete-path? p_0)
                         p_0
                         (path->complete-path p_0))))))
                (let ((bstr_0 (path->bytes c-p_0)))
                  (if (eq? conv_0 'unix)
                    (if (bytes=? bstr_0 #vu8(47))
                      (if (path-for-some-system? root_0)
                        root_0
                        (string->path root_0))
                      (build-path
                       root_0
                       (bytes->path (subbytes (path->bytes c-p_0) 1) conv_0)))
                    (if (eq? conv_0 'windows)
                      (build-path
                       root_0
                       (bytes->path
                        (if (regexp-match? rx2566 bstr_0)
                          (let ((app_0 (subbytes bstr_0 4 5)))
                            (bytes-append
                             #vu8(92 92 63 92 82 69 76 92)
                             app_0
                             #vu8(92)
                             (subbytes bstr_0 6)))
                          (if (regexp-match? rx2590 bstr_0)
                            (bytes-append
                             #vu8(92 92 63 92 82 69 76 92)
                             (subbytes bstr_0 4))
                            (if (regexp-match? rx2590 bstr_0)
                              (bytes-append
                               #vu8(92 92 63 92 82 69 76 92)
                               (subbytes bstr_0 4))
                              (if (regexp-match? rx2623 bstr_0)
                                (bytes-append #vu8(85 78 67 92) (subbytes bstr_0 2))
                                (if (regexp-match? rx2947 bstr_0)
                                  (let ((app_0 (subbytes bstr_0 0 1)))
                                    (bytes-append app_0 (subbytes bstr_0 2)))
                                  (void))))))
                        conv_0))
                      (void))))))))))))
(define rx:path-list #f)
(define init-rx:path-list!
  (lambda ()
    (if rx:path-list
      (void)
      (set! rx:path-list
        (byte-regexp
         (string->bytes/utf-8
          (let ((sep_0 (if (eq? (system-type) 'windows) ";" ":")))
            (format "([^~a]*)~a(.*)" sep_0 sep_0))))))))
(define cons-path
  (lambda (default_0 s_0 l_0)
    (let ((s_1
           (if (eq? (system-type) 'windows)
             (regexp-replace* rx2199 s_0 #vu8())
             s_0)))
      (if (bytes=? s_1 #vu8())
        (append default_0 l_0)
        (cons (bytes->path s_1) l_0)))))
(define path-list-string->path-list
  (lambda (s_0 default_0)
    (begin
      (if (let ((or-part_0 (bytes? s_0)))
            (if or-part_0 or-part_0 (string? s_0)))
        (void)
        (raise-argument-error
         'path-list-string->path-list
         "(or/c bytes? string?)"
         s_0))
      (if (regexp-match? rx2194 s_0)
        (let ((label_0 (if (bytes? s_0) "byte string" "string")))
          (raise-arguments-error
           'path-list-string->path-list
           (format "given ~a contains a nul character" label_0)
           label_0
           s_0))
        (void))
      (if (if (list? default_0)
            (andmap
             (lambda (p_0)
               (let ((or-part_0 (eq? p_0 'same)))
                 (if or-part_0 or-part_0 path?)))
             default_0)
            #f)
        (void)
        (raise-argument-error
         'path-list-string->path-list
         "(listof path?)"
         default_0))
      (init-rx:path-list!)
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (s_1)
            (begin
              (let ((m_0 (regexp-match rx:path-list s_1)))
                (if m_0
                  (let ((app_0 (cadr m_0)))
                    (cons-path default_0 app_0 (loop_0 (caddr m_0))))
                  (cons-path default_0 s_1 null))))))))
       (loop_0 (if (string? s_0) (string->bytes/utf-8 s_0) s_0))))))
(define find-executable-path
  (case-lambda
   ((program_0 libpath_0 reverse?_0)
    (begin
      (if (path-string? program_0)
        (void)
        (raise-argument-error 'find-executable-path "path-string?" program_0))
      (if (let ((or-part_0 (not libpath_0)))
            (if or-part_0
              or-part_0
              (if (path-string? libpath_0) (relative-path? libpath_0) #f)))
        (void)
        (raise-argument-error
         'find-executable-path
         "(or/c #f (and/c path-string? relative-path?))"
         libpath_0))
      (letrec*
       ((found-exec_0
         (|#%name|
          found-exec
          (lambda (exec-name_0)
            (begin
              (if libpath_0
                (call-with-values
                 (lambda () (split-path exec-name_0))
                 (case-lambda
                  ((base_0 name_0 isdir?_0)
                   (let ((next_0
                          (|#%name|
                           next
                           (lambda ()
                             (begin
                               (let ((resolved_0 (resolve-path exec-name_0)))
                                 (if (equal? resolved_0 exec-name_0)
                                   #f
                                   (if (relative-path? resolved_0)
                                     (found-exec_0
                                      (build-path base_0 resolved_0))
                                     (found-exec_0 resolved_0)))))))))
                     (let ((or-part_0 (if reverse?_0 (next_0) #f)))
                       (if or-part_0
                         or-part_0
                         (let ((or-part_1
                                (if (path? base_0)
                                  (let ((lib_0 (build-path base_0 libpath_0)))
                                    (if (let ((or-part_1
                                               (directory-exists? lib_0)))
                                          (if or-part_1
                                            or-part_1
                                            (file-exists? lib_0)))
                                      lib_0
                                      #f))
                                  #f)))
                           (if or-part_1
                             or-part_1
                             (if (not reverse?_0) (next_0) #f)))))))
                  (args (raise-binding-result-arity-error 3 args))))
                exec-name_0)))))
        (try-exec_0
         (|#%name|
          try-exec
          (lambda (program_1)
            (begin
              (if (if (relative-path? program_1)
                    (call-with-values
                     (lambda () (split-path program_1))
                     (case-lambda
                      ((base_0 name_0 dir?_0) (eq? base_0 'relative))
                      (args (raise-binding-result-arity-error 3 args))))
                    #f)
                (let ((paths-bstr_0
                       (environment-variables-ref
                        (current-environment-variables)
                        #vu8(80 65 84 72))))
                  (let ((win-add_0
                         (|#%name|
                          win-add
                          (lambda (s_0)
                            (begin
                              (if (eq? (system-type) 'windows)
                                (cons (bytes->path #vu8(46)) s_0)
                                s_0))))))
                    (let ((paths-bstr_1 paths-bstr_0))
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (paths_0)
                            (begin
                              (if (null? paths_0)
                                #f
                                (let ((base_0
                                       (path->complete-path (car paths_0))))
                                  (let ((name_0 (build-path base_0 program_1)))
                                    (if (file-exists? name_0)
                                      (found-exec_0 name_0)
                                      (loop_0 (cdr paths_0)))))))))))
                       (loop_0
                        (win-add_0
                         (if paths-bstr_1
                           (path-list-string->path-list paths-bstr_1 null)
                           null)))))))
                (let ((p_0 (path->complete-path program_1)))
                  (if (file-exists? p_0) (found-exec_0 p_0) #f))))))))
       (let ((or-part_0 (try-exec_0 program_0)))
         (if or-part_0
           or-part_0
           (if (eq? 'windows (system-type))
             (call-with-values
              (lambda () (split-path program_0))
              (case-lambda
               ((base_0 name_0 dir?_0)
                (if (path? name_0)
                  (if (not (regexp-match? rx2668 name_0))
                    (try-exec_0
                     (path-replace-extension program_0 #vu8(46 101 120 101)))
                    #f)
                  #f))
               (args (raise-binding-result-arity-error 3 args))))
             #f))))))
   ((program_0 libpath_0) (find-executable-path program_0 libpath_0 #f))
   ((program_0) (find-executable-path program_0 #f #f))))
(define call-with-default-reading-parameterization
  (lambda (thunk_0)
    (if (if (procedure? thunk_0) (procedure-arity-includes? thunk_0 0) #f)
      (with-continuation-mark*
       authentic
       parameterization-key
       (extend-parameterization
        (continuation-mark-set-first #f parameterization-key)
        read-case-sensitive
        #t
        1/read-square-bracket-as-paren
        #t
        1/read-curly-brace-as-paren
        #t
        1/read-square-bracket-with-tag
        #f
        1/read-curly-brace-with-tag
        #f
        1/read-accept-box
        #t
        1/read-accept-compiled
        #f
        read-accept-bar-quote
        #t
        1/read-accept-graph
        #t
        1/read-syntax-accept-graph
        #f
        1/read-decimal-as-inexact
        #t
        1/read-single-flonum
        #f
        1/read-cdot
        #f
        1/read-accept-dot
        #t
        1/read-accept-infix-dot
        #t
        1/read-accept-quasiquote
        #t
        1/read-accept-reader
        #f
        1/read-accept-lang
        #t
        1/current-readtable
        #f)
       (|#%app| thunk_0))
      (raise-argument-error
       'call-with-default-reading-parameterization
       "(procedure-arity-includes/c 0)"
       thunk_0))))
(define-values
 (prop:keyword-impersonator keyword-impersonator? keyword-impersonator-ref)
 (make-struct-type-property 'keyword-impersonator))
(define keyword-procedure-impersonator-of
  (lambda (v_0)
    (if (keyword-impersonator? v_0)
      (|#%app| (keyword-impersonator-ref v_0) v_0)
      #f)))
(define-values
 (struct:keyword-procedure
  mk-kw-proc
  keyword-procedure?
  keyword-procedure-ref
  keyword-procedure-set!)
 (let ((app_0
        (list
         (cons prop:checked-procedure #t)
         (cons prop:impersonator-of keyword-procedure-impersonator-of))))
   (make-struct-type
    'keyword-procedure
    #f
    4
    0
    #f
    app_0
    (current-inspector)
    #f
    '(0 1 2 3))))
(define keyword-procedure-required
  (make-struct-field-accessor keyword-procedure-ref 2))
(define keyword-procedure-allowed
  (make-struct-field-accessor keyword-procedure-ref 3))
(define-values
 (prop:procedure-accessor procedure-accessor? procedure-accessor-ref)
 (make-struct-type-property
  'procedure
  (lambda (v_0 info-l_0)
    (if (exact-integer? v_0)
      (make-struct-field-accessor (list-ref info-l_0 3) v_0)
      #f))))
(define-values
 (new-prop:procedure new-procedure? new-procedure-ref)
 (make-struct-type-property
  'procedure
  #f
  (list (cons prop:procedure values) (cons prop:procedure-accessor values))
  #t))
(define procedure-keywords
  (lambda (p_0)
    (if (keyword-procedure? p_0)
      (let ((app_0 (keyword-procedure-required p_0)))
        (values app_0 (keyword-procedure-allowed p_0)))
      (if (procedure? p_0)
        (if (new-procedure? p_0)
          (let ((v_0 (new-procedure-ref p_0)))
            (if (procedure? v_0)
              (procedure-keywords v_0)
              (let ((a_0 (procedure-accessor-ref p_0)))
                (if a_0
                  (procedure-keywords (|#%app| a_0 p_0))
                  (values null null)))))
          (values null null))
        (raise-argument-error*
         'procedure-keywords
         'racket/primitive
         "procedure?"
         p_0)))))
(define print-values
  (lambda vs_0 (begin (for-each (current-print) vs_0) (apply values vs_0))))
(define reverse$1
  (|#%name|
   reverse
   (lambda (l_0)
     (begin
       (begin
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (a_0 l_1)
               (begin
                 (if (null? l_1)
                   a_0
                   (let ((app_0 (cons (car l_1) a_0)))
                     (loop_0 app_0 (cdr l_1)))))))))
          (loop_0 null l_0)))))))
(define-values
 (sort vector-sort vector-sort!)
 (let ((generic-sort_0
        (|#%name|
         generic-sort
         (lambda (A_0 less-than?_0 n_0)
           (begin
             (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
               (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                 (letrec*
                  ((copying-mergesort_0
                    (|#%name|
                     copying-mergesort
                     (lambda (Alo_0 Blo_0 n_1)
                       (begin
                         (if (unsafe-fx= n_1 1)
                           (unsafe-vector-set!
                            A_0
                            Blo_0
                            (unsafe-vector-ref A_0 Alo_0))
                           (if (unsafe-fx= n_1 2)
                             (let ((x_0 (unsafe-vector-ref A_0 Alo_0)))
                               (let ((y_0
                                      (unsafe-vector-ref
                                       A_0
                                       (unsafe-fx+ Alo_0 1))))
                                 (let ((x_1 x_0))
                                   (if (|#%app| less-than?_0 y_0 x_1)
                                     (begin
                                       (unsafe-vector-set! A_0 Blo_0 y_0)
                                       (unsafe-vector-set!
                                        A_0
                                        (unsafe-fx+ Blo_0 1)
                                        x_1))
                                     (begin
                                       (unsafe-vector-set! A_0 Blo_0 x_1)
                                       (unsafe-vector-set!
                                        A_0
                                        (unsafe-fx+ Blo_0 1)
                                        y_0))))))
                             (if (unsafe-fx< n_1 16)
                               (begin
                                 (unsafe-vector-set!
                                  A_0
                                  Blo_0
                                  (unsafe-vector-ref A_0 Alo_0))
                                 (letrec*
                                  ((iloop_0
                                    (|#%name|
                                     iloop
                                     (lambda (i_0)
                                       (begin
                                         (if (unsafe-fx< i_0 n_1)
                                           (let ((ref-i_0
                                                  (unsafe-vector-ref
                                                   A_0
                                                   (unsafe-fx+ Alo_0 i_0))))
                                             (letrec*
                                              ((jloop_0
                                                (|#%name|
                                                 jloop
                                                 (lambda (j_0)
                                                   (begin
                                                     (let ((ref-j-1_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             (unsafe-fx-
                                                              j_0
                                                              1))))
                                                       (if (if (unsafe-fx<
                                                                Blo_0
                                                                j_0)
                                                             (|#%app|
                                                              less-than?_0
                                                              ref-i_0
                                                              ref-j-1_0)
                                                             #f)
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            j_0
                                                            ref-j-1_0)
                                                           (jloop_0
                                                            (unsafe-fx-
                                                             j_0
                                                             1)))
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            j_0
                                                            ref-i_0)
                                                           (iloop_0
                                                            (unsafe-fx+
                                                             i_0
                                                             1))))))))))
                                              (jloop_0
                                               (unsafe-fx+ Blo_0 i_0))))
                                           (void)))))))
                                  (iloop_0 1)))
                               (let ((n/2-_1 (unsafe-fxrshift n_1 1)))
                                 (let ((n/2+_1 (unsafe-fx- n_1 n/2-_1)))
                                   (let ((Amid1_0 (unsafe-fx+ Alo_0 n/2-_1)))
                                     (let ((Amid2_0 (unsafe-fx+ Alo_0 n/2+_1)))
                                       (let ((Bmid1_0
                                              (unsafe-fx+ Blo_0 n/2-_1)))
                                         (begin
                                           (copying-mergesort_0
                                            Amid1_0
                                            Bmid1_0
                                            n/2+_1)
                                           (copying-mergesort_0
                                            Alo_0
                                            Amid2_0
                                            n/2-_1)
                                           (let ((b2_0 (unsafe-fx+ Blo_0 n_1)))
                                             (letrec*
                                              ((loop_0
                                                (|#%name|
                                                 loop
                                                 (lambda (a1_0 b1_0 c1_0)
                                                   (begin
                                                     (let ((x_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             a1_0)))
                                                       (let ((y_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               b1_0)))
                                                         (let ((x_1 x_0))
                                                           (if (not
                                                                (|#%app|
                                                                 less-than?_0
                                                                 y_0
                                                                 x_1))
                                                             (begin
                                                               (unsafe-vector-set!
                                                                A_0
                                                                c1_0
                                                                x_1)
                                                               (let ((a1_1
                                                                      (unsafe-fx+
                                                                       a1_0
                                                                       1)))
                                                                 (let ((c1_1
                                                                        (unsafe-fx+
                                                                         c1_0
                                                                         1)))
                                                                   (if (unsafe-fx<
                                                                        c1_1
                                                                        b1_0)
                                                                     (loop_0
                                                                      a1_1
                                                                      b1_0
                                                                      c1_1)
                                                                     (void)))))
                                                             (begin
                                                               (unsafe-vector-set!
                                                                A_0
                                                                c1_0
                                                                y_0)
                                                               (let ((b1_1
                                                                      (unsafe-fx+
                                                                       b1_0
                                                                       1)))
                                                                 (let ((c1_1
                                                                        (unsafe-fx+
                                                                         c1_0
                                                                         1)))
                                                                   (if (unsafe-fx<=
                                                                        b2_0
                                                                        b1_1)
                                                                     (letrec*
                                                                      ((loop_1
                                                                        (|#%name|
                                                                         loop
                                                                         (lambda (a1_1
                                                                                  c1_2)
                                                                           (begin
                                                                             (if (unsafe-fx<
                                                                                  c1_2
                                                                                  b1_1)
                                                                               (begin
                                                                                 (unsafe-vector-set!
                                                                                  A_0
                                                                                  c1_2
                                                                                  (unsafe-vector-ref
                                                                                   A_0
                                                                                   a1_1))
                                                                                 (loop_1
                                                                                  (unsafe-fx+
                                                                                   a1_1
                                                                                   1)
                                                                                  (unsafe-fx+
                                                                                   c1_2
                                                                                   1)))
                                                                               (void)))))))
                                                                      (loop_1
                                                                       a1_0
                                                                       c1_1))
                                                                     (loop_0
                                                                      a1_0
                                                                      b1_1
                                                                      c1_1))))))))))))))
                                              (loop_0
                                               Amid2_0
                                               Bmid1_0
                                               Blo_0)))))))))))))))))
                  (begin
                    (copying-mergesort_0 n/2-_0 n_0 n/2+_0)
                    (if (zero? n/2-_0)
                      (void)
                      (copying-mergesort_0 0 n/2+_0 n/2-_0))
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (a1_0 b1_0 c1_0)
                          (begin
                            (let ((x_0 (unsafe-vector-ref A_0 a1_0)))
                              (let ((y_0 (unsafe-vector-ref A_0 b1_0)))
                                (let ((x_1 x_0))
                                  (if (|#%app| less-than?_0 x_1 y_0)
                                    (begin
                                      (unsafe-vector-set! A_0 c1_0 x_1)
                                      (let ((a1_1 (unsafe-fx+ a1_0 1)))
                                        (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                          (if (unsafe-fx< c1_1 b1_0)
                                            (loop_0 a1_1 b1_0 c1_1)
                                            (void)))))
                                    (begin
                                      (unsafe-vector-set! A_0 c1_0 y_0)
                                      (let ((b1_1 (unsafe-fx+ b1_0 1)))
                                        (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                          (if (unsafe-fx<= n_0 b1_1)
                                            (letrec*
                                             ((loop_1
                                               (|#%name|
                                                loop
                                                (lambda (a1_1 c1_2)
                                                  (begin
                                                    (if (unsafe-fx< c1_2 b1_1)
                                                      (begin
                                                        (unsafe-vector-set!
                                                         A_0
                                                         c1_2
                                                         (unsafe-vector-ref
                                                          A_0
                                                          a1_1))
                                                        (loop_1
                                                         (unsafe-fx+ a1_1 1)
                                                         (unsafe-fx+ c1_2 1)))
                                                      (void)))))))
                                             (loop_1 a1_0 c1_1))
                                            (loop_0
                                             a1_0
                                             b1_1
                                             c1_1))))))))))))))
                     (loop_0 n_0 n/2+_0 0)))))))))))
   (let ((generic-sort/key_0
          (|#%name|
           generic-sort/key
           (lambda (A_0 less-than?_0 n_0 key_0)
             (begin
               (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
                 (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                   (letrec*
                    ((copying-mergesort_0
                      (|#%name|
                       copying-mergesort
                       (lambda (Alo_0 Blo_0 n_1)
                         (begin
                           (if (unsafe-fx= n_1 1)
                             (unsafe-vector-set!
                              A_0
                              Blo_0
                              (unsafe-vector-ref A_0 Alo_0))
                             (if (unsafe-fx= n_1 2)
                               (let ((x_0 (unsafe-vector-ref A_0 Alo_0)))
                                 (let ((y_0
                                        (unsafe-vector-ref
                                         A_0
                                         (unsafe-fx+ Alo_0 1))))
                                   (let ((x_1 x_0))
                                     (if (if key_0
                                           (let ((app_0 (|#%app| key_0 y_0)))
                                             (|#%app|
                                              less-than?_0
                                              app_0
                                              (|#%app| key_0 x_1)))
                                           (|#%app| less-than?_0 y_0 x_1))
                                       (begin
                                         (unsafe-vector-set! A_0 Blo_0 y_0)
                                         (unsafe-vector-set!
                                          A_0
                                          (unsafe-fx+ Blo_0 1)
                                          x_1))
                                       (begin
                                         (unsafe-vector-set! A_0 Blo_0 x_1)
                                         (unsafe-vector-set!
                                          A_0
                                          (unsafe-fx+ Blo_0 1)
                                          y_0))))))
                               (if (unsafe-fx< n_1 16)
                                 (begin
                                   (unsafe-vector-set!
                                    A_0
                                    Blo_0
                                    (unsafe-vector-ref A_0 Alo_0))
                                   (letrec*
                                    ((iloop_0
                                      (|#%name|
                                       iloop
                                       (lambda (i_0)
                                         (begin
                                           (if (unsafe-fx< i_0 n_1)
                                             (let ((ref-i_0
                                                    (unsafe-vector-ref
                                                     A_0
                                                     (unsafe-fx+ Alo_0 i_0))))
                                               (letrec*
                                                ((jloop_0
                                                  (|#%name|
                                                   jloop
                                                   (lambda (j_0)
                                                     (begin
                                                       (let ((ref-j-1_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               (unsafe-fx-
                                                                j_0
                                                                1))))
                                                         (if (if (unsafe-fx<
                                                                  Blo_0
                                                                  j_0)
                                                               (if key_0
                                                                 (let ((app_0
                                                                        (|#%app|
                                                                         key_0
                                                                         ref-i_0)))
                                                                   (|#%app|
                                                                    less-than?_0
                                                                    app_0
                                                                    (|#%app|
                                                                     key_0
                                                                     ref-j-1_0)))
                                                                 (|#%app|
                                                                  less-than?_0
                                                                  ref-i_0
                                                                  ref-j-1_0))
                                                               #f)
                                                           (begin
                                                             (unsafe-vector-set!
                                                              A_0
                                                              j_0
                                                              ref-j-1_0)
                                                             (jloop_0
                                                              (unsafe-fx-
                                                               j_0
                                                               1)))
                                                           (begin
                                                             (unsafe-vector-set!
                                                              A_0
                                                              j_0
                                                              ref-i_0)
                                                             (iloop_0
                                                              (unsafe-fx+
                                                               i_0
                                                               1))))))))))
                                                (jloop_0
                                                 (unsafe-fx+ Blo_0 i_0))))
                                             (void)))))))
                                    (iloop_0 1)))
                                 (let ((n/2-_1 (unsafe-fxrshift n_1 1)))
                                   (let ((n/2+_1 (unsafe-fx- n_1 n/2-_1)))
                                     (let ((Amid1_0 (unsafe-fx+ Alo_0 n/2-_1)))
                                       (let ((Amid2_0
                                              (unsafe-fx+ Alo_0 n/2+_1)))
                                         (let ((Bmid1_0
                                                (unsafe-fx+ Blo_0 n/2-_1)))
                                           (begin
                                             (copying-mergesort_0
                                              Amid1_0
                                              Bmid1_0
                                              n/2+_1)
                                             (copying-mergesort_0
                                              Alo_0
                                              Amid2_0
                                              n/2-_1)
                                             (let ((b2_0
                                                    (unsafe-fx+ Blo_0 n_1)))
                                               (letrec*
                                                ((loop_0
                                                  (|#%name|
                                                   loop
                                                   (lambda (a1_0 b1_0 c1_0)
                                                     (begin
                                                       (let ((x_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               a1_0)))
                                                         (let ((y_0
                                                                (unsafe-vector-ref
                                                                 A_0
                                                                 b1_0)))
                                                           (let ((x_1 x_0))
                                                             (if (not
                                                                  (if key_0
                                                                    (let ((app_0
                                                                           (|#%app|
                                                                            key_0
                                                                            y_0)))
                                                                      (|#%app|
                                                                       less-than?_0
                                                                       app_0
                                                                       (|#%app|
                                                                        key_0
                                                                        x_1)))
                                                                    (|#%app|
                                                                     less-than?_0
                                                                     y_0
                                                                     x_1)))
                                                               (begin
                                                                 (unsafe-vector-set!
                                                                  A_0
                                                                  c1_0
                                                                  x_1)
                                                                 (let ((a1_1
                                                                        (unsafe-fx+
                                                                         a1_0
                                                                         1)))
                                                                   (let ((c1_1
                                                                          (unsafe-fx+
                                                                           c1_0
                                                                           1)))
                                                                     (if (unsafe-fx<
                                                                          c1_1
                                                                          b1_0)
                                                                       (loop_0
                                                                        a1_1
                                                                        b1_0
                                                                        c1_1)
                                                                       (void)))))
                                                               (begin
                                                                 (unsafe-vector-set!
                                                                  A_0
                                                                  c1_0
                                                                  y_0)
                                                                 (let ((b1_1
                                                                        (unsafe-fx+
                                                                         b1_0
                                                                         1)))
                                                                   (let ((c1_1
                                                                          (unsafe-fx+
                                                                           c1_0
                                                                           1)))
                                                                     (if (unsafe-fx<=
                                                                          b2_0
                                                                          b1_1)
                                                                       (letrec*
                                                                        ((loop_1
                                                                          (|#%name|
                                                                           loop
                                                                           (lambda (a1_1
                                                                                    c1_2)
                                                                             (begin
                                                                               (if (unsafe-fx<
                                                                                    c1_2
                                                                                    b1_1)
                                                                                 (begin
                                                                                   (unsafe-vector-set!
                                                                                    A_0
                                                                                    c1_2
                                                                                    (unsafe-vector-ref
                                                                                     A_0
                                                                                     a1_1))
                                                                                   (loop_1
                                                                                    (unsafe-fx+
                                                                                     a1_1
                                                                                     1)
                                                                                    (unsafe-fx+
                                                                                     c1_2
                                                                                     1)))
                                                                                 (void)))))))
                                                                        (loop_1
                                                                         a1_0
                                                                         c1_1))
                                                                       (loop_0
                                                                        a1_0
                                                                        b1_1
                                                                        c1_1))))))))))))))
                                                (loop_0
                                                 Amid2_0
                                                 Bmid1_0
                                                 Blo_0)))))))))))))))))
                    (begin
                      (copying-mergesort_0 n/2-_0 n_0 n/2+_0)
                      (if (zero? n/2-_0)
                        (void)
                        (copying-mergesort_0 0 n/2+_0 n/2-_0))
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (a1_0 b1_0 c1_0)
                            (begin
                              (let ((x_0 (unsafe-vector-ref A_0 a1_0)))
                                (let ((y_0 (unsafe-vector-ref A_0 b1_0)))
                                  (let ((x_1 x_0))
                                    (if (if key_0
                                          (let ((app_0 (|#%app| key_0 x_1)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| key_0 y_0)))
                                          (|#%app| less-than?_0 x_1 y_0))
                                      (begin
                                        (unsafe-vector-set! A_0 c1_0 x_1)
                                        (let ((a1_1 (unsafe-fx+ a1_0 1)))
                                          (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                            (if (unsafe-fx< c1_1 b1_0)
                                              (loop_0 a1_1 b1_0 c1_1)
                                              (void)))))
                                      (begin
                                        (unsafe-vector-set! A_0 c1_0 y_0)
                                        (let ((b1_1 (unsafe-fx+ b1_0 1)))
                                          (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                            (if (unsafe-fx<= n_0 b1_1)
                                              (letrec*
                                               ((loop_1
                                                 (|#%name|
                                                  loop
                                                  (lambda (a1_1 c1_2)
                                                    (begin
                                                      (if (unsafe-fx<
                                                           c1_2
                                                           b1_1)
                                                        (begin
                                                          (unsafe-vector-set!
                                                           A_0
                                                           c1_2
                                                           (unsafe-vector-ref
                                                            A_0
                                                            a1_1))
                                                          (loop_1
                                                           (unsafe-fx+ a1_1 1)
                                                           (unsafe-fx+
                                                            c1_2
                                                            1)))
                                                        (void)))))))
                                               (loop_1 a1_0 c1_1))
                                              (loop_0
                                               a1_0
                                               b1_1
                                               c1_1))))))))))))))
                       (loop_0 n_0 n/2+_0 0)))))))))))
     (values
      (case-lambda
       ((lst_0 less-than?_0)
        (let ((n_0 (length lst_0)))
          (if (unsafe-fx= n_0 0)
            lst_0
            (if (letrec*
                 ((loop_0
                   (|#%name|
                    loop
                    (lambda (last_0 next_0)
                      (begin
                        (let ((or-part_0 (null? next_0)))
                          (if or-part_0
                            or-part_0
                            (if (not
                                 (|#%app|
                                  less-than?_0
                                  (unsafe-car next_0)
                                  last_0))
                              (loop_0 (unsafe-car next_0) (unsafe-cdr next_0))
                              #f))))))))
                 (let ((app_0 (car lst_0))) (loop_0 app_0 (cdr lst_0))))
              lst_0
              (if (unsafe-fx<= n_0 3)
                (if (unsafe-fx= n_0 1)
                  lst_0
                  (if (unsafe-fx= n_0 2)
                    (let ((app_0 (cadr lst_0))) (list app_0 (car lst_0)))
                    (let ((a_0 (car lst_0)))
                      (let ((b_0 (cadr lst_0)))
                        (let ((c_0 (caddr lst_0)))
                          (let ((b_1 b_0) (a_1 a_0))
                            (if (|#%app| less-than?_0 b_1 a_1)
                              (if (|#%app| less-than?_0 c_0 b_1)
                                (list c_0 b_1 a_1)
                                (if (|#%app| less-than?_0 c_0 a_1)
                                  (list b_1 c_0 a_1)
                                  (list b_1 a_1 c_0)))
                              (if (|#%app| less-than?_0 c_0 a_1)
                                (list c_0 a_1 b_1)
                                (list a_1 c_0 b_1)))))))))
                (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                  (begin
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 lst_1)
                          (begin
                            (if (pair? lst_1)
                              (begin
                                (vector-set! vec_0 i_0 (car lst_1))
                                (let ((app_0 (add1 i_0)))
                                  (loop_0 app_0 (cdr lst_1))))
                              (void)))))))
                     (loop_0 0 lst_0))
                    (generic-sort_0 vec_0 less-than?_0 n_0)
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 r_0)
                          (begin
                            (let ((i_1 (sub1 i_0)))
                              (if (< i_1 0)
                                r_0
                                (loop_0
                                 i_1
                                 (cons (vector-ref vec_0 i_1) r_0)))))))))
                     (loop_0 n_0 '())))))))))
       ((lst_0 less-than?_0 getkey_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (|#%app| sort lst_0 less-than?_0 getkey_0 #f)
          (|#%app| sort lst_0 less-than?_0)))
       ((lst_0 less-than?_0 getkey_0 cache-keys?_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (let ((n_0 (length lst_0)))
            (if (unsafe-fx= n_0 0)
              lst_0
              (if cache-keys?_0
                (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                  (begin
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 lst_1)
                          (begin
                            (if (pair? lst_1)
                              (let ((x_0 (car lst_1)))
                                (begin
                                  (unsafe-vector-set!
                                   vec_0
                                   i_0
                                   (cons (|#%app| getkey_0 x_0) x_0))
                                  (loop_0 (unsafe-fx+ i_0 1) (cdr lst_1))))
                              (void)))))))
                     (loop_0 0 lst_0))
                    (generic-sort/key_0 vec_0 less-than?_0 n_0 unsafe-car)
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 r_0)
                          (begin
                            (let ((i_1 (unsafe-fx- i_0 1)))
                              (if (unsafe-fx< i_1 0)
                                r_0
                                (loop_0
                                 i_1
                                 (cons
                                  (unsafe-cdr (unsafe-vector-ref vec_0 i_1))
                                  r_0)))))))))
                     (loop_0 n_0 '()))))
                (if (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (last_0 next_0)
                          (begin
                            (let ((or-part_0 (null? next_0)))
                              (if or-part_0
                                or-part_0
                                (if (not
                                     (if getkey_0
                                       (let ((app_0
                                              (|#%app|
                                               getkey_0
                                               (unsafe-car next_0))))
                                         (|#%app|
                                          less-than?_0
                                          app_0
                                          (|#%app| getkey_0 last_0)))
                                       (|#%app|
                                        less-than?_0
                                        (unsafe-car next_0)
                                        last_0)))
                                  (loop_0
                                   (unsafe-car next_0)
                                   (unsafe-cdr next_0))
                                  #f))))))))
                     (let ((app_0 (car lst_0))) (loop_0 app_0 (cdr lst_0))))
                  lst_0
                  (if (unsafe-fx<= n_0 3)
                    (if (unsafe-fx= n_0 1)
                      lst_0
                      (if (unsafe-fx= n_0 2)
                        (let ((app_0 (cadr lst_0))) (list app_0 (car lst_0)))
                        (let ((a_0 (car lst_0)))
                          (let ((b_0 (cadr lst_0)))
                            (let ((c_0 (caddr lst_0)))
                              (let ((b_1 b_0) (a_1 a_0))
                                (if (if getkey_0
                                      (let ((app_0 (|#%app| getkey_0 b_1)))
                                        (|#%app|
                                         less-than?_0
                                         app_0
                                         (|#%app| getkey_0 a_1)))
                                      (|#%app| less-than?_0 b_1 a_1))
                                  (if (if getkey_0
                                        (let ((app_0 (|#%app| getkey_0 c_0)))
                                          (|#%app|
                                           less-than?_0
                                           app_0
                                           (|#%app| getkey_0 b_1)))
                                        (|#%app| less-than?_0 c_0 b_1))
                                    (list c_0 b_1 a_1)
                                    (if (if getkey_0
                                          (let ((app_0 (|#%app| getkey_0 c_0)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| getkey_0 a_1)))
                                          (|#%app| less-than?_0 c_0 a_1))
                                      (list b_1 c_0 a_1)
                                      (list b_1 a_1 c_0)))
                                  (if (if getkey_0
                                        (let ((app_0 (|#%app| getkey_0 c_0)))
                                          (|#%app|
                                           less-than?_0
                                           app_0
                                           (|#%app| getkey_0 a_1)))
                                        (|#%app| less-than?_0 c_0 a_1))
                                    (list c_0 a_1 b_1)
                                    (list a_1 c_0 b_1)))))))))
                    (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                      (begin
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0 lst_1)
                              (begin
                                (if (pair? lst_1)
                                  (begin
                                    (vector-set! vec_0 i_0 (car lst_1))
                                    (let ((app_0 (add1 i_0)))
                                      (loop_0 app_0 (cdr lst_1))))
                                  (void)))))))
                         (loop_0 0 lst_0))
                        (generic-sort/key_0 vec_0 less-than?_0 n_0 getkey_0)
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0 r_0)
                              (begin
                                (let ((i_1 (sub1 i_0)))
                                  (if (< i_1 0)
                                    r_0
                                    (loop_0
                                     i_1
                                     (cons (vector-ref vec_0 i_1) r_0)))))))))
                         (loop_0 n_0 '())))))))))
          (|#%app| sort lst_0 less-than?_0))))
      (case-lambda
       ((vec_0 less-than?_0 start_0 end_0)
        (let ((n_0 (- end_0 start_0)))
          (let ((dst-vec_0 (make-vector n_0)))
            (begin
              (if (unsafe-fx= n_0 0)
                (void)
                (if (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (prev-val_0 next-index_0)
                          (begin
                            (let ((or-part_0 (unsafe-fx= next-index_0 end_0)))
                              (if or-part_0
                                or-part_0
                                (let ((next-val_0
                                       (unsafe-vector-ref vec_0 next-index_0)))
                                  (if (not
                                       (|#%app|
                                        less-than?_0
                                        next-val_0
                                        prev-val_0))
                                    (loop_0
                                     next-val_0
                                     (unsafe-fx+ next-index_0 1))
                                    #f)))))))))
                     (let ((app_0 (unsafe-vector-ref vec_0 start_0)))
                       (loop_0 app_0 (unsafe-fx+ start_0 1))))
                  (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                  (if (unsafe-fx<= n_0 3)
                    (begin
                      (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                      (if (unsafe-fx= n_0 1)
                        (void)
                        (if (unsafe-fx= n_0 2)
                          (let ((tmp_0 (unsafe-vector-ref dst-vec_0 0)))
                            (begin
                              (unsafe-vector-set!
                               dst-vec_0
                               0
                               (unsafe-vector-ref dst-vec_0 1))
                              (unsafe-vector-set! dst-vec_0 1 tmp_0)))
                          (let ((a_0 (unsafe-vector-ref dst-vec_0 0)))
                            (let ((b_0 (unsafe-vector-ref dst-vec_0 1)))
                              (let ((c_0 (unsafe-vector-ref dst-vec_0 2)))
                                (let ((b_1 b_0) (a_1 a_0))
                                  (if (|#%app| less-than?_0 b_1 a_1)
                                    (if (|#%app| less-than?_0 c_0 b_1)
                                      (begin
                                        (unsafe-vector-set! dst-vec_0 0 c_0)
                                        (unsafe-vector-set! dst-vec_0 2 a_1))
                                      (if (|#%app| less-than?_0 c_0 a_1)
                                        (begin
                                          (unsafe-vector-set! dst-vec_0 0 b_1)
                                          (unsafe-vector-set! dst-vec_0 1 c_0)
                                          (unsafe-vector-set! dst-vec_0 2 a_1))
                                        (begin
                                          (unsafe-vector-set! dst-vec_0 0 b_1)
                                          (unsafe-vector-set!
                                           dst-vec_0
                                           1
                                           a_1))))
                                    (if (|#%app| less-than?_0 c_0 a_1)
                                      (begin
                                        (unsafe-vector-set! dst-vec_0 0 c_0)
                                        (unsafe-vector-set! dst-vec_0 1 a_1)
                                        (unsafe-vector-set! dst-vec_0 2 b_1))
                                      (begin
                                        (unsafe-vector-set! dst-vec_0 1 c_0)
                                        (unsafe-vector-set!
                                         dst-vec_0
                                         2
                                         b_1)))))))))))
                    (let ((work-vec_0
                           (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                      (begin
                        (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                        (generic-sort_0 work-vec_0 less-than?_0 n_0)
                        (vector-copy! dst-vec_0 0 work-vec_0 0 n_0))))))
              dst-vec_0))))
       ((vec_0 less-than?_0 start_0 end_0 getkey_0 cache-keys?_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (let ((n_0 (- end_0 start_0)))
            (let ((dst-vec_0 (make-vector n_0)))
              (begin
                (if (unsafe-fx= n_0 0)
                  (void)
                  (if cache-keys?_0
                    (let ((work-vec_0
                           (make-vector (+ n_0 (ceiling (/ n_0 2))) #t)))
                      (begin
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0)
                              (begin
                                (if (unsafe-fx< i_0 n_0)
                                  (begin
                                    (let ((x_0
                                           (unsafe-vector-ref
                                            vec_0
                                            (unsafe-fx+ i_0 start_0))))
                                      (unsafe-vector-set!
                                       work-vec_0
                                       i_0
                                       (cons (|#%app| getkey_0 x_0) x_0)))
                                    (loop_0 (unsafe-fx+ i_0 1)))
                                  (void)))))))
                         (loop_0 0))
                        (generic-sort/key_0
                         work-vec_0
                         less-than?_0
                         n_0
                         unsafe-car)
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0)
                              (begin
                                (if (unsafe-fx< i_0 n_0)
                                  (begin
                                    (unsafe-vector-set!
                                     dst-vec_0
                                     (unsafe-fx+ i_0 0)
                                     (unsafe-cdr
                                      (unsafe-vector-ref work-vec_0 i_0)))
                                    (loop_0 (unsafe-fx+ i_0 1)))
                                  (void)))))))
                         (loop_0 0))))
                    (if (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (prev-val_0 next-index_0)
                              (begin
                                (let ((or-part_0
                                       (unsafe-fx= next-index_0 end_0)))
                                  (if or-part_0
                                    or-part_0
                                    (let ((next-val_0
                                           (unsafe-vector-ref
                                            vec_0
                                            next-index_0)))
                                      (if (not
                                           (if getkey_0
                                             (let ((app_0
                                                    (|#%app|
                                                     getkey_0
                                                     next-val_0)))
                                               (|#%app|
                                                less-than?_0
                                                app_0
                                                (|#%app| getkey_0 prev-val_0)))
                                             (|#%app|
                                              less-than?_0
                                              next-val_0
                                              prev-val_0)))
                                        (loop_0
                                         next-val_0
                                         (unsafe-fx+ next-index_0 1))
                                        #f)))))))))
                         (let ((app_0 (unsafe-vector-ref vec_0 start_0)))
                           (loop_0 app_0 (unsafe-fx+ start_0 1))))
                      (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                      (if (unsafe-fx<= n_0 3)
                        (begin
                          (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                          (if (unsafe-fx= n_0 1)
                            (void)
                            (if (unsafe-fx= n_0 2)
                              (let ((tmp_0 (unsafe-vector-ref dst-vec_0 0)))
                                (begin
                                  (unsafe-vector-set!
                                   dst-vec_0
                                   0
                                   (unsafe-vector-ref dst-vec_0 1))
                                  (unsafe-vector-set! dst-vec_0 1 tmp_0)))
                              (let ((a_0 (unsafe-vector-ref dst-vec_0 0)))
                                (let ((b_0 (unsafe-vector-ref dst-vec_0 1)))
                                  (let ((c_0 (unsafe-vector-ref dst-vec_0 2)))
                                    (let ((b_1 b_0) (a_1 a_0))
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 b_1)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 a_1)))
                                            (|#%app| less-than?_0 b_1 a_1))
                                        (if (if getkey_0
                                              (let ((app_0
                                                     (|#%app| getkey_0 c_0)))
                                                (|#%app|
                                                 less-than?_0
                                                 app_0
                                                 (|#%app| getkey_0 b_1)))
                                              (|#%app| less-than?_0 c_0 b_1))
                                          (begin
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             0
                                             c_0)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             2
                                             a_1))
                                          (if (if getkey_0
                                                (let ((app_0
                                                       (|#%app| getkey_0 c_0)))
                                                  (|#%app|
                                                   less-than?_0
                                                   app_0
                                                   (|#%app| getkey_0 a_1)))
                                                (|#%app| less-than?_0 c_0 a_1))
                                            (begin
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               0
                                               b_1)
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               1
                                               c_0)
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               2
                                               a_1))
                                            (begin
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               0
                                               b_1)
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               1
                                               a_1))))
                                        (if (if getkey_0
                                              (let ((app_0
                                                     (|#%app| getkey_0 c_0)))
                                                (|#%app|
                                                 less-than?_0
                                                 app_0
                                                 (|#%app| getkey_0 a_1)))
                                              (|#%app| less-than?_0 c_0 a_1))
                                          (begin
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             0
                                             c_0)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             1
                                             a_1)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             2
                                             b_1))
                                          (begin
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             1
                                             c_0)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             2
                                             b_1)))))))))))
                        (let ((work-vec_0
                               (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                          (begin
                            (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                            (generic-sort/key_0
                             work-vec_0
                             less-than?_0
                             n_0
                             getkey_0)
                            (vector-copy! dst-vec_0 0 work-vec_0 0 n_0)))))))
                dst-vec_0)))
          (|#%app| vector-sort vec_0 less-than?_0 start_0 end_0))))
      (case-lambda
       ((vec_0 less-than?_0 start_0 end_0)
        (let ((n_0 (- end_0 start_0)))
          (begin
            (if (unsafe-fx= n_0 0)
              (void)
              (if (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda (prev-val_0 next-index_0)
                        (begin
                          (let ((or-part_0 (unsafe-fx= next-index_0 end_0)))
                            (if or-part_0
                              or-part_0
                              (let ((next-val_0
                                     (unsafe-vector-ref vec_0 next-index_0)))
                                (if (not
                                     (|#%app|
                                      less-than?_0
                                      next-val_0
                                      prev-val_0))
                                  (loop_0
                                   next-val_0
                                   (unsafe-fx+ next-index_0 1))
                                  #f)))))))))
                   (let ((app_0 (unsafe-vector-ref vec_0 start_0)))
                     (loop_0 app_0 (unsafe-fx+ start_0 1))))
                (void)
                (if (unsafe-fx<= n_0 3)
                  (begin
                    (if (unsafe-fx= n_0 1)
                      (void)
                      (if (unsafe-fx= n_0 2)
                        (let ((tmp_0
                               (unsafe-vector-ref
                                vec_0
                                (unsafe-fx+ start_0 0))))
                          (begin
                            (unsafe-vector-set!
                             vec_0
                             (unsafe-fx+ start_0 0)
                             (unsafe-vector-ref vec_0 (unsafe-fx+ start_0 1)))
                            (unsafe-vector-set!
                             vec_0
                             (unsafe-fx+ start_0 1)
                             tmp_0)))
                        (let ((a_0
                               (unsafe-vector-ref
                                vec_0
                                (unsafe-fx+ start_0 0))))
                          (let ((b_0
                                 (unsafe-vector-ref
                                  vec_0
                                  (unsafe-fx+ start_0 1))))
                            (let ((c_0
                                   (unsafe-vector-ref
                                    vec_0
                                    (unsafe-fx+ start_0 2))))
                              (let ((b_1 b_0) (a_1 a_0))
                                (if (|#%app| less-than?_0 b_1 a_1)
                                  (if (|#%app| less-than?_0 c_0 b_1)
                                    (begin
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 0)
                                       c_0)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 2)
                                       a_1))
                                    (if (|#%app| less-than?_0 c_0 a_1)
                                      (begin
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 0)
                                         b_1)
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 1)
                                         c_0)
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 2)
                                         a_1))
                                      (begin
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 0)
                                         b_1)
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 1)
                                         a_1))))
                                  (if (|#%app| less-than?_0 c_0 a_1)
                                    (begin
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 0)
                                       c_0)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 1)
                                       a_1)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 2)
                                       b_1))
                                    (begin
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 1)
                                       c_0)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 2)
                                       b_1)))))))))))
                  (let ((work-vec_0
                         (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                    (begin
                      (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                      (generic-sort_0 work-vec_0 less-than?_0 n_0)
                      (vector-copy! vec_0 start_0 work-vec_0 0 n_0))))))
            (void))))
       ((vec_0 less-than?_0 start_0 end_0 getkey_0 cache-keys?_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (let ((n_0 (- end_0 start_0)))
            (begin
              (if (unsafe-fx= n_0 0)
                (void)
                (if cache-keys?_0
                  (let ((work-vec_0
                         (make-vector (+ n_0 (ceiling (/ n_0 2))) #t)))
                    (begin
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (i_0)
                            (begin
                              (if (unsafe-fx< i_0 n_0)
                                (begin
                                  (let ((x_0
                                         (unsafe-vector-ref
                                          vec_0
                                          (unsafe-fx+ i_0 start_0))))
                                    (unsafe-vector-set!
                                     work-vec_0
                                     i_0
                                     (cons (|#%app| getkey_0 x_0) x_0)))
                                  (loop_0 (unsafe-fx+ i_0 1)))
                                (void)))))))
                       (loop_0 0))
                      (generic-sort/key_0
                       work-vec_0
                       less-than?_0
                       n_0
                       unsafe-car)
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (i_0)
                            (begin
                              (if (unsafe-fx< i_0 n_0)
                                (begin
                                  (unsafe-vector-set!
                                   vec_0
                                   (unsafe-fx+ i_0 start_0)
                                   (unsafe-cdr
                                    (unsafe-vector-ref work-vec_0 i_0)))
                                  (loop_0 (unsafe-fx+ i_0 1)))
                                (void)))))))
                       (loop_0 0))))
                  (if (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (prev-val_0 next-index_0)
                            (begin
                              (let ((or-part_0
                                     (unsafe-fx= next-index_0 end_0)))
                                (if or-part_0
                                  or-part_0
                                  (let ((next-val_0
                                         (unsafe-vector-ref
                                          vec_0
                                          next-index_0)))
                                    (if (not
                                         (if getkey_0
                                           (let ((app_0
                                                  (|#%app|
                                                   getkey_0
                                                   next-val_0)))
                                             (|#%app|
                                              less-than?_0
                                              app_0
                                              (|#%app| getkey_0 prev-val_0)))
                                           (|#%app|
                                            less-than?_0
                                            next-val_0
                                            prev-val_0)))
                                      (loop_0
                                       next-val_0
                                       (unsafe-fx+ next-index_0 1))
                                      #f)))))))))
                       (let ((app_0 (unsafe-vector-ref vec_0 start_0)))
                         (loop_0 app_0 (unsafe-fx+ start_0 1))))
                    (void)
                    (if (unsafe-fx<= n_0 3)
                      (begin
                        (if (unsafe-fx= n_0 1)
                          (void)
                          (if (unsafe-fx= n_0 2)
                            (let ((tmp_0
                                   (unsafe-vector-ref
                                    vec_0
                                    (unsafe-fx+ start_0 0))))
                              (begin
                                (unsafe-vector-set!
                                 vec_0
                                 (unsafe-fx+ start_0 0)
                                 (unsafe-vector-ref
                                  vec_0
                                  (unsafe-fx+ start_0 1)))
                                (unsafe-vector-set!
                                 vec_0
                                 (unsafe-fx+ start_0 1)
                                 tmp_0)))
                            (let ((a_0
                                   (unsafe-vector-ref
                                    vec_0
                                    (unsafe-fx+ start_0 0))))
                              (let ((b_0
                                     (unsafe-vector-ref
                                      vec_0
                                      (unsafe-fx+ start_0 1))))
                                (let ((c_0
                                       (unsafe-vector-ref
                                        vec_0
                                        (unsafe-fx+ start_0 2))))
                                  (let ((b_1 b_0) (a_1 a_0))
                                    (if (if getkey_0
                                          (let ((app_0 (|#%app| getkey_0 b_1)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| getkey_0 a_1)))
                                          (|#%app| less-than?_0 b_1 a_1))
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 c_0)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 b_1)))
                                            (|#%app| less-than?_0 c_0 b_1))
                                        (begin
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 0)
                                           c_0)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 2)
                                           a_1))
                                        (if (if getkey_0
                                              (let ((app_0
                                                     (|#%app| getkey_0 c_0)))
                                                (|#%app|
                                                 less-than?_0
                                                 app_0
                                                 (|#%app| getkey_0 a_1)))
                                              (|#%app| less-than?_0 c_0 a_1))
                                          (begin
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 0)
                                             b_1)
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 1)
                                             c_0)
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 2)
                                             a_1))
                                          (begin
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 0)
                                             b_1)
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 1)
                                             a_1))))
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 c_0)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 a_1)))
                                            (|#%app| less-than?_0 c_0 a_1))
                                        (begin
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 0)
                                           c_0)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 1)
                                           a_1)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 2)
                                           b_1))
                                        (begin
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 1)
                                           c_0)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 2)
                                           b_1)))))))))))
                      (let ((work-vec_0
                             (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                        (begin
                          (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                          (generic-sort/key_0
                           work-vec_0
                           less-than?_0
                           n_0
                           getkey_0)
                          (vector-copy! vec_0 start_0 work-vec_0 0 n_0)))))))
              (void)))
          (|#%app| vector-sort! vec_0 less-than?_0 start_0 end_0))))))))
(define-values
 (prop:stream stream-via-prop? stream-ref)
 (make-struct-type-property
  'stream
  (lambda (v_0 si_0)
    (begin
      (if (if (vector? v_0)
            (if (= 3 (vector-length v_0))
              (if (procedure? (vector-ref v_0 0))
                (if (procedure-arity-includes? (vector-ref v_0 0) 1)
                  (if (procedure? (vector-ref v_0 1))
                    (if (procedure-arity-includes? (vector-ref v_0 1) 1)
                      (if (procedure? (vector-ref v_0 2))
                        (procedure-arity-includes? (vector-ref v_0 2) 1)
                        #f)
                      #f)
                    #f)
                  #f)
                #f)
              #f)
            #f)
        (void)
        (raise-argument-error
         'guard-for-prop:stream
         (string-append
          "(vector/c (procedure-arity-includes/c 1)\n"
          "          (procedure-arity-includes/c 1)\n"
          "          (procedure-arity-includes/c 1))")
         v_0))
      (vector->immutable-vector v_0)))
  '()
  #t))
(define-values
 (prop:gen-sequence sequence-via-prop? sequence-ref)
 (make-struct-type-property
  'sequence
  (lambda (v_0 si_0)
    (begin
      (if (if (procedure? v_0) (procedure-arity-includes? v_0 1) #f)
        (void)
        (raise-argument-error
         'guard-for-prop:sequence
         "(procedure-arity-includes/c 1)"
         v_0))
      v_0))))
(define-values
 (struct:range make-range range? range-ref range-set!)
 (make-struct-type
  'stream
  #f
  3
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0)
       (let ((cont?_0 (|#%app| range-ref v_0 2)))
         (if cont?_0 (not (|#%app| cont?_0 (|#%app| range-ref v_0 0))) #f)))
     (lambda (v_0) (|#%app| range-ref v_0 0))
     (lambda (v_0)
       (let ((app_0
              (let ((app_0 (|#%app| range-ref v_0 1)))
                (|#%app| app_0 (|#%app| range-ref v_0 0)))))
         (let ((app_1 (|#%app| range-ref v_0 1)))
           (make-range app_0 app_1 (|#%app| range-ref v_0 2)))))))
   (cons
    prop:gen-sequence
    (lambda (v_0)
      (let ((app_0 (|#%app| range-ref v_0 1)))
        (let ((app_1 (|#%app| range-ref v_0 0)))
          (values values #f app_0 app_1 (|#%app| range-ref v_0 2) #f #f))))))))
(define check-range
  (lambda (a_0 b_0 step_0) (check-range-generic 'in-range a_0 b_0 step_0)))
(define check-range-generic
  (lambda (who_0 a_0 b_0 step_0)
    (begin
      (if (real? a_0) (void) (raise-argument-error who_0 "real?" a_0))
      (if (real? b_0) (void) (raise-argument-error who_0 "real?" b_0))
      (if (real? step_0) (void) (raise-argument-error who_0 "real?" step_0)))))
(define check-naturals
  (lambda (n_0)
    (if (if (integer? n_0) (if (exact? n_0) (>= n_0 0) #f) #f)
      (void)
      (raise-argument-error 'in-naturals "exact-nonnegative-integer?" n_0))))
(define-values
 (struct:list-stream
  make-list-stream
  list-stream?
  list-stream-ref
  list-stream-set!)
 (make-struct-type
  'stream
  #f
  1
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0) (not (pair? (|#%app| list-stream-ref v_0 0))))
     (lambda (v_0) (car (|#%app| list-stream-ref v_0 0)))
     (lambda (v_0) (make-list-stream (cdr (|#%app| list-stream-ref v_0 0))))))
   (cons
    prop:gen-sequence
    (lambda (v_0)
      (values car cdr values (|#%app| list-stream-ref v_0 0) pair? #f #f))))))
(define check-list
  (lambda (l_0)
    (if (list? l_0) (void) (raise-argument-error 'in-list "list?" l_0))))
(define check-in-hash
  (lambda (ht_0)
    (if (hash? ht_0) (void) (raise-argument-error 'in-hash "hash?" ht_0))))
(define check-in-immutable-hash
  (lambda (ht_0)
    (if (if (hash? ht_0) (immutable? ht_0) #f)
      (void)
      (raise-argument-error
       'in-immutable-hash
       "(and/c hash? immutable?)"
       ht_0))))
(define check-in-hash-keys
  (lambda (ht_0)
    (if (hash? ht_0)
      (void)
      (raise-argument-error 'in-hash-keys "hash?" ht_0))))
(define check-in-immutable-hash-keys
  (lambda (ht_0)
    (if (if (hash? ht_0) (immutable? ht_0) #f)
      (void)
      (raise-argument-error
       'in-immutable-hash-keys
       "(and/c hash? immutable?)"
       ht_0))))
(define check-in-hash-values
  (lambda (ht_0)
    (if (hash? ht_0)
      (void)
      (raise-argument-error 'in-hash-values "hash?" ht_0))))
(define check-ranges
  (lambda (who_0 type-name_0 vec_0 start_0 stop_0 step_0 len_0)
    (begin
      (if (exact-nonnegative-integer? start_0)
        (void)
        (raise-argument-error who_0 "exact-nonnegative-integer?" start_0))
      (if (let ((or-part_0 (< start_0 len_0)))
            (if or-part_0 or-part_0 (= len_0 start_0 stop_0)))
        (void)
        (raise-range-error
         who_0
         type-name_0
         "starting "
         start_0
         vec_0
         0
         (sub1 len_0)))
      (if (exact-integer? stop_0)
        (void)
        (raise-argument-error who_0 "exact-integer?" stop_0))
      (if (if (<= -1 stop_0) (<= stop_0 len_0) #f)
        (void)
        (raise-range-error
         who_0
         type-name_0
         "stopping "
         stop_0
         vec_0
         -1
         len_0))
      (if (if (exact-integer? step_0) (not (zero? step_0)) #f)
        (void)
        (raise-argument-error
         who_0
         "(and/c exact-integer? (not/c zero?))"
         step_0))
      (if (if (< start_0 stop_0) (< step_0 0) #f)
        (raise-arguments-error
         who_0
         "starting index less than stopping index, but given a negative step"
         "starting index"
         start_0
         "stopping index"
         stop_0
         "step"
         step_0)
        (void))
      (if (if (< stop_0 start_0) (> step_0 0) #f)
        (raise-arguments-error
         who_0
         "starting index more than stopping index, but given a positive step"
         "starting index"
         start_0
         "stopping index"
         stop_0
         "step"
         step_0)
        (void)))))
(define normalise-inputs
  (lambda (who_0
           type-name_0
           vector?_0
           unsafe-vector-length_0
           vec_0
           start_0
           stop_0
           step_0)
    (begin
      (if (|#%app| vector?_0 vec_0)
        (void)
        (raise-argument-error who_0 type-name_0 vec_0))
      (let ((len_0 (|#%app| unsafe-vector-length_0 vec_0)))
        (let ((stop*_0 (if stop_0 stop_0 len_0)))
          (begin
            (check-ranges who_0 type-name_0 vec_0 start_0 stop*_0 step_0 len_0)
            (values vec_0 start_0 stop*_0 step_0)))))))
(define unsafe-normalise-inputs
  (lambda (unsafe-vector-length_0 vec_0 start_0 stop_0 step_0)
    (values
     vec_0
     start_0
     (if stop_0 stop_0 (|#%app| unsafe-vector-length_0 vec_0))
     step_0)))
(define check-vector
  (lambda (v_0)
    (if (vector? v_0) (void) (raise-argument-error 'in-vector "vector" v_0))))
(define check-string
  (lambda (v_0)
    (if (string? v_0) (void) (raise-argument-error 'in-string "string" v_0))))
(define check-bytes
  (lambda (v_0)
    (if (bytes? v_0) (void) (raise-argument-error 'in-bytes "bytes" v_0))))
(define-values
 (struct:do-stream make-do-stream do-stream? do-stream-ref do-stream-set!)
 (make-struct-type
  'stream
  #f
  3
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0) (|#%app| (|#%app| do-stream-ref v_0 0)))
     (lambda (v_0) (|#%app| (|#%app| do-stream-ref v_0 1)))
     (lambda (v_0) (|#%app| (|#%app| do-stream-ref v_0 2))))))))
(define empty-stream (make-do-stream (lambda () #t) void void))
(define grow-vector
  (lambda (vec_0)
    (let ((n_0 (vector-length vec_0)))
      (let ((new-vec_0 (make-vector (* 2 n_0))))
        (begin (vector-copy! new-vec_0 0 vec_0 0 n_0) new-vec_0)))))
(define shrink-vector
  (lambda (vec_0 i_0)
    (let ((new-vec_0 (make-vector i_0)))
      (begin (vector-copy! new-vec_0 0 vec_0 0 i_0) new-vec_0))))
(define map_1346
  (|#%name|
   map
   (case-lambda
    ((f_0 l_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (l_1)
             (begin
               (if (null? l_1)
                 null
                 (let ((r_0 (cdr l_1)))
                   (let ((app_0 (|#%app| f_0 (car l_1))))
                     (cons app_0 (loop_0 r_0))))))))))
        (loop_0 l_0))))
    ((f_0 l1_0 l2_0)
     (letrec*
      ((loop_0
        (|#%name|
         loop
         (lambda (l1_1 l2_1)
           (begin
             (if (null? l1_1)
               null
               (let ((r1_0 (cdr l1_1)))
                 (let ((r2_0 (cdr l2_1)))
                   (let ((r1_1 r1_0))
                     (let ((app_0
                            (let ((app_0 (car l1_1)))
                              (|#%app| f_0 app_0 (car l2_1)))))
                       (cons app_0 (loop_0 r1_1 r2_0))))))))))))
      (loop_0 l1_0 l2_0)))
    ((f_0 l_0 . args_0) (gen-map f_0 (cons l_0 args_0))))))
(define for-each_2380
  (|#%name|
   for-each
   (case-lambda
    ((f_0 l_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (l_1)
             (begin
               (if (null? l_1)
                 (void)
                 (let ((r_0 (cdr l_1)))
                   (begin (|#%app| f_0 (car l_1)) (loop_0 r_0)))))))))
        (loop_0 l_0))))
    ((f_0 l1_0 l2_0)
     (letrec*
      ((loop_0
        (|#%name|
         loop
         (lambda (l1_1 l2_1)
           (begin
             (if (null? l1_1)
               (void)
               (let ((r1_0 (cdr l1_1)))
                 (let ((r2_0 (cdr l2_1)))
                   (let ((r1_1 r1_0))
                     (begin
                       (let ((app_0 (car l1_1)))
                         (|#%app| f_0 app_0 (car l2_1)))
                       (loop_0 r1_1 r2_0)))))))))))
      (loop_0 l1_0 l2_0)))
    ((f_0 l_0 . args_0) (gen-for-each f_0 (cons l_0 args_0))))))
(define andmap_2344
  (|#%name|
   andmap
   (case-lambda
    ((f_0 l_0)
     (begin
       (if (null? l_0)
         #t
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (l_1)
               (begin
                 (if (null? (cdr l_1))
                   (|#%app| f_0 (car l_1))
                   (let ((r_0 (cdr l_1)))
                     (if (|#%app| f_0 (car l_1)) (loop_0 r_0) #f))))))))
          (loop_0 l_0)))))
    ((f_0 l1_0 l2_0)
     (if (null? l1_0)
       #t
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (l1_1 l2_1)
             (begin
               (if (null? (cdr l1_1))
                 (let ((app_0 (car l1_1))) (|#%app| f_0 app_0 (car l2_1)))
                 (let ((r1_0 (cdr l1_1)))
                   (let ((r2_0 (cdr l2_1)))
                     (let ((r1_1 r1_0))
                       (if (let ((app_0 (car l1_1)))
                             (|#%app| f_0 app_0 (car l2_1)))
                         (loop_0 r1_1 r2_0)
                         #f))))))))))
        (loop_0 l1_0 l2_0))))
    ((f_0 l_0 . args_0) (gen-andmap f_0 (cons l_0 args_0))))))
(define ormap_2765
  (|#%name|
   ormap
   (case-lambda
    ((f_0 l_0)
     (begin
       (if (null? l_0)
         #f
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (l_1)
               (begin
                 (if (null? (cdr l_1))
                   (|#%app| f_0 (car l_1))
                   (let ((r_0 (cdr l_1)))
                     (let ((or-part_0 (|#%app| f_0 (car l_1))))
                       (if or-part_0 or-part_0 (loop_0 r_0))))))))))
          (loop_0 l_0)))))
    ((f_0 l1_0 l2_0)
     (if (null? l1_0)
       #f
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (l1_1 l2_1)
             (begin
               (if (null? (cdr l1_1))
                 (let ((app_0 (car l1_1))) (|#%app| f_0 app_0 (car l2_1)))
                 (let ((r1_0 (cdr l1_1)))
                   (let ((r2_0 (cdr l2_1)))
                     (let ((r1_1 r1_0))
                       (let ((or-part_0
                              (let ((app_0 (car l1_1)))
                                (|#%app| f_0 app_0 (car l2_1)))))
                         (if or-part_0 or-part_0 (loop_0 r1_1 r2_0))))))))))))
        (loop_0 l1_0 l2_0))))
    ((f_0 l_0 . args_0) (gen-ormap f_0 (cons l_0 args_0))))))
(define check-args
  (lambda (who_0 f_0 ls_0)
    (begin
      (if (procedure? f_0)
        (void)
        (raise-argument-error who_0 "procedure?" f_0))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (prev-len_0 ls_1 i_0)
            (begin
              (if (null? ls_1)
                (void)
                (let ((l_0 (car ls_1)))
                  (begin
                    (if (list? l_0)
                      (void)
                      (raise-argument-error who_0 "list?" l_0))
                    (let ((len_0 (length l_0)))
                      (begin
                        (if (if prev-len_0 (not (= len_0 prev-len_0)) #f)
                          (raise-arguments-error
                           who_0
                           "all lists must have same size"
                           "first list length"
                           prev-len_0
                           "other list length"
                           len_0
                           "procedure"
                           f_0)
                          (void))
                        (let ((app_0 (cdr ls_1)))
                          (loop_0 len_0 app_0 (add1 i_0)))))))))))))
       (loop_0 #f ls_0 1))
      (if (procedure-arity-includes? f_0 (length ls_0))
        (void)
        (call-with-values
         (lambda () (procedure-keywords f_0))
         (case-lambda
          ((required-keywords_0 optional-keywords_0)
           (let ((app_0
                  (if (pair? required-keywords_0)
                    (string-append
                     "argument mismatch;\n"
                     " the given procedure expects keyword arguments")
                    (string-append
                     "argument mismatch;\n"
                     " the given procedure's expected number of arguments does not match"
                     " the given number of lists"))))
             (let ((app_1
                    (unquoted-printing-string
                     (let ((or-part_0
                            (let ((n_0 (object-name f_0)))
                              (if (symbol? n_0) (symbol->string n_0) #f))))
                       (if or-part_0 or-part_0 "#<procedure>")))))
               (apply
                raise-arguments-error
                who_0
                app_0
                "given procedure"
                app_1
                (let ((app_2
                       (let ((a_0 (procedure-arity f_0)))
                         (if (pair? required-keywords_0)
                           null
                           (if (integer? a_0)
                             (list "expected" a_0)
                             (if (arity-at-least? a_0)
                               (list
                                "expected"
                                (unquoted-printing-string
                                 (string-append
                                  "at least "
                                  (number->string
                                   (arity-at-least-value a_0)))))
                               null))))))
                  (let ((app_3
                         (if (pair? required-keywords_0)
                           null
                           (list "given" (length ls_0)))))
                    (let ((app_4
                           (if (pair? required-keywords_0)
                             (list
                              "required keywords"
                              (unquoted-printing-string
                               (apply
                                string-append
                                (cdr
                                 (letrec*
                                  ((loop_0
                                    (|#%name|
                                     loop
                                     (lambda (kws_0)
                                       (begin
                                         (if (null? kws_0)
                                           null
                                           (let ((app_4
                                                  (string-append
                                                   "#:"
                                                   (keyword->string
                                                    (car kws_0)))))
                                             (list*
                                              " "
                                              app_4
                                              (loop_0 (cdr kws_0))))))))))
                                  (loop_0 required-keywords_0))))))
                             null)))
                      (append
                       app_2
                       app_3
                       app_4
                       (let ((w_0
                              (let ((app_5 (error-print-width)))
                                (quotient app_5 (length ls_0)))))
                         (if (> w_0 10)
                           (list
                            "argument lists..."
                            (unquoted-printing-string
                             (apply
                              string-append
                              (letrec*
                               ((loop_0
                                 (|#%name|
                                  loop
                                  (lambda (ls_1)
                                    (begin
                                      (if (null? ls_1)
                                        null
                                        (let ((app_5
                                               (string-append
                                                "\n   "
                                                (let ((app_5
                                                       (error-value->string-handler)))
                                                  (|#%app|
                                                   app_5
                                                   (car ls_1)
                                                   w_0)))))
                                          (cons
                                           app_5
                                           (loop_0 (cdr ls_1))))))))))
                               (loop_0 ls_0)))))
                           null))))))))))
          (args (raise-binding-result-arity-error 2 args))))))))
(define gen-map
  (lambda (f_0 ls_0)
    (begin
      #t
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (ls_1)
            (begin
              (if (null? (car ls_1))
                null
                (let ((next-ls_0 (map_1346 cdr ls_1)))
                  (let ((app_0 (apply f_0 (map_1346 car ls_1))))
                    (cons app_0 (loop_0 next-ls_0))))))))))
       (loop_0 ls_0)))))
(define gen-for-each
  (lambda (f_0 ls_0)
    (begin
      #t
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (ls_1)
            (begin
              (if (null? (car ls_1))
                (void)
                (let ((next-ls_0 (map_1346 cdr ls_1)))
                  (begin
                    (apply f_0 (map_1346 car ls_1))
                    (loop_0 next-ls_0)))))))))
       (loop_0 ls_0)))))
(define gen-andmap
  (lambda (f_0 ls_0)
    (begin
      #t
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (ls_1)
            (begin
              (if (null? (car ls_1))
                #t
                (if (null? (cdar ls_1))
                  (apply f_0 (map_1346 car ls_1))
                  (let ((next-ls_0 (map_1346 cdr ls_1)))
                    (if (apply f_0 (map_1346 car ls_1))
                      (loop_0 next-ls_0)
                      #f)))))))))
       (loop_0 ls_0)))))
(define gen-ormap
  (lambda (f_0 ls_0)
    (begin
      #t
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (ls_1)
            (begin
              (if (null? (car ls_1))
                #f
                (if (null? (cdar ls_1))
                  (apply f_0 (map_1346 car ls_1))
                  (let ((next-ls_0 (map_1346 cdr ls_1)))
                    (let ((or-part_0 (apply f_0 (map_1346 car ls_1))))
                      (if or-part_0 or-part_0 (loop_0 next-ls_0)))))))))))
       (loop_0 ls_0)))))
(define hash-keys
  (let ((hash-keys_0
         (|#%name|
          hash-keys
          (lambda (h_0 try-order?_0)
            (begin
              (if try-order?_0
                (hash-map h_0 (lambda (k_0 v_0) k_0) #t)
                (letrec*
                 ((loop_0
                   (|#%name|
                    loop
                    (lambda (pos_0)
                      (begin
                        (if pos_0
                          (let ((k_0
                                 (hash-iterate-key
                                  h_0
                                  pos_0
                                  unsafe-undefined)))
                            (let ((r_0 (loop_0 (hash-iterate-next h_0 pos_0))))
                              (let ((k_1 k_0))
                                (if (eq? k_1 unsafe-undefined)
                                  r_0
                                  (cons k_1 r_0)))))
                          null))))))
                 (loop_0 (hash-iterate-first h_0)))))))))
    (|#%name|
     hash-keys
     (case-lambda
      ((h_0)
       (begin
         (begin
           (if (hash? h_0)
             (void)
             (raise-argument-error 'hash-keys "hash?" 0 h_0))
           (hash-keys_0 h_0 #f))))
      ((h_0 try-order?_0)
       (begin
         (if (hash? h_0)
           (void)
           (raise-argument-error 'hash-keys "hash?" 0 h_0 try-order?_0))
         (hash-keys_0 h_0 try-order?_0)))))))
(define hash-copy-clear.1
  (|#%name|
   hash-copy-clear
   (lambda (kind1_0 table3_0)
     (begin
       (begin
         (if (hash? table3_0)
           (void)
           (raise-argument-error 'hash-copy-clear "hash?" table3_0))
         (if (memq kind1_0 '(#f immutable mutable weak ephemeron))
           (void)
           (raise-argument-error
            'hash-copy-clear
            "(or/c #f 'immutable 'mutable 'weak 'ephemeron)"
            kind1_0))
         (if (if kind1_0 (eq? 'immutable kind1_0) (immutable? table3_0))
           (if (hash-equal? table3_0)
             (hash)
             (if (hash-equal-always? table3_0)
               (hashalw)
               (if (hash-eqv? table3_0)
                 (hasheqv)
                 (if (hash-eq? table3_0) (hasheq) (void)))))
           (if (if kind1_0 (eq? 'weak kind1_0) (hash-weak? table3_0))
             (if (hash-equal? table3_0)
               (make-weak-hash)
               (if (hash-equal-always? table3_0)
                 (make-weak-hashalw)
                 (if (hash-eqv? table3_0)
                   (make-weak-hasheqv)
                   (if (hash-eq? table3_0) (make-weak-hasheq) (void)))))
             (if (if kind1_0
                   (eq? 'ephemeron kind1_0)
                   (hash-ephemeron? table3_0))
               (if (hash-equal? table3_0)
                 (make-ephemeron-hash)
                 (if (hash-equal-always? table3_0)
                   (make-ephemeron-hashalw)
                   (if (hash-eqv? table3_0)
                     (make-ephemeron-hasheqv)
                     (if (hash-eq? table3_0) (make-ephemeron-hasheq) (void)))))
               (if (hash-equal? table3_0)
                 (make-hash)
                 (if (hash-equal-always? table3_0)
                   (make-hashalw)
                   (if (hash-eqv? table3_0)
                     (make-hasheqv)
                     (if (hash-eq? table3_0) (make-hasheq) (void)))))))))))))
(define hash-map/copy.1
  (|#%name|
   hash-map/copy
   (lambda (kind5_0 table7_0 f8_0)
     (begin
       (begin
         (if (hash? table7_0)
           (void)
           (raise-argument-error 'hash-map/copy "hash?" table7_0))
         (begin
           (if (if (procedure? f8_0) (procedure-arity-includes? f8_0 2) #f)
             (void)
             (raise-argument-error
              'hash-map/copy
              "(procedure-arity-includes/c 2)"
              f8_0))
           (begin
             (if (memq kind5_0 '(#f immutable mutable weak ephemeron))
               (void)
               (raise-argument-error
                'hash-map/copy
                "(or/c #f 'immutable 'mutable 'weak 'ephemeron)"
                kind5_0))
             (let ((acc_0 (hash-copy-clear.1 kind5_0 table7_0)))
               (if (immutable? acc_0)
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (acc_1 i_0)
                         (begin
                           (if i_0
                             (call-with-values
                              (lambda () (hash-iterate-key+value table7_0 i_0))
                              (case-lambda
                               ((k1_0 v1_0)
                                (let ((acc_2
                                       (let ((acc_2
                                              (call-with-values
                                               (lambda ()
                                                 (|#%app| f8_0 k1_0 v1_0))
                                               (case-lambda
                                                ((k2_0 v2_0)
                                                 (hash-set acc_1 k2_0 v2_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))
                                         (values acc_2))))
                                  (for-loop_0
                                   acc_2
                                   (hash-iterate-next table7_0 i_0))))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             acc_1))))))
                    (for-loop_0 acc_0 (hash-iterate-first table7_0))))
                 (begin
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (i_0)
                           (begin
                             (if i_0
                               (call-with-values
                                (lambda ()
                                  (hash-iterate-key+value table7_0 i_0))
                                (case-lambda
                                 ((k1_0 v1_0)
                                  (begin
                                    (call-with-values
                                     (lambda () (|#%app| f8_0 k1_0 v1_0))
                                     (case-lambda
                                      ((k2_0 v2_0) (hash-set! acc_0 k2_0 v2_0))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))
                                    (for-loop_0
                                     (hash-iterate-next table7_0 i_0))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (values)))))))
                      (for-loop_0 (hash-iterate-first table7_0))))
                   (void)
                   acc_0))))))))))
(define sort.1
  (|#%name|
   sort
   (lambda (cache-keys?2_0 key1_0 lst5_0 less?6_0)
     (begin
       (begin
         (if (list? lst5_0) (void) (raise-argument-error 'sort "list?" lst5_0))
         (if (if (procedure? less?6_0)
               (procedure-arity-includes? less?6_0 2)
               #f)
           (void)
           (raise-argument-error 'sort "(any/c any/c . -> . any/c)" less?6_0))
         (if (if key1_0
               (not
                (if (procedure? key1_0)
                  (procedure-arity-includes? key1_0 1)
                  #f))
               #f)
           (raise-argument-error 'sort "(any/c . -> . any/c)" key1_0)
           (void))
         (if key1_0
           (|#%app| sort lst5_0 less?6_0 key1_0 cache-keys?2_0)
           (|#%app| sort lst5_0 less?6_0)))))))
(define filter
  (lambda (f_0 list_0)
    (begin
      (if (if (procedure? f_0) (procedure-arity-includes? f_0 1) #f)
        (void)
        (raise-argument-error 'filter "(any/c . -> . any/c)" f_0))
      (if (list? list_0) (void) (raise-argument-error 'filter "list?" list_0))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (l_0 result_0)
            (begin
              (if (null? l_0)
                (reverse$1 result_0)
                (let ((app_0 (cdr l_0)))
                  (loop_0
                   app_0
                   (if (|#%app| f_0 (car l_0))
                     (cons (car l_0) result_0)
                     result_0)))))))))
       (loop_0 list_0 null)))))
(define binary-or-text-desc "(or/c 'binary 'text)")
(define open-input-file.1
  (|#%name|
   open-input-file
   (lambda (for-module?2_0 mode1_0 path5_0)
     (begin
       (begin
         (if (path-string? path5_0)
           (void)
           (raise-argument-error 'open-input-file "path-string?" path5_0))
         (if (memq mode1_0 '(binary text))
           (void)
           (raise-argument-error 'open-input-file binary-or-text-desc mode1_0))
         (open-input-file
          path5_0
          mode1_0
          (if for-module?2_0 'module 'none)))))))
(define with-input-from-file.1
  (|#%name|
   with-input-from-file
   (lambda (mode43_0 path45_0 proc46_0)
     (begin
       (begin
         (if (path-string? path45_0)
           (void)
           (raise-argument-error
            'with-input-from-file
            "path-string?"
            path45_0))
         (if (if (procedure? proc46_0)
               (procedure-arity-includes? proc46_0 0)
               #f)
           (void)
           (raise-argument-error 'with-input-from-file "(-> any)" proc46_0))
         (if (memq mode43_0 '(binary text))
           (void)
           (raise-argument-error
            'with-input-from-file
            binary-or-text-desc
            mode43_0))
         (with-input-from-file path45_0 proc46_0 mode43_0))))))
(define call-with-input-file*.1
  (|#%name|
   call-with-input-file*
   (lambda (mode59_0 path61_0 proc62_0)
     (begin
       (begin
         (if (path-string? path61_0)
           (void)
           (raise-argument-error
            'call-with-input-file*
            "path-string?"
            path61_0))
         (if (if (procedure? proc62_0)
               (procedure-arity-includes? proc62_0 1)
               #f)
           (void)
           (raise-argument-error
            'call-with-input-file*
            "(input-port? . -> . any)"
            proc62_0))
         (if (memq mode59_0 '(binary text))
           (void)
           (raise-argument-error
            'call-with-input-file*
            binary-or-text-desc
            mode59_0))
         (let ((p_0 (open-input-file path61_0 mode59_0)))
           (dynamic-wind
            void
            (lambda () (|#%app| proc62_0 p_0))
            (lambda () (close-input-port p_0)))))))))
(define print-value-columns
  (make-parameter
   +inf.0
   (lambda (c_0)
     (if (let ((or-part_0 (eqv? c_0 +inf.0)))
           (if or-part_0 or-part_0 (if (exact-integer? c_0) (> c_0 5) #f)))
       c_0
       (raise-argument-error
        'print-value-columns
        "(or/c +inf.0 (and/c exact-integer? (>/c 5)))"
        c_0)))
   'print-value-columns))
(define the-empty-hash hash2725)
(define the-empty-hasheq hash2610)
(define the-empty-hasheqv hash2589)
(define set
  (case-lambda
   (() the-empty-hash)
   (l_0
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (s_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((e_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((s_1
                           (let ((s_1 (hash-set s_0 e_0 #t))) (values s_1))))
                      (for-loop_0 s_1 rest_0))))
                s_0))))))
       (for-loop_0 the-empty-hash l_0))))))
(define seteq
  (case-lambda
   (() the-empty-hasheq)
   (l_0
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (s_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((e_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((s_1
                           (let ((s_1 (hash-set s_0 e_0 #t))) (values s_1))))
                      (for-loop_0 s_1 rest_0))))
                s_0))))))
       (for-loop_0 the-empty-hasheq l_0))))))
(define seteqv (lambda () the-empty-hasheqv))
(define set? (lambda (s_0) (hash? s_0)))
(define set-empty? (lambda (s_0) (zero? (hash-count s_0))))
(define set-member? (lambda (s_0 e_0) (hash-ref s_0 e_0 #f)))
(define set-count (lambda (s_0) (hash-count s_0)))
(define set-add (lambda (s_0 e_0) (hash-set s_0 e_0 #t)))
(define set-remove (lambda (s_0 e_0) (hash-remove s_0 e_0)))
(define set-first
  (lambda (s_0) (hash-iterate-key s_0 (hash-iterate-first s_0))))
(define subset? (lambda (s1_0 s2_0) (hash-keys-subset? s1_0 s2_0)))
(define set=?
  (lambda (s1_0 s2_0)
    (let ((or-part_0 (eq? s1_0 s2_0)))
      (if or-part_0
        or-part_0
        (if (let ((app_0 (hash-count s1_0))) (= app_0 (hash-count s2_0)))
          (hash-keys-subset? s1_0 s2_0)
          #f)))))
(define set-subtract
  (lambda (s1_0 s2_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (s1_1 i_0)
            (begin
              (if i_0
                (let ((k_0 (unsafe-immutable-hash-iterate-key s2_0 i_0)))
                  (let ((s1_2
                         (let ((s1_2 (hash-remove s1_1 k_0))) (values s1_2))))
                    (for-loop_0
                     s1_2
                     (unsafe-immutable-hash-iterate-next s2_0 i_0))))
                s1_1))))))
       (for-loop_0 s1_0 (unsafe-immutable-hash-iterate-first s2_0))))))
(define set-union
  (lambda (s1_0 s2_0)
    (if (let ((app_0 (begin-unsafe (hash-count s1_0))))
          (< app_0 (begin-unsafe (hash-count s2_0))))
      (set-union s2_0 s1_0)
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (s1_1 i_0)
              (begin
                (if i_0
                  (let ((k_0 (unsafe-immutable-hash-iterate-key s2_0 i_0)))
                    (let ((s1_2
                           (let ((s1_2 (hash-set s1_1 k_0 #t)))
                             (values s1_2))))
                      (for-loop_0
                       s1_2
                       (unsafe-immutable-hash-iterate-next s2_0 i_0))))
                  s1_1))))))
         (for-loop_0 s1_0 (unsafe-immutable-hash-iterate-first s2_0)))))))
(define set-intersect
  (lambda (s1_0 s2_0)
    (if (let ((app_0 (begin-unsafe (hash-count s1_0))))
          (< app_0 (begin-unsafe (hash-count s2_0))))
      (set-intersect s2_0 s1_0)
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (s_0 i_0)
              (begin
                (if i_0
                  (let ((k_0 (unsafe-immutable-hash-iterate-key s2_0 i_0)))
                    (let ((s_1
                           (let ((s_1
                                  (if (hash-ref s1_0 k_0 #f)
                                    s_0
                                    (hash-remove s_0 k_0))))
                             (values s_1))))
                      (for-loop_0
                       s_1
                       (unsafe-immutable-hash-iterate-next s2_0 i_0))))
                  s_0))))))
         (for-loop_0 s2_0 (unsafe-immutable-hash-iterate-first s2_0)))))))
(define set-partition
  (lambda (s_0 pred_0 empty-y-set_0 empty-n-set_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (y_0 n_0 i_0)
            (begin
              (if i_0
                (let ((v_0 (unsafe-immutable-hash-iterate-key s_0 i_0)))
                  (call-with-values
                   (lambda ()
                     (call-with-values
                      (lambda ()
                        (if (|#%app| pred_0 v_0)
                          (values (begin-unsafe (hash-set y_0 v_0 #t)) n_0)
                          (values y_0 (begin-unsafe (hash-set n_0 v_0 #t)))))
                      (case-lambda
                       ((y_1 n_1) (values y_1 n_1))
                       (args (raise-binding-result-arity-error 2 args)))))
                   (case-lambda
                    ((y_1 n_1)
                     (for-loop_0
                      y_1
                      n_1
                      (unsafe-immutable-hash-iterate-next s_0 i_0)))
                    (args (raise-binding-result-arity-error 2 args)))))
                (values y_0 n_0)))))))
       (for-loop_0
        empty-y-set_0
        empty-n-set_0
        (unsafe-immutable-hash-iterate-first s_0))))))
(define set->list
  (lambda (s_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 i_0)
             (begin
               (if i_0
                 (let ((k_0 (unsafe-immutable-hash-iterate-key s_0 i_0)))
                   (let ((fold-var_1 (cons k_0 fold-var_0)))
                     (let ((fold-var_2 (values fold-var_1)))
                       (for-loop_0
                        fold-var_2
                        (unsafe-immutable-hash-iterate-next s_0 i_0)))))
                 fold-var_0))))))
        (for-loop_0 null (unsafe-immutable-hash-iterate-first s_0)))))))
(define list->set
  (lambda (l_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (table_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((k_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((table_1
                           (let ((table_1
                                  (call-with-values
                                   (lambda () (values k_0 #t))
                                   (case-lambda
                                    ((key_0 val_0)
                                     (hash-set table_0 key_0 val_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))))
                             (values table_1))))
                      (for-loop_0 table_1 rest_0))))
                table_0))))))
       (for-loop_0 hash2725 l_0)))))
(define list->seteq
  (lambda (l_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (table_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((k_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((table_1
                           (let ((table_1
                                  (call-with-values
                                   (lambda () (values k_0 #t))
                                   (case-lambda
                                    ((key_0 val_0)
                                     (hash-set table_0 key_0 val_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))))
                             (values table_1))))
                      (for-loop_0 table_1 rest_0))))
                table_0))))))
       (for-loop_0 hash2610 l_0)))))
(define start-atomic (lambda () (unsafe-start-atomic)))
(define end-atomic (lambda () (unsafe-end-atomic)))
(define start-breakable-atomic (lambda () (unsafe-start-breakable-atomic)))
(define end-breakable-atomic (lambda () (unsafe-end-breakable-atomic)))
(define cell.1$11 (unsafe-make-place-local #f))
(define entered-err-string-handler
  (lambda (s_0 n_0)
    (call-as-nonatomic
     (lambda () (|#%app| (error-value->string-handler) s_0 n_0)))))
(define cell.2$5 (unsafe-make-place-local #f))
(define cell.3$2 (unsafe-make-place-local #f))
(define cell.4$2 (unsafe-make-place-local 0))
(define exited-key (gensym 'as-exit))
(define lock-tag (make-continuation-prompt-tag 'lock))
(define call-as-atomic
  (lambda (f_0)
    (begin
      (if (if (procedure? f_0) (procedure-arity-includes? f_0 0) #f)
        (void)
        (raise-type-error 'call-as-atomic "procedure (arity 0)" f_0))
      (if (eq? (unsafe-place-local-ref cell.1$11) (current-thread))
        (dynamic-wind
         (lambda ()
           (begin
             (begin-unsafe (unsafe-start-breakable-atomic))
             (unsafe-place-local-set!
              cell.4$2
              (add1 (unsafe-place-local-ref cell.4$2)))))
         f_0
         (lambda ()
           (begin
             (unsafe-place-local-set!
              cell.4$2
              (sub1 (unsafe-place-local-ref cell.4$2)))
             (begin-unsafe (unsafe-end-breakable-atomic)))))
        (with-continuation-mark*
         general
         exited-key
         #f
         (call-with-continuation-prompt
          (lambda ()
            (dynamic-wind
             (lambda ()
               (begin
                 (begin-unsafe (unsafe-start-breakable-atomic))
                 (unsafe-place-local-set! cell.1$11 (current-thread))))
             (lambda ()
               (begin
                 (unsafe-place-local-set! cell.2$5 (current-parameterization))
                 (unsafe-place-local-set!
                  cell.3$2
                  (current-break-parameterization))
                 (with-continuation-mark*
                  authentic
                  parameterization-key
                  (extend-parameterization
                   (continuation-mark-set-first #f parameterization-key)
                   error-value->string-handler
                   entered-err-string-handler)
                  (with-continuation-mark*
                   authentic
                   break-enabled-key
                   (make-thread-cell #f)
                   (begin
                     (check-for-break)
                     (call-with-exception-handler
                      (lambda (exn_0)
                        (if (continuation-mark-set-first #f exited-key)
                          exn_0
                          (abort-current-continuation
                           lock-tag
                           (lambda () (raise exn_0)))))
                      f_0))))))
             (lambda ()
               (begin
                 (unsafe-place-local-set! cell.1$11 #f)
                 (unsafe-place-local-set! cell.2$5 #f)
                 (unsafe-place-local-set! cell.3$2 #f)
                 (begin-unsafe (unsafe-end-breakable-atomic))))))
          lock-tag
          (lambda (t_0) (|#%app| t_0))))))))
(define call-as-nonatomic
  (lambda (f_0)
    (begin
      (if (if (procedure? f_0) (procedure-arity-includes? f_0 0) #f)
        (void)
        (raise-type-error 'call-as-nonatomic "procedure (arity 0)" f_0))
      (if (eq? (unsafe-place-local-ref cell.1$11) (current-thread))
        (void)
        (error 'call-as-nonatomic "not in atomic area for ~e" f_0))
      (let ((paramz_0 (unsafe-place-local-ref cell.2$5)))
        (let ((break-paramz_0 (unsafe-place-local-ref cell.3$2)))
          (let ((extra-depth_0 (unsafe-place-local-ref cell.4$2)))
            (with-continuation-mark*
             general
             exited-key
             #t
             (call-with-parameterization
              paramz_0
              (lambda ()
                (call-with-break-parameterization
                 break-paramz_0
                 (lambda ()
                   (dynamic-wind
                    (lambda ()
                      (begin
                        (unsafe-place-local-set! cell.1$11 #f)
                        (unsafe-place-local-set! cell.4$2 0)
                        (begin-unsafe (unsafe-end-breakable-atomic))
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0)
                              (begin
                                (if (zero? i_0)
                                  (void)
                                  (begin
                                    (begin-unsafe
                                     (unsafe-end-breakable-atomic))
                                    (loop_0 (sub1 i_0)))))))))
                         (loop_0 extra-depth_0))))
                    f_0
                    (lambda ()
                      (begin
                        (begin-unsafe (unsafe-start-breakable-atomic))
                        (unsafe-place-local-set! cell.2$5 paramz_0)
                        (unsafe-place-local-set! cell.3$2 break-paramz_0)
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0)
                              (begin
                                (if (zero? i_0)
                                  (void)
                                  (begin
                                    (begin-unsafe
                                     (unsafe-start-breakable-atomic))
                                    (loop_0 (sub1 i_0)))))))))
                         (loop_0 extra-depth_0))
                        (unsafe-place-local-set! cell.4$2 extra-depth_0)
                        (unsafe-place-local-set!
                         cell.1$11
                         (current-thread))))))))))))))))
(define check-fxvector
  (lambda (v_0)
    (if (fxvector? v_0)
      (void)
      (raise-argument-error 'in-fxvector* "fxvector" v_0))))
(define not-an-fX.1
  (|#%name|
   not-an-fX
   (lambda (who_0 v_0) (begin (raise-argument-error who_0 "fixnum?" v_0)))))
(define-values
 (prop:serialize serialize? serialize-ref)
 (make-struct-type-property 'serialize))
(define-values
 (prop:serialize-fill! serialize-fill!? serialize-fill!-ref)
 (make-struct-type-property 'serialize-fill!))
(define-values
 (prop:reach-scopes reach-scopes? reach-scopes-ref)
 (make-struct-type-property 'reach-scopes))
(define-values
 (prop:scope-with-bindings scope-with-bindings? scope-with-bindings-ref)
 (make-struct-type-property 'scope-with-bindings))
(define-values
 (prop:binding-reach-scopes binding-reach-scopes? binding-reach-scopes-ref)
 (make-struct-type-property 'binding-reach-scopes))
(define log-performance?
  (if (environment-variables-ref
       (current-environment-variables)
       #vu8(80 76 84 95 69 88 80 65 78 68 69 82 95 84 73 77 69 83))
    #t
    #f))
(define cell.1$10 (unsafe-make-place-local #f))
(define cell.2$4 (unsafe-make-place-local (make-hasheq)))
(define performance-place-init!
  (lambda () (unsafe-place-local-set! cell.2$4 (make-hasheq))))
(define finish_2439
  (make-struct-type-install-properties
   '(region)
   5
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'region))
(define struct:region
  (make-record-type-descriptor
   'region
   #f
   (|#%nongenerative-uid| region)
   #f
   #f
   '(5 . 30)))
(define effect_2980 (finish_2439 struct:region))
(define region1.1
  (|#%name|
   region
   (record-constructor
    (make-record-constructor-descriptor struct:region #f #f))))
(define region?_2430 (|#%name| region? (record-predicate struct:region)))
(define region?
  (|#%name|
   region?
   (lambda (v)
     (if (region?_2430 v)
       #t
       ($value
        (if (impersonator? v) (region?_2430 (impersonator-val v)) #f))))))
(define region-path_2994
  (|#%name| region-path (record-accessor struct:region 0)))
(define region-path
  (|#%name|
   region-path
   (lambda (s)
     (if (region?_2430 s)
       (region-path_2994 s)
       ($value (impersonate-ref region-path_2994 struct:region 0 s 'path))))))
(define region-start_2092
  (|#%name| region-start (record-accessor struct:region 1)))
(define region-start
  (|#%name|
   region-start
   (lambda (s)
     (if (region?_2430 s)
       (region-start_2092 s)
       ($value
        (impersonate-ref region-start_2092 struct:region 1 s 'start))))))
(define region-start-memory_2878
  (|#%name| region-start-memory (record-accessor struct:region 2)))
(define region-start-memory
  (|#%name|
   region-start-memory
   (lambda (s)
     (if (region?_2430 s)
       (region-start-memory_2878 s)
       ($value
        (impersonate-ref
         region-start-memory_2878
         struct:region
         2
         s
         'start-memory))))))
(define region-as-nested_2870
  (|#%name| region-as-nested (record-accessor struct:region 3)))
(define region-as-nested
  (|#%name|
   region-as-nested
   (lambda (s)
     (if (region?_2430 s)
       (region-as-nested_2870 s)
       ($value
        (impersonate-ref
         region-as-nested_2870
         struct:region
         3
         s
         'as-nested))))))
(define region-as-nested-memory_2442
  (|#%name| region-as-nested-memory (record-accessor struct:region 4)))
(define region-as-nested-memory
  (|#%name|
   region-as-nested-memory
   (lambda (s)
     (if (region?_2430 s)
       (region-as-nested-memory_2442 s)
       ($value
        (impersonate-ref
         region-as-nested-memory_2442
         struct:region
         4
         s
         'as-nested-memory))))))
(define set-region-start!_2321
  (|#%name| set-region-start! (record-mutator struct:region 1)))
(define set-region-start!
  (|#%name|
   set-region-start!
   (lambda (s v)
     (if (region?_2430 s)
       (set-region-start!_2321 s v)
       ($value
        (impersonate-set!
         set-region-start!_2321
         struct:region
         1
         1
         s
         v
         'start))))))
(define set-region-start-memory!_3209
  (|#%name| set-region-start-memory! (record-mutator struct:region 2)))
(define set-region-start-memory!
  (|#%name|
   set-region-start-memory!
   (lambda (s v)
     (if (region?_2430 s)
       (set-region-start-memory!_3209 s v)
       ($value
        (impersonate-set!
         set-region-start-memory!_3209
         struct:region
         2
         2
         s
         v
         'start-memory))))))
(define set-region-as-nested!_2510
  (|#%name| set-region-as-nested! (record-mutator struct:region 3)))
(define set-region-as-nested!
  (|#%name|
   set-region-as-nested!
   (lambda (s v)
     (if (region?_2430 s)
       (set-region-as-nested!_2510 s v)
       ($value
        (impersonate-set!
         set-region-as-nested!_2510
         struct:region
         3
         3
         s
         v
         'as-nested))))))
(define set-region-as-nested-memory!_2903
  (|#%name| set-region-as-nested-memory! (record-mutator struct:region 4)))
(define set-region-as-nested-memory!
  (|#%name|
   set-region-as-nested-memory!
   (lambda (s v)
     (if (region?_2430 s)
       (set-region-as-nested-memory!_2903 s v)
       ($value
        (impersonate-set!
         set-region-as-nested-memory!_2903
         struct:region
         4
         4
         s
         v
         'as-nested-memory))))))
(define finish_2300
  (make-struct-type-install-properties
   '(stat)
   3
   0
   #f
   null
   (current-inspector)
   #f
   '()
   #f
   'stat))
(define struct:stat
  (make-record-type-descriptor
   'stat
   #f
   (|#%nongenerative-uid| stat)
   #f
   #f
   '(3 . 7)))
(define effect_2500 (finish_2300 struct:stat))
(define stat2.1
  (|#%name|
   stat
   (record-constructor
    (make-record-constructor-descriptor struct:stat #f #f))))
(define stat?_2843 (|#%name| stat? (record-predicate struct:stat)))
(define stat?
  (|#%name|
   stat?
   (lambda (v)
     (if (stat?_2843 v)
       #t
       ($value (if (impersonator? v) (stat?_2843 (impersonator-val v)) #f))))))
(define stat-msecs_3052 (|#%name| stat-msecs (record-accessor struct:stat 0)))
(define stat-msecs
  (|#%name|
   stat-msecs
   (lambda (s)
     (if (stat?_2843 s)
       (stat-msecs_3052 s)
       ($value (impersonate-ref stat-msecs_3052 struct:stat 0 s 'msecs))))))
(define stat-memory_2120
  (|#%name| stat-memory (record-accessor struct:stat 1)))
(define stat-memory
  (|#%name|
   stat-memory
   (lambda (s)
     (if (stat?_2843 s)
       (stat-memory_2120 s)
       ($value (impersonate-ref stat-memory_2120 struct:stat 1 s 'memory))))))
(define stat-count_2033 (|#%name| stat-count (record-accessor struct:stat 2)))
(define stat-count
  (|#%name|
   stat-count
   (lambda (s)
     (if (stat?_2843 s)
       (stat-count_2033 s)
       ($value (impersonate-ref stat-count_2033 struct:stat 2 s 'count))))))
(define set-stat-msecs!_2321
  (|#%name| set-stat-msecs! (record-mutator struct:stat 0)))
(define set-stat-msecs!
  (|#%name|
   set-stat-msecs!
   (lambda (s v)
     (if (stat?_2843 s)
       (set-stat-msecs!_2321 s v)
       ($value
        (impersonate-set! set-stat-msecs!_2321 struct:stat 0 0 s v 'msecs))))))
(define set-stat-memory!_2358
  (|#%name| set-stat-memory! (record-mutator struct:stat 1)))
(define set-stat-memory!
  (|#%name|
   set-stat-memory!
   (lambda (s v)
     (if (stat?_2843 s)
       (set-stat-memory!_2358 s v)
       ($value
        (impersonate-set!
         set-stat-memory!_2358
         struct:stat
         1
         1
         s
         v
         'memory))))))
(define set-stat-count!_2436
  (|#%name| set-stat-count! (record-mutator struct:stat 2)))
(define set-stat-count!
  (|#%name|
   set-stat-count!
   (lambda (s v)
     (if (stat?_2843 s)
       (set-stat-count!_2436 s v)
       ($value
        (impersonate-set! set-stat-count!_2436 struct:stat 2 2 s v 'count))))))
(define stat-key (gensym))
(define start-performance-region
  (lambda path_0
    (unsafe-place-local-set!
     cell.1$10
     (let ((app_0
            (let ((app_0
                   (if (unsafe-place-local-ref cell.1$10)
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (path_1 enclosing-path_0)
                           (begin
                             (if (null? path_1)
                               null
                               (let ((app_0
                                      (if (if (eq? '_ (car path_1))
                                            (pair? enclosing-path_0)
                                            #f)
                                        (car enclosing-path_0)
                                        (car path_1))))
                                 (cons
                                  app_0
                                  (let ((app_1 (cdr path_1)))
                                    (loop_0
                                     app_1
                                     (if (pair? enclosing-path_0)
                                       (cdr enclosing-path_0)
                                       null)))))))))))
                      (loop_0
                       path_0
                       (region-path (car (unsafe-place-local-ref cell.1$10)))))
                     path_0)))
              (let ((app_1 (current-inexact-monotonic-milliseconds)))
                (region1.1
                 app_0
                 app_1
                 (current-memory-use 'cumulative)
                 0.0
                 0)))))
       (cons app_0 (unsafe-place-local-ref cell.1$10))))))
(define end-performance-region
  (lambda ()
    (let ((now_0 (current-inexact-monotonic-milliseconds)))
      (let ((now-memory_0 (current-memory-use 'cumulative)))
        (let ((r_0 (car (unsafe-place-local-ref cell.1$10))))
          (begin
            (unsafe-place-local-set!
             cell.1$10
             (cdr (unsafe-place-local-ref cell.1$10)))
            (let ((full-delta_0 (- now_0 (region-start r_0))))
              (let ((delta_0 (- full-delta_0 (region-as-nested r_0))))
                (let ((full-delta-memory_0
                       (- now-memory_0 (region-start-memory r_0))))
                  (let ((delta-memory_0
                         (-
                          full-delta-memory_0
                          (region-as-nested-memory r_0))))
                    (begin
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (accums_0 path_0)
                            (begin
                              (let ((key_0 (car path_0)))
                                (let ((accum_0
                                       (let ((or-part_0
                                              (hash-ref accums_0 key_0 #f)))
                                         (if or-part_0
                                           or-part_0
                                           (let ((accum_0 (make-hasheq)))
                                             (begin
                                               (hash-set!
                                                accums_0
                                                key_0
                                                accum_0)
                                               accum_0))))))
                                  (let ((s_0
                                         (let ((or-part_0
                                                (hash-ref
                                                 accum_0
                                                 stat-key
                                                 #f)))
                                           (if or-part_0
                                             or-part_0
                                             (let ((s_0 (stat2.1 0.0 0 0)))
                                               (begin
                                                 (hash-set!
                                                  accum_0
                                                  stat-key
                                                  s_0)
                                                 s_0))))))
                                    (begin
                                      (set-stat-msecs!
                                       s_0
                                       (+ delta_0 (stat-msecs s_0)))
                                      (set-stat-memory!
                                       s_0
                                       (+ delta-memory_0 (stat-memory s_0)))
                                      (if (null? (cdr path_0))
                                        (set-stat-count!
                                         s_0
                                         (add1 (stat-count s_0)))
                                        (void))
                                      (if (null? (cdr path_0))
                                        (void)
                                        (loop_0 accum_0 (cdr path_0))))))))))))
                       (loop_0
                        (unsafe-place-local-ref cell.2$4)
                        (region-path r_0)))
                      (if (unsafe-place-local-ref cell.1$10)
                        (begin
                          (let ((app_0
                                 (car (unsafe-place-local-ref cell.1$10))))
                            (set-region-as-nested!
                             app_0
                             (+
                              (region-as-nested
                               (car (unsafe-place-local-ref cell.1$10)))
                              full-delta_0)))
                          (let ((app_0
                                 (car (unsafe-place-local-ref cell.1$10))))
                            (set-region-as-nested-memory!
                             app_0
                             (+
                              (region-as-nested-memory
                               (car (unsafe-place-local-ref cell.1$10)))
                              full-delta-memory_0))))
                        (void)))))))))))))
(define effect_2814
  (begin
    (|#%call-with-values|
     (lambda ()
       (if log-performance?
         (void
          (plumber-add-flush!
           (current-plumber)
           (lambda (h_0)
             (let ((whole-len_0
                    (|#%name|
                     whole-len
                     (lambda (s_0)
                       (begin
                         (caar
                          (let ((or-part_0
                                 (regexp-match-positions rx2668 s_0)))
                            (if or-part_0 or-part_0 '(0)))))))))
               (let ((kb_0
                      (|#%name|
                       kb
                       (lambda (b_0)
                         (begin
                           (let ((s_0 (number->string (quotient b_0 1024))))
                             (list->string
                              (let ((lst_0 (reverse$1 (string->list s_0))))
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (l_0 lst_1 pos_0)
                                        (begin
                                          (if (if (pair? lst_1) #t #f)
                                            (let ((c_0 (unsafe-car lst_1)))
                                              (let ((rest_0
                                                     (unsafe-cdr lst_1)))
                                                (let ((l_1
                                                       (let ((l_1
                                                              (if (if (positive?
                                                                       pos_0)
                                                                    (zero?
                                                                     (modulo
                                                                      pos_0
                                                                      3))
                                                                    #f)
                                                                (list*
                                                                 c_0
                                                                 '#\x2c
                                                                 l_0)
                                                                (cons
                                                                 c_0
                                                                 l_0))))
                                                         (values l_1))))
                                                  (for-loop_0
                                                   l_1
                                                   rest_0
                                                   (+ pos_0 1)))))
                                            l_0))))))
                                   (for-loop_0 null lst_0 0)))))))))))
                 (call-with-values
                  (lambda ()
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (accums_0
                                 label-len_0
                                 value-len_0
                                 memory-len_0
                                 count-len_0
                                 indent_0)
                          (begin
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (label-len_1
                                           value-len_1
                                           memory-len_1
                                           count-len_1
                                           i_0)
                                    (begin
                                      (if i_0
                                        (call-with-values
                                         (lambda ()
                                           (hash-iterate-key+value
                                            accums_0
                                            i_0))
                                         (case-lambda
                                          ((k_0 v_0)
                                           (call-with-values
                                            (lambda ()
                                              (call-with-values
                                               (lambda ()
                                                 (if (eq? k_0 stat-key)
                                                   (let ((app_0
                                                          (max
                                                           value-len_1
                                                           (whole-len_0
                                                            (format
                                                             "~a"
                                                             (stat-msecs
                                                              v_0))))))
                                                     (let ((app_1
                                                            (max
                                                             memory-len_1
                                                             (string-length
                                                              (format
                                                               "~a"
                                                               (kb_0
                                                                (stat-memory
                                                                 v_0)))))))
                                                       (values
                                                        label-len_1
                                                        app_0
                                                        app_1
                                                        (max
                                                         count-len_1
                                                         (string-length
                                                          (format
                                                           "~a"
                                                           (stat-count
                                                            v_0)))))))
                                                   (let ((app_0
                                                          (max
                                                           label-len_1
                                                           (+
                                                            indent_0
                                                            (string-length
                                                             (format
                                                              "~a"
                                                              k_0))))))
                                                     (loop_0
                                                      v_0
                                                      app_0
                                                      value-len_1
                                                      memory-len_1
                                                      count-len_1
                                                      (+ 2 indent_0)))))
                                               (case-lambda
                                                ((label-len_2
                                                  value-len_2
                                                  memory-len_2
                                                  count-len_2)
                                                 (values
                                                  label-len_2
                                                  value-len_2
                                                  memory-len_2
                                                  count-len_2))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  4
                                                  args)))))
                                            (case-lambda
                                             ((label-len_2
                                               value-len_2
                                               memory-len_2
                                               count-len_2)
                                              (for-loop_0
                                               label-len_2
                                               value-len_2
                                               memory-len_2
                                               count-len_2
                                               (hash-iterate-next
                                                accums_0
                                                i_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               4
                                               args)))))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        (values
                                         label-len_1
                                         value-len_1
                                         memory-len_1
                                         count-len_1)))))))
                               (for-loop_0
                                label-len_0
                                value-len_0
                                memory-len_0
                                count-len_0
                                (hash-iterate-first accums_0)))))))))
                     (loop_0 (unsafe-place-local-ref cell.2$4) 6 5 4 5 2)))
                  (case-lambda
                   ((label-max-len_0
                     value-max-len_0
                     memory-max-len_0
                     count-max-len_0)
                    (begin
                      (let ((l_0 (current-logger)))
                        (if (log-level? l_0 'error (logger-name l_0))
                          (let ((app_0
                                 (let ((app_0
                                        (make-string
                                         (-
                                          (+ label-max-len_0 value-max-len_0)
                                          11)
                                         '#\x20)))
                                   (let ((app_1
                                          (make-string
                                           (- memory-max-len_0 4)
                                           '#\x20)))
                                     (format
                                      "REGION      ~aMSECS   ~aMEMK   ~aCOUNT"
                                      app_0
                                      app_1
                                      (make-string
                                       (- count-max-len_0 5)
                                       '#\x20))))))
                            (log-message
                             l_0
                             'error
                             app_0
                             (current-continuation-marks)))
                          (void)))
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (name_0 accums_0 indent_0 newline?_0)
                            (begin
                              (begin
                                (if name_0
                                  (let ((v_0 (hash-ref accums_0 stat-key)))
                                    (let ((l_0 (current-logger)))
                                      (if (log-level?
                                           l_0
                                           'error
                                           (logger-name l_0))
                                        (let ((app_0
                                               (let ((app_0
                                                      (make-string
                                                       (let ((app_0
                                                              (let ((app_0
                                                                     (string-length
                                                                      (format
                                                                       "~a"
                                                                       name_0))))
                                                                (-
                                                                 label-max-len_0
                                                                 app_0
                                                                 (string-length
                                                                  indent_0)))))
                                                         (+
                                                          app_0
                                                          (-
                                                           value-max-len_0
                                                           (whole-len_0
                                                            (format
                                                             "~a"
                                                             (stat-msecs
                                                              v_0))))))
                                                       '#\x20)))
                                                 (let ((app_1
                                                        (regexp-replace
                                                         rx2640
                                                         (format
                                                          "~a00"
                                                          (stat-msecs v_0))
                                                         ".\\1")))
                                                   (let ((app_2
                                                          (make-string
                                                           (-
                                                            memory-max-len_0
                                                            (string-length
                                                             (format
                                                              "~a"
                                                              (kb_0
                                                               (stat-memory
                                                                v_0)))))
                                                           '#\x20)))
                                                     (let ((app_3
                                                            (kb_0
                                                             (stat-memory
                                                              v_0))))
                                                       (let ((app_4
                                                              (make-string
                                                               (-
                                                                count-max-len_0
                                                                (string-length
                                                                 (format
                                                                  "~a"
                                                                  (stat-count
                                                                   v_0))))
                                                               '#\x20)))
                                                         (format
                                                          "~a~a   ~a~a   ~a~a   ~a~a"
                                                          indent_0
                                                          name_0
                                                          app_0
                                                          app_1
                                                          app_2
                                                          app_3
                                                          app_4
                                                          (stat-count
                                                           v_0)))))))))
                                          (log-message
                                           l_0
                                           'error
                                           app_0
                                           (current-continuation-marks)))
                                        (void))))
                                  (void))
                                (let ((keys_0
                                       (let ((temp5_0
                                              (reverse$1
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (fold-var_0 i_0)
                                                       (begin
                                                         (if i_0
                                                           (let ((k_0
                                                                  (hash-iterate-key
                                                                   accums_0
                                                                   i_0)))
                                                             (let ((fold-var_1
                                                                    (if (not
                                                                         (eq?
                                                                          k_0
                                                                          stat-key))
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              k_0
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))
                                                                      fold-var_0)))
                                                               (for-loop_0
                                                                fold-var_1
                                                                (hash-iterate-next
                                                                 accums_0
                                                                 i_0))))
                                                           fold-var_0))))))
                                                  (for-loop_0
                                                   null
                                                   (hash-iterate-first
                                                    accums_0)))))))
                                         (let ((temp7_0
                                                (lambda (key_0)
                                                  (stat-msecs
                                                   (hash-ref
                                                    (hash-ref accums_0 key_0)
                                                    stat-key)))))
                                           (let ((temp5_1 temp5_0))
                                             (sort.1 #f temp7_0 temp5_1 >))))))
                                  (begin
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (lst_0 pos_0)
                                            (begin
                                              (if (if (pair? lst_0) #t #f)
                                                (let ((k_0 (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (begin
                                                      (begin
                                                        (if (if newline?_0
                                                              (positive? pos_0)
                                                              #f)
                                                          (let ((l_0
                                                                 (current-logger)))
                                                            (if (log-level?
                                                                 l_0
                                                                 'error
                                                                 (logger-name
                                                                  l_0))
                                                              (log-message
                                                               l_0
                                                               'error
                                                               ""
                                                               (current-continuation-marks))
                                                              (void)))
                                                          (void))
                                                        (let ((app_0
                                                               (hash-ref
                                                                accums_0
                                                                k_0)))
                                                          (loop_0
                                                           k_0
                                                           app_0
                                                           (string-append
                                                            indent_0
                                                            "  ")
                                                           #f)))
                                                      (for-loop_0
                                                       rest_0
                                                       (+ pos_0 1)))))
                                                (values)))))))
                                       (for-loop_0 keys_0 0)))
                                    (void)))))))))
                       (loop_0 #f (unsafe-place-local-ref cell.2$4) "" #t))))
                   (args (raise-binding-result-arity-error 4 args)))))))))
         (void)))
     print-values)
    (void)))
(define 1/module-path?
  (|#%name|
   module-path?
   (lambda (v_0)
     (begin
       (let ((or-part_0
              (if (pair? v_0)
                (if (eq? (car v_0) 'submod) (submodule-module-path? v_0) #f)
                #f)))
         (if or-part_0 or-part_0 (root-module-path? v_0)))))))
(define root-module-path?
  (lambda (v_0)
    (let ((or-part_0 (path? v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (if (string? v_0) (string-module-path? v_0) #f)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (if (symbol? v_0) (symbol-module-path? v_0) #f)))
              (if or-part_2
                or-part_2
                (if (pair? v_0)
                  (let ((tmp_0 (car v_0)))
                    (if (eq? tmp_0 'quote)
                      (if (pair? (cdr v_0))
                        (if (symbol? (cadr v_0)) (null? (cddr v_0)) #f)
                        #f)
                      (if (eq? tmp_0 'lib)
                        (lib-module-path? v_0)
                        (if (eq? tmp_0 'file)
                          (if (pair? (cdr v_0))
                            (if (string? (cadr v_0))
                              (if (path-string? (cadr v_0))
                                (null? (cddr v_0))
                                #f)
                              #f)
                            #f)
                          (if (eq? tmp_0 'planet)
                            (planet-module-path? v_0)
                            #f)))))
                  #f)))))))))
(define submodule-module-path?
  (lambda (v_0)
    (if (pair? (cdr v_0))
      (if (list? v_0)
        (if (let ((or-part_0 (equal? (cadr v_0) "..")))
              (if or-part_0
                or-part_0
                (let ((or-part_1 (equal? (cadr v_0) ".")))
                  (if or-part_1 or-part_1 (root-module-path? (cadr v_0))))))
          (let ((lst_0 (cddr v_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (result_0 lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((e_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (let ((result_1
                                   (let ((result_1
                                          (let ((or-part_0 (equal? e_0 "..")))
                                            (if or-part_0
                                              or-part_0
                                              (symbol? e_0)))))
                                     (values result_1))))
                              (if (if (not
                                       (let ((x_0 (list e_0))) (not result_1)))
                                    #t
                                    #f)
                                (for-loop_0 result_1 rest_0)
                                result_1))))
                        result_0))))))
               (for-loop_0 #t lst_0))))
          #f)
        #f)
      #f)))
(define string-module-path?
  (lambda (v_0) (module-path-string?.1 #t #t #f #t v_0)))
(define symbol-module-path?
  (lambda (v_0)
    (let ((temp15_0 (symbol->string v_0)))
      (module-path-string?.1 #f #f #f #f temp15_0))))
(define lib-module-path?
  (lambda (v_0)
    (if (list? v_0)
      (if (pair? (cdr v_0))
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (v_1 first?_0)
              (begin
                (let ((or-part_0 (null? v_1)))
                  (if or-part_0
                    or-part_0
                    (if (string? (car v_1))
                      (if (let ((temp16_0 (car v_1)))
                            (module-path-string?.1
                             #f
                             first?_0
                             #f
                             first?_0
                             temp16_0))
                        (loop_0 (cdr v_1) #f)
                        #f)
                      #f))))))))
         (loop_0 (cdr v_0) #t))
        #f)
      #f)))
(define planet-module-path?
  (lambda (v_0)
    (if (list? v_0)
      (let ((tmp_0 (length v_0)))
        (if (eq? tmp_0 1)
          #f
          (if (eq? tmp_0 2)
            (let ((e_0 (cadr v_0)))
              (if (string? e_0)
                (module-path-string?.1 #f #t #t #f e_0)
                (if (symbol? e_0)
                  (let ((temp22_0 (symbol->string e_0)))
                    (module-path-string?.1 #f #f #t #f temp22_0))
                  #f)))
            (let ((file_0 (cadr v_0)))
              (let ((pkg_0 (caddr v_0)))
                (let ((subs_0 (cdddr v_0)))
                  (if file_0
                    (if (module-path-string?.1 #f #t #f #t file_0)
                      (if (if (list? pkg_0)
                            (if (<= 2 (length pkg_0) 4)
                              (if (planet-user/pkg-string? (car pkg_0))
                                (if (planet-user/pkg-string? (cadr pkg_0))
                                  (let ((or-part_0 (null? (cddr pkg_0))))
                                    (if or-part_0
                                      or-part_0
                                      (let ((or-part_1
                                             (let ((v_1 (caddr pkg_0)))
                                               (begin-unsafe
                                                (exact-nonnegative-integer?
                                                 v_1)))))
                                        (if or-part_1
                                          or-part_1
                                          (let ((or-part_2
                                                 (null? (cddr pkg_0))))
                                            (if or-part_2
                                              or-part_2
                                              (planet-version-minor-spec?
                                               (cadddr pkg_0))))))))
                                  #f)
                                #f)
                              #f)
                            #f)
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (result_0 lst_0)
                                (begin
                                  (if (pair? lst_0)
                                    (let ((sub_0 (unsafe-car lst_0)))
                                      (let ((rest_0 (unsafe-cdr lst_0)))
                                        (let ((result_1
                                               (let ((result_1
                                                      (module-path-string?.1
                                                       #f
                                                       #f
                                                       #f
                                                       #f
                                                       sub_0)))
                                                 (values result_1))))
                                          (if (if (not
                                                   (let ((x_0 (list sub_0)))
                                                     (not result_1)))
                                                #t
                                                #f)
                                            (for-loop_0 result_1 rest_0)
                                            result_1))))
                                    result_0))))))
                           (for-loop_0 #t subs_0)))
                        #f)
                      #f)
                    #f)))))))
      #f)))
(define planet-version-number? (lambda (v_0) (exact-nonnegative-integer? v_0)))
(define planet-version-minor-spec?
  (lambda (v_0)
    (let ((or-part_0 (begin-unsafe (exact-nonnegative-integer? v_0))))
      (if or-part_0
        or-part_0
        (if (pair? v_0)
          (if (list? v_0)
            (if (= 2 (length v_0))
              (let ((tmp_0 (car v_0)))
                (if (if (eq? tmp_0 '=)
                      #t
                      (if (eq? tmp_0 '+) #t (eq? tmp_0 '-)))
                  (let ((v_1 (cadr v_0)))
                    (begin-unsafe (exact-nonnegative-integer? v_1)))
                  (if (let ((v_1 (car v_0)))
                        (begin-unsafe (exact-nonnegative-integer? v_1)))
                    (let ((v_1 (cadr v_0)))
                      (begin-unsafe (exact-nonnegative-integer? v_1)))
                    #f)))
              #f)
            #f)
          #f)))))
(define module-path-string?.1
  (|#%name|
   module-path-string?
   (lambda (dots-dir-ok?2_0
            file-end-ok?4_0
            for-planet?1_0
            just-file-ok?3_0
            v9_0)
     (begin
       (let ((len_0 (string-length v9_0)))
         (if (positive? len_0)
           (if (not (char=? '#\x2f (string-ref v9_0 0)))
             (if (not (char=? '#\x2f (string-ref v9_0 (sub1 len_0))))
               (call-with-values
                (lambda ()
                  (if for-planet?1_0
                    (check-planet-part v9_0 len_0)
                    (values 0 0)))
                (case-lambda
                 ((start-package-version-pos_0 end-package-version-pos_0)
                  (if start-package-version-pos_0
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 prev-was-slash?_0 saw-slash?_0 saw-dot?_0)
                          (begin
                            (if (not (negative? i_0))
                              (let ((c_0 (string-ref v9_0 i_0)))
                                (if (char=? c_0 '#\x2f)
                                  (if (not prev-was-slash?_0)
                                    (loop_0 (sub1 i_0) #t #t saw-dot?_0)
                                    #f)
                                  (if (char=? c_0 '#\x2e)
                                    (if (if (< (add1 i_0) len_0)
                                          (if (not
                                               (char=?
                                                (string-ref v9_0 (add1 i_0))
                                                '#\x2f))
                                            (not
                                             (char=?
                                              (string-ref v9_0 (add1 i_0))
                                              '#\x2e))
                                            #f)
                                          #f)
                                      (if (not saw-slash?_0)
                                        (loop_0 (sub1 i_0) #f saw-slash?_0 #t)
                                        #f)
                                      (loop_0
                                       (sub1 i_0)
                                       #f
                                       saw-slash?_0
                                       saw-dot?_0))
                                    (if (let ((or-part_0 (plain-char? c_0)))
                                          (if or-part_0
                                            or-part_0
                                            (if (char=? c_0 '#\x25)
                                              (if (< (+ i_0 2) len_0)
                                                (hex-sequence? v9_0 (add1 i_0))
                                                #f)
                                              #f)))
                                      (loop_0
                                       (sub1 i_0)
                                       #f
                                       saw-slash?_0
                                       saw-dot?_0)
                                      (if (if (>=
                                               i_0
                                               start-package-version-pos_0)
                                            (< i_0 end-package-version-pos_0)
                                            #f)
                                        (loop_0
                                         (sub1 i_0)
                                         #f
                                         saw-slash?_0
                                         saw-dot?_0)
                                        #f)))))
                              (if (not
                                   (if (not just-file-ok?3_0)
                                     (if saw-dot?_0 (not saw-slash?_0) #f)
                                     #f))
                                (if dots-dir-ok?2_0
                                  dots-dir-ok?2_0
                                  (letrec*
                                   ((loop_1
                                     (|#%name|
                                      loop
                                      (lambda (i_1)
                                        (begin
                                          (if (= i_1 len_0)
                                            #t
                                            (if (char=?
                                                 (string-ref v9_0 i_1)
                                                 '#\x2e)
                                              (if (not
                                                   (let ((or-part_0
                                                          (=
                                                           len_0
                                                           (add1 i_1))))
                                                     (if or-part_0
                                                       or-part_0
                                                       (char=?
                                                        (string-ref
                                                         v9_0
                                                         (add1 i_1))
                                                        '#\x2f))))
                                                (if (not
                                                     (if (char=?
                                                          (string-ref
                                                           v9_0
                                                           (add1 i_1))
                                                          '#\x2e)
                                                       (let ((or-part_0
                                                              (=
                                                               len_0
                                                               (+ i_1 2))))
                                                         (if or-part_0
                                                           or-part_0
                                                           (char=?
                                                            (string-ref
                                                             v9_0
                                                             (+ i_1 2))
                                                            '#\x2f)))
                                                       #f))
                                                  (loop_1
                                                   (letrec*
                                                    ((loop_2
                                                      (|#%name|
                                                       loop
                                                       (lambda (i_2)
                                                         (begin
                                                           (if (char=?
                                                                '#\x2e
                                                                (string-ref
                                                                 v9_0
                                                                 i_2))
                                                             (loop_2
                                                              (add1 i_2))
                                                             i_2))))))
                                                    (loop_2 i_1)))
                                                  #f)
                                                #f)
                                              (loop_1 (add1 i_1)))))))))
                                   (loop_1 0)))
                                #f)))))))
                     (loop_0 (sub1 len_0) #f (not file-end-ok?4_0) #f))
                    #f))
                 (args (raise-binding-result-arity-error 2 args))))
               #f)
             #f)
           #f))))))
(define planet-user/pkg-string?
  (lambda (v_0)
    (if (string? v_0)
      (let ((len_0 (string-length v_0)))
        (if (positive? len_0)
          (call-with-values
           (lambda ()
             (begin
               (check-string v_0)
               (values v_0 (unsafe-string-length v_0))))
           (case-lambda
            ((vec_0 len_1)
             (let ((start_0 0))
               (let ((vec_1 vec_0) (len_2 len_1))
                 (begin
                   #f
                   (void)
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (result_0 pos_0 pos_1)
                         (begin
                           (if (if (unsafe-fx< pos_0 len_2) #t #f)
                             (let ((c_0 (string-ref vec_1 pos_0)))
                               (let ((result_1
                                      (let ((result_1
                                             (let ((or-part_0
                                                    (plain-char? c_0)))
                                               (if or-part_0
                                                 or-part_0
                                                 (let ((or-part_1
                                                        (char=? '#\x2e c_0)))
                                                   (if or-part_1
                                                     or-part_1
                                                     (if (char=? '#\x25 c_0)
                                                       (if (<
                                                            pos_1
                                                            (- len_0 2))
                                                         (hex-sequence?
                                                          v_0
                                                          (add1 pos_1))
                                                         #f)
                                                       #f)))))))
                                        (values result_1))))
                                 (if (if (not
                                          (let ((x_0 (list c_0)))
                                            (not result_1)))
                                       (if (not
                                            (let ((x_0 (list pos_1)))
                                              (not result_1)))
                                         #t
                                         #f)
                                       #f)
                                   (for-loop_0
                                    result_1
                                    (unsafe-fx+ 1 pos_0)
                                    (+ pos_1 1))
                                   result_1)))
                             result_0))))))
                    (for-loop_0 #t 0 start_0))))))
            (args (raise-binding-result-arity-error 2 args))))
          #f))
      #f)))
(define plain-char?
  (lambda (c_0)
    (let ((or-part_0 (char<=? '#\x61 c_0 '#\x7a)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (char<=? '#\x41 c_0 '#\x5a)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (char<=? '#\x30 c_0 '#\x39)))
              (if or-part_2
                or-part_2
                (let ((or-part_3 (char=? '#\x2d c_0)))
                  (if or-part_3
                    or-part_3
                    (let ((or-part_4 (char=? '#\x5f c_0)))
                      (if or-part_4 or-part_4 (char=? '#\x2b c_0)))))))))))))
(define hex-sequence?
  (lambda (s_0 i_0)
    (let ((c1_0 (string-ref s_0 i_0)))
      (let ((c2_0 (string-ref s_0 (add1 i_0))))
        (if (hex-char? c1_0)
          (if (hex-char? c2_0)
            (let ((c_0
                   (integer->char
                    (let ((app_0 (* (hex-char->integer c1_0) 16)))
                      (+ app_0 (hex-char->integer c2_0))))))
              (not (plain-char? c_0)))
            #f)
          #f)))))
(define hex-char?
  (lambda (c_0)
    (let ((or-part_0 (char<=? '#\x61 c_0 '#\x66)))
      (if or-part_0 or-part_0 (char<=? '#\x30 c_0 '#\x39)))))
(define hex-char->integer
  (lambda (c_0)
    (if (char<=? '#\x61 c_0 '#\x66)
      (- (char->integer c_0) 107)
      (if (char<=? '#\x41 c_0 '#\x46)
        (- (char->integer c_0) 75)
        (- (char->integer c_0) 48)))))
(define check-planet-part
  (lambda (v_0 len_0)
    (call-with-values
     (lambda ()
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (j_0
                    start-package-version-pos_0
                    end-package-version-pos_0
                    colon1-pos_0
                    colon2-pos_0)
             (begin
               (if (= j_0 len_0)
                 (values
                  start-package-version-pos_0
                  (if end-package-version-pos_0 end-package-version-pos_0 j_0)
                  colon1-pos_0
                  colon2-pos_0)
                 (let ((tmp_0 (string-ref v_0 j_0)))
                   (if (eqv? tmp_0 '#\x2f)
                     (let ((app_0 (add1 j_0)))
                       (loop_0
                        app_0
                        (if start-package-version-pos_0
                          start-package-version-pos_0
                          (add1 j_0))
                        (if start-package-version-pos_0
                          (if end-package-version-pos_0
                            end-package-version-pos_0
                            j_0)
                          #f)
                        colon1-pos_0
                        colon2-pos_0))
                     (if (eqv? tmp_0 '#\x3a)
                       (if colon2-pos_0
                         (values #f #f #f #f)
                         (if colon1-pos_0
                           (loop_0
                            (add1 j_0)
                            start-package-version-pos_0
                            end-package-version-pos_0
                            colon1-pos_0
                            j_0)
                           (loop_0
                            (add1 j_0)
                            start-package-version-pos_0
                            end-package-version-pos_0
                            j_0
                            #f)))
                       (loop_0
                        (add1 j_0)
                        start-package-version-pos_0
                        end-package-version-pos_0
                        colon1-pos_0
                        colon2-pos_0))))))))))
        (loop_0 0 #f #f #f #f)))
     (case-lambda
      ((start-package-version-pos_0
        end-package-version-pos_0
        colon1-pos_0
        colon2-pos_0)
       (if (if start-package-version-pos_0
             (if (> end-package-version-pos_0 start-package-version-pos_0)
               (let ((or-part_0 (not colon2-pos_0)))
                 (if or-part_0
                   or-part_0
                   (< (add1 colon2-pos_0) end-package-version-pos_0)))
               #f)
             #f)
         (if colon1-pos_0
           (let ((colon1-end_0
                  (if colon2-pos_0 colon2-pos_0 end-package-version-pos_0)))
             (if (if (integer-sequence? v_0 (add1 colon1-pos_0) colon1-end_0)
                   (let ((or-part_0 (not colon2-pos_0)))
                     (if or-part_0
                       or-part_0
                       (let ((tmp_0 (string-ref v_0 (add1 colon2-pos_0))))
                         (if (eqv? tmp_0 '#\x3d)
                           (integer-sequence?
                            v_0
                            (+ 2 colon2-pos_0)
                            end-package-version-pos_0)
                           (if (if (eqv? tmp_0 '#\x3e) #t (eqv? tmp_0 '#\x3c))
                             (if (if (<
                                      (+ 2 colon2-pos_0)
                                      end-package-version-pos_0)
                                   (char=?
                                    '#\x3d
                                    (string-ref v_0 (+ colon2-pos_0 2)))
                                   #f)
                               (integer-sequence?
                                v_0
                                (+ 3 colon2-pos_0)
                                end-package-version-pos_0)
                               (integer-sequence?
                                v_0
                                (+ 2 colon2-pos_0)
                                end-package-version-pos_0))
                             (integer-range-sequence?
                              v_0
                              (add1 colon2-pos_0)
                              end-package-version-pos_0))))))
                   #f)
               (values colon1-pos_0 end-package-version-pos_0)
               (values #f #f)))
           (values 0 0))
         (values #f #f)))
      (args (raise-binding-result-arity-error 4 args))))))
(define integer-sequence?
  (lambda (s_0 start_0 end_0)
    (if (< start_0 end_0)
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (result_0 pos_0)
              (begin
                (if (< pos_0 end_0)
                  (let ((result_1
                         (let ((result_1
                                (char<=?
                                 '#\x30
                                 (string-ref s_0 pos_0)
                                 '#\x39)))
                           (values result_1))))
                    (if (if (not (let ((x_0 (list pos_0))) (not result_1)))
                          #t
                          #f)
                      (for-loop_0 result_1 (+ pos_0 1))
                      result_1))
                  result_0))))))
         (for-loop_0 #t start_0)))
      #f)))
(define integer-range-sequence?
  (lambda (s_0 start_0 end_0)
    (if (< start_0 end_0)
      (if (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (result_0 pos_0)
                  (begin
                    (if (< pos_0 end_0)
                      (let ((result_1
                             (let ((result_1
                                    (let ((c_0 (string-ref s_0 pos_0)))
                                      (let ((or-part_0 (char=? c_0 '#\x2d)))
                                        (if or-part_0
                                          or-part_0
                                          (char<=? '#\x30 c_0 '#\x39))))))
                               (values result_1))))
                        (if (if (not (let ((x_0 (list pos_0))) (not result_1)))
                              #t
                              #f)
                          (for-loop_0 result_1 (+ pos_0 1))
                          result_1))
                      result_0))))))
             (for-loop_0 #t start_0)))
        (>=
         1
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (result_0 pos_0)
                 (begin
                   (if (< pos_0 end_0)
                     (let ((result_1
                            (let ((result_1
                                   (+
                                    result_0
                                    (if (char=? (string-ref s_0 pos_0) '#\x2d)
                                      1
                                      0))))
                              (values result_1))))
                       (for-loop_0 result_1 (+ pos_0 1)))
                     result_0))))))
            (for-loop_0 0 start_0))))
        #f)
      #f)))
(define finish_2792
  (make-struct-type-install-properties
   '(weak-intern-table)
   1
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'weak-intern-table))
(define struct:weak-intern-table
  (make-record-type-descriptor
   'weak-intern-table
   #f
   (|#%nongenerative-uid| weak-intern-table)
   #f
   #f
   '(1 . 0)))
(define effect_2507 (finish_2792 struct:weak-intern-table))
(define weak-intern-table1.1
  (|#%name|
   weak-intern-table
   (record-constructor
    (make-record-constructor-descriptor struct:weak-intern-table #f #f))))
(define weak-intern-table?
  (|#%name| weak-intern-table? (record-predicate struct:weak-intern-table)))
(define weak-intern-table-box
  (|#%name|
   weak-intern-table-box
   (record-accessor struct:weak-intern-table 0)))
(define finish_2969
  (make-struct-type-install-properties
   '(table)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'table))
(define struct:table
  (make-record-type-descriptor
   'table
   #f
   (|#%nongenerative-uid| table)
   #f
   #f
   '(3 . 0)))
(define effect_2522 (finish_2969 struct:table))
(define table2.1
  (|#%name|
   table
   (record-constructor
    (make-record-constructor-descriptor struct:table #f #f))))
(define table? (|#%name| table? (record-predicate struct:table)))
(define table-ht (|#%name| table-ht (record-accessor struct:table 0)))
(define table-count (|#%name| table-count (record-accessor struct:table 1)))
(define table-prune-at
  (|#%name| table-prune-at (record-accessor struct:table 2)))
(define make-weak-intern-table
  (lambda () (weak-intern-table1.1 (box (table2.1 (hasheqv) 0 128)))))
(define weak-intern!
  (lambda (tt_0 v_0)
    (let ((b_0 (weak-intern-table-box tt_0)))
      (let ((t_0 (unbox b_0)))
        (let ((code_0 (equal-hash-code v_0)))
          (let ((vals_0 (hash-ref (table-ht t_0) code_0 null)))
            (let ((or-part_0
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (result_0 lst_0)
                           (begin
                             (if (pair? lst_0)
                               (let ((b_1 (unsafe-car lst_0)))
                                 (let ((rest_0 (unsafe-cdr lst_0)))
                                   (let ((result_1
                                          (let ((result_1
                                                 (let ((bv_0
                                                        (weak-box-value b_1)))
                                                   (if (equal? bv_0 v_0)
                                                     bv_0
                                                     #f))))
                                            (values result_1))))
                                     (if (if (not
                                              (let ((x_0 (list b_1)))
                                                result_1))
                                           #t
                                           #f)
                                       (for-loop_0 result_1 rest_0)
                                       result_1))))
                               result_0))))))
                      (for-loop_0 #f vals_0)))))
              (if or-part_0
                or-part_0
                (let ((pruned-t_0
                       (if (= (table-count t_0) (table-prune-at t_0))
                         (prune-table t_0)
                         t_0)))
                  (let ((ht_0 (table-ht pruned-t_0)))
                    (let ((new-t_0
                           (let ((app_0
                                  (hash-set
                                   ht_0
                                   code_0
                                   (let ((app_0 (make-weak-box v_0)))
                                     (cons
                                      app_0
                                      (hash-ref ht_0 code_0 null))))))
                             (let ((app_1 (add1 (table-count pruned-t_0))))
                               (table2.1
                                app_0
                                app_1
                                (table-prune-at pruned-t_0))))))
                      (let ((or-part_1
                             (if (unsafe-box*-cas! b_0 t_0 new-t_0) v_0 #f)))
                        (if or-part_1
                          or-part_1
                          (weak-intern! tt_0 v_0))))))))))))))
(define prune-table
  (lambda (t_0)
    (let ((new-ht_0
           (let ((ht_0 (table-ht t_0)))
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (table_0 i_0)
                     (begin
                       (if i_0
                         (call-with-values
                          (lambda () (hash-iterate-key+value ht_0 i_0))
                          (case-lambda
                           ((k_0 vals_0)
                            (let ((table_1
                                   (let ((id*_0
                                          (reverse$1
                                           (begin
                                             (letrec*
                                              ((for-loop_1
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0 lst_0)
                                                   (begin
                                                     (if (pair? lst_0)
                                                       (let ((b_0
                                                              (unsafe-car
                                                               lst_0)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_0)))
                                                           (let ((fold-var_1
                                                                  (if (weak-box-value
                                                                       b_0)
                                                                    (let ((fold-var_1
                                                                           (cons
                                                                            b_0
                                                                            fold-var_0)))
                                                                      (values
                                                                       fold-var_1))
                                                                    fold-var_0)))
                                                             (for-loop_1
                                                              fold-var_1
                                                              rest_0))))
                                                       fold-var_0))))))
                                              (for-loop_1 null vals_0))))))
                                     (begin
                                       #t
                                       (letrec*
                                        ((for-loop_1
                                          (|#%name|
                                           for-loop
                                           (lambda (table_1)
                                             (begin
                                               (let ((table_2
                                                      (if (pair? id*_0)
                                                        (let ((table_2
                                                               (call-with-values
                                                                (lambda ()
                                                                  (values
                                                                   k_0
                                                                   id*_0))
                                                                (case-lambda
                                                                 ((key_0 val_0)
                                                                  (hash-set
                                                                   table_1
                                                                   key_0
                                                                   val_0))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args))))))
                                                          (values table_2))
                                                        table_1)))
                                                 table_2))))))
                                        (for-loop_1 table_0))))))
                              (for-loop_0
                               table_1
                               (hash-iterate-next ht_0 i_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         table_0))))))
                (for-loop_0 hash2725 (hash-iterate-first ht_0)))))))
      (let ((count_0
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (result_0 i_0)
                     (begin
                       (if i_0
                         (call-with-values
                          (lambda () (hash-iterate-key+value new-ht_0 i_0))
                          (case-lambda
                           ((k_0 vals_0)
                            (let ((result_1
                                   (let ((result_1
                                          (+ result_0 (length vals_0))))
                                     (values result_1))))
                              (for-loop_0
                               result_1
                               (hash-iterate-next new-ht_0 i_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         result_0))))))
                (for-loop_0 0 (hash-iterate-first new-ht_0))))))
        (table2.1 new-ht_0 count_0 (max 128 (* 2 count_0)))))))
(define finish_2266
  (make-struct-type-install-properties
   '(resolved-module-path)
   1
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (r_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2299)
         (|#%app| ser-push!_0 (1/resolved-module-path-name r_0)))))
    (cons
     prop:custom-write
     (lambda (r_0 port_0 mode_0)
       (begin
         (if mode_0 (write-string "#<resolved-module-path:" port_0) (void))
         (fprintf
          port_0
          "~a"
          (format-resolved-module-path-name (1/resolved-module-path-name r_0)))
         (if mode_0 (write-string ">" port_0) (void)))))
    (cons
     prop:equal+hash
     (list
      (lambda (a_0 b_0 eql?_0)
        (|#%app|
         eql?_0
         (1/resolved-module-path-name a_0)
         (1/resolved-module-path-name b_0)))
      (lambda (a_0 hash-code_0)
        (|#%app| hash-code_0 (1/resolved-module-path-name a_0)))
      (lambda (a_0 hash-code_0)
        (|#%app| hash-code_0 (1/resolved-module-path-name a_0))))))
   (current-inspector)
   #f
   '(0)
   #f
   'resolved-module-path))
(define struct:resolved-module-path
  (make-record-type-descriptor
   'resolved-module-path
   #f
   (|#%nongenerative-uid| resolved-module-path)
   #f
   #f
   '(1 . 0)))
(define effect_2442 (finish_2266 struct:resolved-module-path))
(define resolved-module-path1.1
  (|#%name|
   resolved-module-path
   (record-constructor
    (make-record-constructor-descriptor struct:resolved-module-path #f #f))))
(define 1/resolved-module-path?
  (|#%name|
   resolved-module-path?
   (record-predicate struct:resolved-module-path)))
(define 1/resolved-module-path-name
  (|#%name|
   resolved-module-path-name
   (record-accessor struct:resolved-module-path 0)))
(define format-resolved-module-path-name
  (lambda (p_0)
    (if (path? p_0)
      (string-append "\"" (path->string p_0) "\"")
      (if (symbol? p_0)
        (format-symbol p_0)
        (let ((app_0 (format-resolved-module-path-name (car p_0))))
          (format-submod app_0 (cdr p_0)))))))
(define format-symbol
  (lambda (p_0)
    (format
     "'~s~a"
     p_0
     (if (symbol-interned? p_0) "" (format "[~a]" (eq-hash-code p_0))))))
(define format-submod
  (lambda (base_0 syms_0)
    (format
     "(submod ~a~a)"
     base_0
     (apply
      string-append
      (reverse$1
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (fold-var_0 lst_0)
               (begin
                 (if (pair? lst_0)
                   (let ((i_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((fold-var_1
                              (let ((fold-var_1
                                     (cons (format " ~s" i_0) fold-var_0)))
                                (values fold-var_1))))
                         (for-loop_0 fold-var_1 rest_0))))
                   fold-var_0))))))
          (for-loop_0 null syms_0))))))))
(define safe-resolved-module-path-name
  (|#%name|
   resolved-module-path-name
   (lambda (v_0)
     (begin
       (begin
         (if (1/resolved-module-path? v_0)
           (void)
           (raise-argument-error
            'resolved-module-path-name
            "resolved-module-path?"
            v_0))
         (1/resolved-module-path-name v_0))))))
(define resolved-module-path-root-name
  (lambda (r_0)
    (let ((name_0 (1/resolved-module-path-name r_0)))
      (if (pair? name_0) (car name_0) name_0))))
(define resolved-module-paths (make-weak-intern-table))
(define 1/make-resolved-module-path
  (|#%name|
   make-resolved-module-path
   (lambda (p_0)
     (begin
       (begin
         (if (let ((or-part_0 (symbol? p_0)))
               (if or-part_0
                 or-part_0
                 (let ((or-part_1 (if (path? p_0) (complete-path? p_0) #f)))
                   (if or-part_1
                     or-part_1
                     (if (pair? p_0)
                       (if (pair? (cdr p_0))
                         (if (list? p_0)
                           (if (let ((or-part_2 (symbol? (car p_0))))
                                 (if or-part_2
                                   or-part_2
                                   (if (path? (car p_0))
                                     (complete-path? (car p_0))
                                     #f)))
                             (let ((lst_0 (cdr p_0)))
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_1)
                                       (begin
                                         (if (pair? lst_1)
                                           (let ((s_0 (unsafe-car lst_1)))
                                             (let ((rest_0 (unsafe-cdr lst_1)))
                                               (let ((result_1 (symbol? s_0)))
                                                 (let ((result_2
                                                        (values result_1)))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list s_0)))
                                                              (not result_2)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_2
                                                      rest_0)
                                                     result_2)))))
                                           result_0))))))
                                  (for-loop_0 #t lst_0))))
                             #f)
                           #f)
                         #f)
                       #f)))))
           (void)
           (raise-argument-error
            'make-resolved-module-path
            (string-append
             "(or/c symbol?\n"
             "      (and/c path? complete-path?)\n"
             "      (cons/c (or/c symbol?\n"
             "                    (and/c path? complete-path?))\n"
             "              (non-empty-listof symbol?)))")
            p_0))
         (weak-intern!
          resolved-module-paths
          (resolved-module-path1.1 p_0)))))))
(define resolved-module-path->module-path
  (lambda (r_0)
    (let ((name_0 (1/resolved-module-path-name r_0)))
      (let ((root-name_0 (if (pair? name_0) (car name_0) name_0)))
        (let ((root-mod-path_0
               (if (path? root-name_0) root-name_0 (list 'quote root-name_0))))
          (if (pair? name_0)
            (list* 'submod root-mod-path_0 (cdr name_0))
            root-mod-path_0))))))
(define finish_2612
  (make-struct-type-install-properties
   '(module-path-index)
   4
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:custom-write
     (lambda (r_0 port_0 mode_0)
       (begin
         (write-string "#<module-path-index" port_0)
         (if (begin-unsafe (eq? top-level-module-path-index r_0))
           (fprintf port_0 ":top-level")
           (if (module-path-index-path r_0)
             (let ((l_0
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (r_1)
                          (begin
                            (if (not r_1)
                              null
                              (if (1/resolved-module-path? r_1)
                                (list "+" (format "~a" r_1))
                                (if (module-path-index-path r_1)
                                  (let ((app_0
                                         (letrec*
                                          ((loop_1
                                            (|#%name|
                                             loop
                                             (lambda (v_0)
                                               (begin
                                                 (if (if (pair? v_0)
                                                       (if (eq?
                                                            'quote
                                                            (car v_0))
                                                         (null? (cddr v_0))
                                                         #f)
                                                       #f)
                                                   (format-symbol (cadr v_0))
                                                   (if (if (pair? v_0)
                                                         (eq?
                                                          'submod
                                                          (car v_0))
                                                         #f)
                                                     (let ((app_0
                                                            (loop_1
                                                             (cadr v_0))))
                                                       (format-submod
                                                        app_0
                                                        (cddr v_0)))
                                                     (format "~.s" v_0))))))))
                                          (loop_1
                                           (module-path-index-path r_1)))))
                                    (cons
                                     app_0
                                     (loop_0 (module-path-index-base r_1))))
                                  (if (module-path-index-resolved r_1)
                                    (list
                                     "+"
                                     (format
                                      "~a"
                                      (module-path-index-resolved r_1)))
                                    null)))))))))
                     (loop_0 r_0))))
               (fprintf
                port_0
                ":~.a"
                (let ((app_0 (car l_0)))
                  (apply
                   string-append
                   app_0
                   (reverse$1
                    (let ((lst_0 (cdr l_0)))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 lst_1)
                              (begin
                                (if (pair? lst_1)
                                  (let ((i_0 (unsafe-car lst_1)))
                                    (let ((rest_0 (unsafe-cdr lst_1)))
                                      (let ((fold-var_1
                                             (let ((fold-var_1
                                                    (cons
                                                     (format " ~a" i_0)
                                                     fold-var_0)))
                                               (values fold-var_1))))
                                        (for-loop_0 fold-var_1 rest_0))))
                                  fold-var_0))))))
                         (for-loop_0 null lst_0)))))))))
             (if (module-path-index-resolved r_0)
               (fprintf port_0 "=~a" (module-path-index-resolved r_0))
               (void))))
         (write-string ">" port_0))))
    (cons
     prop:equal+hash
     (list
      (lambda (a_0 b_0 eql?_0)
        (if (|#%app|
             eql?_0
             (module-path-index-path a_0)
             (module-path-index-path b_0))
          (|#%app|
           eql?_0
           (module-path-index-base a_0)
           (module-path-index-base b_0))
          #f))
      (lambda (a_0 hash-code_0)
        (let ((app_0 (|#%app| hash-code_0 (module-path-index-path a_0))))
          (+ app_0 (|#%app| hash-code_0 (module-path-index-base a_0)))))
      (lambda (a_0 hash-code_0)
        (let ((app_0 (|#%app| hash-code_0 (module-path-index-path a_0))))
          (+ app_0 (|#%app| hash-code_0 (module-path-index-base a_0))))))))
   (current-inspector)
   #f
   '(0 1)
   #f
   'module-path-index))
(define struct:module-path-index
  (make-record-type-descriptor
   'module-path-index
   #f
   (|#%nongenerative-uid| module-path-index)
   #f
   #f
   '(4 . 12)))
(define effect_2892 (finish_2612 struct:module-path-index))
(define module-path-index2.1
  (|#%name|
   module-path-index
   (record-constructor
    (make-record-constructor-descriptor struct:module-path-index #f #f))))
(define 1/module-path-index?
  (|#%name| module-path-index? (record-predicate struct:module-path-index)))
(define module-path-index-path
  (|#%name|
   module-path-index-path
   (record-accessor struct:module-path-index 0)))
(define module-path-index-base
  (|#%name|
   module-path-index-base
   (record-accessor struct:module-path-index 1)))
(define module-path-index-resolved
  (|#%name|
   module-path-index-resolved
   (record-accessor struct:module-path-index 2)))
(define module-path-index-shift-cache
  (|#%name|
   module-path-index-shift-cache
   (record-accessor struct:module-path-index 3)))
(define set-module-path-index-resolved!
  (|#%name|
   set-module-path-index-resolved!
   (record-mutator struct:module-path-index 2)))
(define set-module-path-index-shift-cache!
  (|#%name|
   set-module-path-index-shift-cache!
   (record-mutator struct:module-path-index 3)))
(define empty-shift-cache '())
(define deserialize-module-path-index
  (case-lambda
   ((path_0 base_0) (1/module-path-index-join path_0 base_0))
   ((name_0)
    (make-self-module-path-index (1/make-resolved-module-path name_0)))
   (() top-level-module-path-index)))
(define 1/module-path-index-resolve
  (let ((module-path-index-resolve_0
         (|#%name|
          module-path-index-resolve
          (lambda (mpi5_0 load?3_0 stx4_0)
            (begin
              (begin
                (if (1/module-path-index? mpi5_0)
                  (void)
                  (raise-argument-error
                   'module-path-index-resolve
                   "module-path-index?"
                   mpi5_0))
                (let ((or-part_0 (module-path-index-resolved mpi5_0)))
                  (if or-part_0
                    or-part_0
                    (if (module-path-index-path mpi5_0)
                      (let ((mod-name_0
                             (begin
                               (if log-performance?
                                 (start-performance-region 'eval 'resolver)
                                 (void))
                               (begin0
                                 (let ((app_0
                                        (1/current-module-name-resolver)))
                                   (let ((app_1
                                          (module-path-index-path mpi5_0)))
                                     (|#%app|
                                      app_0
                                      app_1
                                      (module-path-index-resolve/maybe
                                       (module-path-index-base mpi5_0)
                                       load?3_0)
                                      stx4_0
                                      load?3_0)))
                                 (if log-performance?
                                   (end-performance-region)
                                   (void))))))
                        (begin
                          (if (1/resolved-module-path? mod-name_0)
                            (void)
                            (raise-arguments-error
                             'module-path-index-resolve
                             "current module name resolver's result is not a resolved module path"
                             "result"
                             mod-name_0))
                          (set-module-path-index-resolved! mpi5_0 mod-name_0)
                          mod-name_0))
                      (raise-arguments-error
                       'module-path-index-resolve
                       "\"self\" index has no resolution"
                       "module path index"
                       mpi5_0))))))))))
    (|#%name|
     module-path-index-resolve
     (case-lambda
      ((mpi_0) (begin (module-path-index-resolve_0 mpi_0 #f #f)))
      ((mpi_0 load?_0 stx4_0)
       (module-path-index-resolve_0 mpi_0 load?_0 stx4_0))
      ((mpi_0 load?3_0) (module-path-index-resolve_0 mpi_0 load?3_0 #f))))))
(define module-path-index-fresh
  (lambda (mpi_0)
    (call-with-values
     (lambda () (1/module-path-index-split mpi_0))
     (case-lambda
      ((path_0 base_0) (1/module-path-index-join path_0 base_0))
      (args (raise-binding-result-arity-error 2 args))))))
(define 1/module-path-index-join
  (let ((module-path-index-join_0
         (|#%name|
          module-path-index-join
          (lambda (mod-path7_0 base8_0 submod6_0)
            (begin
              (begin
                (if (let ((or-part_0 (not mod-path7_0)))
                      (if or-part_0 or-part_0 (1/module-path? mod-path7_0)))
                  (void)
                  (raise-argument-error
                   'module-path-index-join
                   "(or/c #f module-path?)"
                   mod-path7_0))
                (if (let ((or-part_0 (not base8_0)))
                      (if or-part_0
                        or-part_0
                        (let ((or-part_1 (1/resolved-module-path? base8_0)))
                          (if or-part_1
                            or-part_1
                            (1/module-path-index? base8_0)))))
                  (void)
                  (raise-argument-error
                   'module-path-index-join
                   "(or/c #f resolved-module-path? module-path-index?)"
                   base8_0))
                (if (let ((or-part_0 (not submod6_0)))
                      (if or-part_0
                        or-part_0
                        (if (pair? submod6_0)
                          (if (list? submod6_0)
                            (andmap_2344 symbol? submod6_0)
                            #f)
                          #f)))
                  (void)
                  (raise-argument-error
                   'module-path-index-join
                   "(or/c #f (non-empty-listof symbol?))"
                   submod6_0))
                (if (if (not mod-path7_0) base8_0 #f)
                  (raise-arguments-error
                   'module-path-index-join
                   "cannot combine #f path with non-#f base"
                   "given base"
                   base8_0)
                  (void))
                (if (if submod6_0 mod-path7_0 #f)
                  (raise-arguments-error
                   'module-path-index-join
                   "cannot combine #f submodule list with non-#f module path"
                   "given module path"
                   mod-path7_0
                   "given submodule list"
                   submod6_0)
                  (void))
                (if submod6_0
                  (make-self-module-path-index
                   (1/make-resolved-module-path
                    (cons '|expanded module| submod6_0)))
                  (let ((keep-base_0
                         (letrec*
                          ((loop_0
                            (|#%name|
                             loop
                             (lambda (mod-path_0)
                               (begin
                                 (if (path? mod-path_0)
                                   #f
                                   (if (if (pair? mod-path_0)
                                         (eq? 'quote (car mod-path_0))
                                         #f)
                                     #f
                                     (if (symbol? mod-path_0)
                                       #f
                                       (if (if (pair? mod-path_0)
                                             (eq? 'submod (car mod-path_0))
                                             #f)
                                         (loop_0 (cadr mod-path_0))
                                         base8_0)))))))))
                          (loop_0 mod-path7_0))))
                    (module-path-index2.1
                     mod-path7_0
                     keep-base_0
                     #f
                     '())))))))))
    (|#%name|
     module-path-index-join
     (case-lambda
      ((mod-path_0 base_0)
       (begin (module-path-index-join_0 mod-path_0 base_0 #f)))
      ((mod-path_0 base_0 submod6_0)
       (module-path-index-join_0 mod-path_0 base_0 submod6_0))))))
(define module-path-index-resolve/maybe
  (lambda (base_0 load?_0)
    (if (1/module-path-index? base_0)
      (1/module-path-index-resolve base_0 load?_0)
      base_0)))
(define 1/module-path-index-split
  (|#%name|
   module-path-index-split
   (lambda (mpi_0)
     (begin
       (begin
         (if (1/module-path-index? mpi_0)
           (void)
           (raise-argument-error
            'module-path-index-split
            "module-path-index?"
            mpi_0))
         (values
          (module-path-index-path mpi_0)
          (module-path-index-base mpi_0)))))))
(define 1/module-path-index-submodule
  (|#%name|
   module-path-index-submodule
   (lambda (mpi_0)
     (begin
       (begin
         (if (1/module-path-index? mpi_0)
           (void)
           (raise-argument-error
            'module-path-index-submodule
            "module-path-index?"
            mpi_0))
         (if (not (module-path-index-path mpi_0))
           (let ((r_0 (module-path-index-resolved mpi_0)))
             (if r_0
               (let ((p_0 (1/resolved-module-path-name r_0)))
                 (if (pair? p_0) (cdr p_0) #f))
               #f))
           #f))))))
(define make-self-module-path-index
  (case-lambda
   ((name_0) (module-path-index2.1 #f #f name_0 '()))
   ((name_0 enclosing_0)
    (make-self-module-path-index
     (let ((temp21_0
            (if enclosing_0 (1/module-path-index-resolve enclosing_0) #f)))
       (build-module-name.1 unsafe-undefined name_0 temp21_0))))))
(define cell.1$9 (unsafe-make-place-local (make-weak-hash)))
(define generic-module-name '|expanded module|)
(define module-path-place-init!
  (lambda () (unsafe-place-local-set! cell.1$9 (make-weak-hash))))
(define make-generic-self-module-path-index
  (lambda (self_0)
    (let ((r_0
           (resolved-module-path-to-generic-resolved-module-path
            (module-path-index-resolved self_0))))
      (begin
        (begin-unsafe (unsafe-start-atomic))
        (begin0
          (let ((or-part_0
                 (let ((e_0
                        (hash-ref (unsafe-place-local-ref cell.1$9) r_0 #f)))
                   (if e_0 (ephemeron-value e_0) #f))))
            (if or-part_0
              or-part_0
              (let ((mpi_0 (module-path-index2.1 #f #f r_0 '())))
                (begin
                  (hash-set!
                   (unsafe-place-local-ref cell.1$9)
                   r_0
                   (make-ephemeron r_0 mpi_0))
                  mpi_0))))
          (begin-unsafe (unsafe-end-atomic)))))))
(define resolved-module-path-to-generic-resolved-module-path
  (lambda (r_0)
    (let ((name_0 (1/resolved-module-path-name r_0)))
      (1/make-resolved-module-path
       (if (symbol? name_0)
         '|expanded module|
         (cons '|expanded module| (cdr name_0)))))))
(define imitate-generic-module-path-index!
  (lambda (mpi_0)
    (let ((r_0 (module-path-index-resolved mpi_0)))
      (if r_0
        (set-module-path-index-resolved!
         mpi_0
         (resolved-module-path-to-generic-resolved-module-path r_0))
        (void)))))
(define module-path-index-shift
  (lambda (mpi_0 from-mpi_0 to-mpi_0)
    (if (eq? mpi_0 from-mpi_0)
      to-mpi_0
      (let ((base_0 (module-path-index-base mpi_0)))
        (if (not base_0)
          mpi_0
          (let ((shifted-base_0
                 (module-path-index-shift base_0 from-mpi_0 to-mpi_0)))
            (if (eq? shifted-base_0 base_0)
              mpi_0
              (let ((c1_0
                     (shift-cache-ref
                      (module-path-index-shift-cache shifted-base_0)
                      mpi_0)))
                (if c1_0
                  c1_0
                  (let ((shifted-mpi_0
                         (module-path-index2.1
                          (module-path-index-path mpi_0)
                          shifted-base_0
                          #f
                          '())))
                    (begin
                      (shift-cache-set! shifted-base_0 shifted-mpi_0)
                      shifted-mpi_0)))))))))))
(define shift-cache-ref
  (lambda (cache_0 mpi_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (result_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((wb_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((result_1
                           (let ((result_1
                                  (let ((v_0 (weak-box-value wb_0)))
                                    (if v_0
                                      (if (equal?
                                           (module-path-index-path v_0)
                                           (module-path-index-path mpi_0))
                                        v_0
                                        #f)
                                      #f))))
                             (values result_1))))
                      (if (if (not (let ((x_0 (list wb_0))) result_1)) #t #f)
                        (for-loop_0 result_1 rest_0)
                        result_1))))
                result_0))))))
       (for-loop_0 #f cache_0)))))
(define shift-cache-set!
  (lambda (base_0 v_0)
    (let ((app_0 (make-weak-box v_0)))
      (let ((new-cache_0
             (cons
              app_0
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (n_0 l_0)
                    (begin
                      (if (null? l_0)
                        null
                        (if (eqv? n_0 0)
                          null
                          (if (not (weak-box-value (car l_0)))
                            (loop_0 n_0 (cdr l_0))
                            (let ((r_0
                                   (let ((app_1 (fx- n_0 1)))
                                     (loop_0 app_1 (cdr l_0)))))
                              (if (eq? r_0 (cdr l_0))
                                l_0
                                (cons (car l_0) r_0)))))))))))
               (loop_0 32 (module-path-index-shift-cache base_0))))))
        (set-module-path-index-shift-cache! base_0 new-cache_0)))))
(define top-level-module-path-index
  (make-self-module-path-index (1/make-resolved-module-path 'top-level)))
(define top-level-module-path-index?
  (lambda (mpi_0) (eq? top-level-module-path-index mpi_0)))
(define non-self-module-path-index?
  (lambda (mpi_0) (if (module-path-index-path mpi_0) #t #f)))
(define inside-module-context?
  (lambda (mpi_0 inside-mpi_0)
    (let ((or-part_0 (eq? mpi_0 inside-mpi_0)))
      (if or-part_0
        or-part_0
        (if (1/module-path-index? mpi_0)
          (if (1/module-path-index? inside-mpi_0)
            (if (module-path-index-resolved mpi_0)
              (let ((app_0 (module-path-index-resolved mpi_0)))
                (eq? app_0 (module-path-index-resolved inside-mpi_0)))
              #f)
            #f)
          #f)))))
(define core-module-name-resolver
  (case-lambda
   ((name_0 from-namespace_0) (void))
   ((p_0 enclosing_0 source-stx-stx_0 load?_0)
    (begin
      (if (1/module-path? p_0)
        (void)
        (raise-argument-error 'core-module-name-resolver "module-path?" p_0))
      (if (let ((or-part_0 (not enclosing_0)))
            (if or-part_0 or-part_0 (1/resolved-module-path? enclosing_0)))
        (void)
        (raise-argument-error
         'core-module-name-resolver
         "resolved-module-path?"
         enclosing_0))
      (if (if (list? p_0)
            (if (= (length p_0) 2)
              (if (eq? 'quote (car p_0)) (symbol? (cadr p_0)) #f)
              #f)
            #f)
        (1/make-resolved-module-path (cadr p_0))
        (if (if (list? p_0)
              (if (eq? 'submod (car p_0)) (equal? ".." (cadr p_0)) #f)
              #f)
          (let ((lst_0 (cdr p_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (enclosing_1 lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((s_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (let ((enclosing_2
                                   (let ((enclosing_2
                                          (build-module-name.1
                                           p_0
                                           s_0
                                           enclosing_1)))
                                     (values enclosing_2))))
                              (for-loop_0 enclosing_2 rest_0))))
                        enclosing_1))))))
               (for-loop_0 enclosing_0 lst_0))))
          (if (if (list? p_0)
                (if (eq? 'submod (car p_0)) (equal? "." (cadr p_0)) #f)
                #f)
            (let ((lst_0 (cddr p_0)))
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (enclosing_1 lst_1)
                      (begin
                        (if (pair? lst_1)
                          (let ((s_0 (unsafe-car lst_1)))
                            (let ((rest_0 (unsafe-cdr lst_1)))
                              (let ((enclosing_2
                                     (let ((enclosing_2
                                            (build-module-name.1
                                             p_0
                                             s_0
                                             enclosing_1)))
                                       (values enclosing_2))))
                                (for-loop_0 enclosing_2 rest_0))))
                          enclosing_1))))))
                 (for-loop_0 enclosing_0 lst_0))))
            (if (if (list? p_0) (eq? 'submod (car p_0)) #f)
              (let ((base_0
                     (let ((app_0 (1/current-module-name-resolver)))
                       (|#%app| app_0 (cadr p_0) enclosing_0 #f #f))))
                (let ((lst_0 (cddr p_0)))
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (enclosing_1 lst_1)
                          (begin
                            (if (pair? lst_1)
                              (let ((s_0 (unsafe-car lst_1)))
                                (let ((rest_0 (unsafe-cdr lst_1)))
                                  (let ((enclosing_2
                                         (let ((enclosing_2
                                                (build-module-name.1
                                                 p_0
                                                 s_0
                                                 enclosing_1)))
                                           (values enclosing_2))))
                                    (for-loop_0 enclosing_2 rest_0))))
                              enclosing_1))))))
                     (for-loop_0 base_0 lst_0)))))
              (error
               'core-module-name-resolver
               "not a supported module path: ~v"
               p_0)))))))))
(define build-module-name.1
  (|#%name|
   build-module-name
   (lambda (original9_0 name11_0 enclosing12_0)
     (begin
       (let ((orig-name_0
              (if (eq? original9_0 unsafe-undefined) name11_0 original9_0)))
         (let ((enclosing-module-name_0
                (if enclosing12_0
                  (1/resolved-module-path-name enclosing12_0)
                  #f)))
           (1/make-resolved-module-path
            (if (not enclosing-module-name_0)
              name11_0
              (if (symbol? enclosing-module-name_0)
                (list enclosing-module-name_0 name11_0)
                (if (equal? name11_0 "..")
                  (if (symbol? enclosing-module-name_0)
                    (error "too many \"..\"s:" orig-name_0)
                    (if (= 2 (length enclosing-module-name_0))
                      (car enclosing-module-name_0)
                      (reverse$1 (cdr (reverse$1 enclosing-module-name_0)))))
                  (append enclosing-module-name_0 (list name11_0))))))))))))
(define 1/current-module-name-resolver
  (make-parameter
   core-module-name-resolver
   (lambda (v_0)
     (begin
       (if (if (procedure? v_0)
             (if (procedure-arity-includes? v_0 2)
               (procedure-arity-includes? v_0 4)
               #f)
             #f)
         (void)
         (raise-argument-error
          'current-module-name-resolver
          "(and/c (procedure-arity-includes/c 2) (procedure-arity-includes/c 4))"
          v_0))
       v_0))
   'current-module-name-resolver))
(define 1/current-module-declare-name
  (make-parameter
   #f
   (lambda (r_0)
     (begin
       (if (let ((or-part_0 (not r_0)))
             (if or-part_0 or-part_0 (1/resolved-module-path? r_0)))
         (void)
         (raise-argument-error
          'current-module-declare-name
          "(or/c #f resolved-module-path?)"
          r_0))
       r_0))
   'current-module-declare-name))
(define 1/current-module-declare-source
  (make-parameter
   #f
   (lambda (s_0)
     (begin
       (if (let ((or-part_0 (not s_0)))
             (if or-part_0
               or-part_0
               (let ((or-part_1 (symbol? s_0)))
                 (if or-part_1
                   or-part_1
                   (if (path? s_0) (complete-path? s_0) #f)))))
         (void)
         (raise-argument-error
          'current-module-declare-source
          "(or/c #f symbol? (and/c path? complete-path?))"
          s_0))
       s_0))
   'current-module-declare-source))
(define substitute-module-declare-name
  (lambda (default-name_0)
    (let ((current-name_0 (1/current-module-declare-name)))
      (let ((root-name_0
             (if current-name_0
               (resolved-module-path-root-name current-name_0)
               (if (pair? default-name_0)
                 (car default-name_0)
                 default-name_0))))
        (1/make-resolved-module-path
         (if (pair? default-name_0)
           (cons root-name_0 (cdr default-name_0))
           root-name_0))))))
(define finish_2890
  (make-struct-type-install-properties
   '(promise)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   'promise))
(define struct:promise
  (make-record-type-descriptor
   'promise
   #f
   (|#%nongenerative-uid| promise)
   #f
   #f
   '(2 . 3)))
(define effect_2268 (finish_2890 struct:promise))
(define promise1.1
  (|#%name|
   promise
   (record-constructor
    (make-record-constructor-descriptor struct:promise #f #f))))
(define promise? (|#%name| promise? (record-predicate struct:promise)))
(define promise-val (|#%name| promise-val (record-accessor struct:promise 0)))
(define promise-status
  (|#%name| promise-status (record-accessor struct:promise 1)))
(define set-promise-val!
  (|#%name| set-promise-val! (record-mutator struct:promise 0)))
(define set-promise-status!
  (|#%name| set-promise-status! (record-mutator struct:promise 1)))
(define force
  (lambda (v_0)
    (if (promise? v_0)
      (let ((s_0 (promise-status v_0)))
        (if (not s_0)
          (let ((result_0 (|#%app| (promise-val v_0))))
            (begin
              (set-promise-val! v_0 result_0)
              (set-promise-status! v_0 #t)
              result_0))
          (promise-val v_0)))
      v_0)))
(define phase?
  (lambda (v_0)
    (let ((or-part_0 (not v_0)))
      (if or-part_0 or-part_0 (exact-integer? v_0)))))
(define interned-symbol?
  (lambda (v_0) (if (symbol? v_0) (symbol-interned? v_0) #f)))
(define space?
  (lambda (v_0)
    (let ((or-part_0 (not v_0)))
      (if or-part_0 or-part_0 (interned-symbol? v_0)))))
(define phase+space?
  (lambda (v_0)
    (let ((or-part_0 (phase? v_0)))
      (if or-part_0
        or-part_0
        (if (pair? v_0)
          (if (interned-symbol? (cdr v_0)) (phase? (car v_0)) #f)
          #f)))))
(define phase+space-shift?
  (lambda (v_0)
    (let ((or-part_0 (phase? v_0)))
      (if or-part_0
        or-part_0
        (if (pair? v_0)
          (if (let ((or-part_1 (not (cdr v_0))))
                (if or-part_1 or-part_1 (interned-symbol? (cdr v_0))))
            (phase? (car v_0))
            #f)
          #f)))))
(define phase+space-phase
  (lambda (p+s_0) (begin (if (pair? p+s_0) (car p+s_0) p+s_0))))
(define phase+space-space
  (lambda (p+s_0) (begin (if (pair? p+s_0) (cdr p+s_0) #f))))
(define phase+space+$1
  (|#%name|
   phase+space+
   (lambda (p+s_0 s_0)
     (begin
       (begin
         (let ((p1_0 (if (pair? p+s_0) (car p+s_0) p+s_0)))
           (let ((p2_0 (if (pair? s_0) (car s_0) s_0)))
             (let ((sp1_0 (if (pair? p+s_0) (cdr p+s_0) #f)))
               (let ((p2_1 p2_0) (p1_1 p1_0))
                 (let ((p_0 (if p1_1 (if p2_1 (+ p1_1 p2_1) #f) #f)))
                   (let ((sp_0 (if (pair? s_0) (cdr s_0) sp1_0)))
                     (let ((p_1 p_0)) (if sp_0 (cons p_1 sp_0) p_1)))))))))))))
(define phase+ (lambda (a_0 b_0) (if a_0 (if b_0 (+ a_0 b_0) #f) #f)))
(define phase- (lambda (a_0 b_0) (if a_0 (if b_0 (- a_0 b_0) #f) #f)))
(define phase<?
  (lambda (a_0 b_0) (if (not b_0) #f (if (not a_0) #t (< a_0 b_0)))))
(define zero-phase? (lambda (a_0) (eq? a_0 0)))
(define label-phase? (lambda (a_0) (not a_0)))
(define phase?-string "phase?")
(define make-small-hasheq (lambda () (box hash2610)))
(define make-small-hasheqv (lambda () (box hash2589)))
(define small-hash-ref
  (lambda (small-ht_0 key_0 default_0)
    (hash-ref (unbox small-ht_0) key_0 default_0)))
(define small-hash-set!
  (lambda (small-ht_0 key_0 val_0)
    (set-box! small-ht_0 (hash-set (unbox small-ht_0) key_0 val_0))))
(define small-hash-keys (lambda (small-ht_0) (hash-keys (unbox small-ht_0))))
(define finish_3075
  (make-struct-type-install-properties
   '(serialize-state)
   14
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10 11 12 13)
   #f
   'serialize-state))
(define struct:serialize-state
  (make-record-type-descriptor
   'serialize-state
   #f
   (|#%nongenerative-uid| serialize-state)
   #f
   #f
   '(14 . 0)))
(define effect_2707 (finish_3075 struct:serialize-state))
(define serialize-state1.1
  (|#%name|
   serialize-state
   (record-constructor
    (make-record-constructor-descriptor struct:serialize-state #f #f))))
(define serialize-state?
  (|#%name| serialize-state? (record-predicate struct:serialize-state)))
(define serialize-state-reachable-scopes
  (|#%name|
   serialize-state-reachable-scopes
   (record-accessor struct:serialize-state 0)))
(define serialize-state-bindings-intern
  (|#%name|
   serialize-state-bindings-intern
   (record-accessor struct:serialize-state 1)))
(define serialize-state-bulk-bindings-intern
  (|#%name|
   serialize-state-bulk-bindings-intern
   (record-accessor struct:serialize-state 2)))
(define serialize-state-scopes
  (|#%name| serialize-state-scopes (record-accessor struct:serialize-state 3)))
(define serialize-state-shifted-multi-scopes
  (|#%name|
   serialize-state-shifted-multi-scopes
   (record-accessor struct:serialize-state 4)))
(define serialize-state-multi-scope-tables
  (|#%name|
   serialize-state-multi-scope-tables
   (record-accessor struct:serialize-state 5)))
(define serialize-state-mpi-shifts
  (|#%name|
   serialize-state-mpi-shifts
   (record-accessor struct:serialize-state 6)))
(define serialize-state-context-triples
  (|#%name|
   serialize-state-context-triples
   (record-accessor struct:serialize-state 7)))
(define serialize-state-props
  (|#%name| serialize-state-props (record-accessor struct:serialize-state 8)))
(define serialize-state-interned-props
  (|#%name|
   serialize-state-interned-props
   (record-accessor struct:serialize-state 9)))
(define serialize-state-syntax-context
  (|#%name|
   serialize-state-syntax-context
   (record-accessor struct:serialize-state 10)))
(define serialize-state-sharing-syntaxes
  (|#%name|
   serialize-state-sharing-syntaxes
   (record-accessor struct:serialize-state 11)))
(define serialize-state-preserve-prop-keys
  (|#%name|
   serialize-state-preserve-prop-keys
   (record-accessor struct:serialize-state 12)))
(define serialize-state-keep-provides?
  (|#%name|
   serialize-state-keep-provides?
   (record-accessor struct:serialize-state 13)))
(define make-serialize-state
  (lambda (reachable-scopes_0 preserve-prop-keys_0 keep-provides?_0)
    (let ((state_0
           (let ((app_0 (make-hasheq)))
             (let ((app_1 (make-hasheq)))
               (let ((app_2 (make-hash)))
                 (let ((app_3 (make-hash)))
                   (let ((app_4 (make-hasheq)))
                     (let ((app_5 (make-hasheq)))
                       (let ((app_6 (make-hasheq)))
                         (let ((app_7 (make-hasheq)))
                           (let ((app_8 (make-hash)))
                             (let ((app_9 (box null)))
                               (serialize-state1.1
                                reachable-scopes_0
                                app_0
                                app_1
                                app_2
                                app_3
                                app_4
                                app_5
                                app_6
                                app_7
                                app_8
                                app_9
                                (make-hasheq)
                                preserve-prop-keys_0
                                keep-provides?_0)))))))))))))
      (let ((empty-seteq_0 (seteq)))
        (begin
          (hash-set!
           (serialize-state-scopes state_0)
           empty-seteq_0
           empty-seteq_0)
          (hash-set!
           (serialize-state-shifted-multi-scopes state_0)
           empty-seteq_0
           empty-seteq_0)
          (hash-set!
           (serialize-state-interned-props state_0)
           empty-seteq_0
           empty-seteq_0)
          state_0)))))
(define intern-scopes
  (lambda (scs_0 state_0)
    (let ((or-part_0 (hash-ref (serialize-state-scopes state_0) scs_0 #f)))
      (if or-part_0
        or-part_0
        (begin
          (hash-set! (serialize-state-scopes state_0) scs_0 scs_0)
          scs_0)))))
(define intern-shifted-multi-scopes
  (lambda (sms_0 state_0)
    (let ((or-part_0
           (hash-ref (serialize-state-shifted-multi-scopes state_0) sms_0 #f)))
      (if or-part_0
        or-part_0
        (begin
          (hash-set!
           (serialize-state-shifted-multi-scopes state_0)
           sms_0
           sms_0)
          sms_0)))))
(define intern-mpi-shifts
  (lambda (mpi-shifts_0 state_0)
    (if (null? mpi-shifts_0)
      null
      (let ((tail_0 (intern-mpi-shifts (cdr mpi-shifts_0) state_0)))
        (let ((tail-table_0
               (let ((or-part_0
                      (hash-ref
                       (serialize-state-mpi-shifts state_0)
                       tail_0
                       #f)))
                 (if or-part_0
                   or-part_0
                   (let ((ht_0 (make-hasheq)))
                     (begin
                       (hash-set!
                        (serialize-state-mpi-shifts state_0)
                        tail_0
                        ht_0)
                       ht_0))))))
          (let ((or-part_0 (hash-ref tail-table_0 (car mpi-shifts_0) #f)))
            (if or-part_0
              or-part_0
              (let ((v_0 (cons (car mpi-shifts_0) tail_0)))
                (begin
                  (hash-set! tail-table_0 (car mpi-shifts_0) v_0)
                  v_0)))))))))
(define intern-context-triple
  (lambda (scs_0 sms_0 mpi-shifts_0 state_0)
    (let ((scs-ht_0
           (let ((or-part_0
                  (hash-ref
                   (serialize-state-context-triples state_0)
                   scs_0
                   #f)))
             (if or-part_0
               or-part_0
               (let ((ht_0 (make-hasheq)))
                 (begin
                   (hash-set!
                    (serialize-state-context-triples state_0)
                    scs_0
                    ht_0)
                   ht_0))))))
      (let ((sms-ht_0
             (let ((or-part_0 (hash-ref scs-ht_0 sms_0 #f)))
               (if or-part_0
                 or-part_0
                 (let ((ht_0 (make-hasheq)))
                   (begin (hash-set! scs-ht_0 sms_0 ht_0) ht_0))))))
        (let ((or-part_0 (hash-ref sms-ht_0 mpi-shifts_0 #f)))
          (if or-part_0
            or-part_0
            (let ((vec_0 (vector-immutable scs_0 sms_0 mpi-shifts_0)))
              (begin (hash-set! sms-ht_0 mpi-shifts_0 vec_0) vec_0))))))))
(define intern-properties
  (lambda (all-props_0 get-preserved-props_0 state_0)
    (let ((v_0 (hash-ref (serialize-state-props state_0) all-props_0 'no)))
      (if (eq? v_0 'no)
        (let ((preserved-props_0 (|#%app| get-preserved-props_0)))
          (let ((p_0
                 (if (zero? (hash-count preserved-props_0))
                   #f
                   (let ((c1_0
                          (hash-ref
                           (serialize-state-interned-props state_0)
                           preserved-props_0
                           #f)))
                     (if c1_0
                       c1_0
                       (begin
                         (hash-set!
                          (serialize-state-interned-props state_0)
                          preserved-props_0
                          preserved-props_0)
                         preserved-props_0))))))
            (begin
              (hash-set! (serialize-state-props state_0) all-props_0 p_0)
              p_0)))
        v_0))))
(define push-syntax-context!
  (lambda (state_0 v_0)
    (let ((b_0 (serialize-state-syntax-context state_0)))
      (set-box! b_0 (cons v_0 (unbox b_0))))))
(define get-syntax-context
  (lambda (state_0)
    (let ((b_0 (serialize-state-syntax-context state_0)))
      (if (null? (unbox b_0)) #f (car (unbox b_0))))))
(define pop-syntax-context!
  (lambda (state_0)
    (let ((b_0 (serialize-state-syntax-context state_0)))
      (set-box! b_0 (cdr (unbox b_0))))))
(define root-tag (unsafe-root-continuation-prompt-tag))
(define default-val.1$2 #f)
(define current-module-code-inspector
  (lambda ()
    (continuation-mark-set-first
     #f
     current-module-code-inspector
     #f
     root-tag)))
(define immutable-prefab-struct-key
  (lambda (v_0)
    (let ((k_0 (prefab-struct-key v_0)))
      (if k_0 (if (all-fields-immutable?$1 k_0) k_0 #f) #f))))
(define prefab-key-all-fields-immutable?
  (lambda (k_0)
    (begin
      (if (prefab-key? k_0)
        (void)
        (raise-argument-error
         'prefab-key-all-fields-immutable?
         "prefab-key?"
         k_0))
      (all-fields-immutable?$1 k_0))))
(define all-fields-immutable?$1
  (|#%name|
   all-fields-immutable?
   (lambda (k_0)
     (begin
       (let ((or-part_0 (symbol? k_0)))
         (if or-part_0
           or-part_0
           (let ((or-part_1 (null? k_0)))
             (if or-part_1
               or-part_1
               (let ((rk_0 (cdr k_0)))
                 (let ((rk_1
                        (if (if (pair? rk_0) (exact-integer? (car rk_0)) #f)
                          (cdr rk_0)
                          rk_0)))
                   (let ((rk_2
                          (if (if (pair? rk_1) (pair? (car rk_1)) #f)
                            (if (zero? (caar rk_1))
                              (cdr rk_1)
                              (cons '#(1) (cdr rk_1)))
                            rk_1)))
                     (if (if (pair? rk_2) (vector? (car rk_2)) #f)
                       (if (zero? (vector-length (car rk_2)))
                         (all-fields-immutable?$1 (cdr rk_2))
                         #f)
                       (all-fields-immutable?$1 rk_2)))))))))))))
(define all-fields-immutable?
  (lambda (k_0) (prefab-key-all-fields-immutable? k_0)))
(define datum-map-slow
  (lambda (tail?_0 s_0 f_0 seen_0 known-pairs_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (tail?_1 s_1 prev-seen_0)
          (begin
            (let ((seen_1
                   (if (if prev-seen_0 (datum-has-elements? s_1) #f)
                     (if (hash-ref prev-seen_0 s_1 #f)
                       (|#%app| (hash-ref prev-seen_0 'cycle-fail) s_1)
                       (hash-set prev-seen_0 s_1 #t))
                     prev-seen_0)))
              (if (null? s_1)
                (|#%app| f_0 tail?_1 s_1)
                (if (pair? s_1)
                  (if (if known-pairs_0
                        (if tail?_1 (hash-ref known-pairs_0 s_1 #f) #f)
                        #f)
                    s_1
                    (|#%app|
                     f_0
                     tail?_1
                     (let ((app_0 (loop_0 #f (car s_1) seen_1)))
                       (cons
                        app_0
                        (let ((app_1 (if tail?_1 (fx+ 1 tail?_1) 1)))
                          (loop_0 app_1 (cdr s_1) seen_1))))))
                  (if (let ((or-part_0 (symbol? s_1)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (boolean? s_1)))
                            (if or-part_1 or-part_1 (number? s_1)))))
                    (|#%app| f_0 #f s_1)
                    (if (vector? s_1)
                      (|#%app|
                       f_0
                       #f
                       (vector->immutable-vector
                        (let ((len_0 (vector-length s_1)))
                          (begin
                            (if (exact-nonnegative-integer? len_0)
                              (void)
                              (raise-argument-error
                               'for/vector
                               "exact-nonnegative-integer?"
                               len_0))
                            (let ((v_0 (make-vector len_0 0)))
                              (begin
                                (if (zero? len_0)
                                  (void)
                                  (call-with-values
                                   (lambda ()
                                     (begin
                                       (check-vector s_1)
                                       (values
                                        s_1
                                        (unsafe-vector-length s_1))))
                                   (case-lambda
                                    ((vec_0 len_1)
                                     (begin
                                       #f
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (i_0 pos_0)
                                             (begin
                                               (if (unsafe-fx< pos_0 len_1)
                                                 (let ((e_0
                                                        (unsafe-vector-ref
                                                         vec_0
                                                         pos_0)))
                                                   (let ((i_1
                                                          (let ((i_1
                                                                 (begin
                                                                   (unsafe-vector*-set!
                                                                    v_0
                                                                    i_0
                                                                    (loop_0
                                                                     #f
                                                                     e_0
                                                                     seen_1))
                                                                   (unsafe-fx+
                                                                    1
                                                                    i_0))))
                                                            (values i_1))))
                                                     (if (if (not
                                                              (let ((x_0
                                                                     (list
                                                                      e_0)))
                                                                (unsafe-fx=
                                                                 i_1
                                                                 len_0)))
                                                           #t
                                                           #f)
                                                       (for-loop_0
                                                        i_1
                                                        (unsafe-fx+ 1 pos_0))
                                                       i_1)))
                                                 i_0))))))
                                        (for-loop_0 0 0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))
                                v_0))))))
                      (if (box? s_1)
                        (|#%app|
                         f_0
                         #f
                         (box-immutable (loop_0 #f (unbox s_1) seen_1)))
                        (let ((c1_0 (immutable-prefab-struct-key s_1)))
                          (if c1_0
                            (|#%app|
                             f_0
                             #f
                             (apply
                              make-prefab-struct
                              c1_0
                              (reverse$1
                               (call-with-values
                                (lambda ()
                                  (unsafe-normalise-inputs
                                   unsafe-vector-length
                                   (struct->vector s_1)
                                   1
                                   #f
                                   1))
                                (case-lambda
                                 ((v*_0 start*_0 stop*_0 step*_0)
                                  (begin
                                    #t
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (fold-var_0 idx_0)
                                          (begin
                                            (if (unsafe-fx< idx_0 stop*_0)
                                              (let ((e_0
                                                     (unsafe-vector-ref
                                                      v*_0
                                                      idx_0)))
                                                (let ((fold-var_1
                                                       (let ((fold-var_1
                                                              (cons
                                                               (loop_0
                                                                #f
                                                                e_0
                                                                seen_1)
                                                               fold-var_0)))
                                                         (values fold-var_1))))
                                                  (for-loop_0
                                                   fold-var_1
                                                   (unsafe-fx+ idx_0 1))))
                                              fold-var_0))))))
                                     (for-loop_0 null start*_0))))
                                 (args
                                  (raise-binding-result-arity-error
                                   4
                                   args)))))))
                            (if (if (hash? s_1) (immutable? s_1) #f)
                              (|#%app|
                               f_0
                               #f
                               (let ((temp7_0
                                      (lambda (k_0 v_0)
                                        (values k_0 (loop_0 #f v_0 seen_1)))))
                                 (hash-map/copy.1 'immutable s_1 temp7_0)))
                              (|#%app| f_0 #f s_1)))))))))))))))
     (loop_0 tail?_0 s_0 seen_0))))
(define datum-has-elements?
  (lambda (d_0)
    (let ((or-part_0 (pair? d_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (vector? d_0)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (box? d_0)))
              (if or-part_2
                or-part_2
                (let ((or-part_3 (immutable-prefab-struct-key d_0)))
                  (if or-part_3
                    or-part_3
                    (if (hash? d_0)
                      (if (immutable? d_0) (positive? (hash-count d_0)) #f)
                      #f)))))))))))
(define finish_2102
  (make-struct-type-install-properties
   '(preserved-property-value)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'preserved-property-value))
(define struct:preserved-property-value
  (make-record-type-descriptor
   'preserved-property-value
   #f
   (|#%nongenerative-uid| preserved-property-value)
   #f
   #f
   '(1 . 0)))
(define effect_2588 (finish_2102 struct:preserved-property-value))
(define preserved-property-value1.1
  (|#%name|
   preserved-property-value
   (record-constructor
    (make-record-constructor-descriptor
     struct:preserved-property-value
     #f
     #f))))
(define preserved-property-value?_2252
  (|#%name|
   preserved-property-value?
   (record-predicate struct:preserved-property-value)))
(define preserved-property-value?
  (|#%name|
   preserved-property-value?
   (lambda (v)
     (if (preserved-property-value?_2252 v)
       #t
       ($value
        (if (impersonator? v)
          (preserved-property-value?_2252 (impersonator-val v))
          #f))))))
(define preserved-property-value-content_2497
  (|#%name|
   preserved-property-value-content
   (record-accessor struct:preserved-property-value 0)))
(define preserved-property-value-content
  (|#%name|
   preserved-property-value-content
   (lambda (s)
     (if (preserved-property-value?_2252 s)
       (preserved-property-value-content_2497 s)
       ($value
        (impersonate-ref
         preserved-property-value-content_2497
         struct:preserved-property-value
         0
         s
         'content))))))
(define plain-property-value
  (lambda (v_0)
    (if (preserved-property-value? v_0)
      (preserved-property-value-content v_0)
      v_0)))
(define check-value-to-preserve
  (lambda (v_0 syntax?_0)
    (let ((check-preserve_0
           (|#%name|
            check-preserve
            (lambda (tail?_0 v_1)
              (begin
                (begin
                  (if (let ((or-part_0 (null? v_1)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (boolean? v_1)))
                            (if or-part_1
                              or-part_1
                              (let ((or-part_2 (symbol? v_1)))
                                (if or-part_2
                                  or-part_2
                                  (let ((or-part_3 (number? v_1)))
                                    (if or-part_3
                                      or-part_3
                                      (let ((or-part_4 (char? v_1)))
                                        (if or-part_4
                                          or-part_4
                                          (let ((or-part_5 (string? v_1)))
                                            (if or-part_5
                                              or-part_5
                                              (let ((or-part_6 (bytes? v_1)))
                                                (if or-part_6
                                                  or-part_6
                                                  (let ((or-part_7
                                                         (regexp? v_1)))
                                                    (if or-part_7
                                                      or-part_7
                                                      (let ((or-part_8
                                                             (|#%app|
                                                              syntax?_0
                                                              v_1)))
                                                        (if or-part_8
                                                          or-part_8
                                                          (let ((or-part_9
                                                                 (pair? v_1)))
                                                            (if or-part_9
                                                              or-part_9
                                                              (let ((or-part_10
                                                                     (vector?
                                                                      v_1)))
                                                                (if or-part_10
                                                                  or-part_10
                                                                  (let ((or-part_11
                                                                         (box?
                                                                          v_1)))
                                                                    (if or-part_11
                                                                      or-part_11
                                                                      (let ((or-part_12
                                                                             (hash?
                                                                              v_1)))
                                                                        (if or-part_12
                                                                          or-part_12
                                                                          (immutable-prefab-struct-key
                                                                           v_1)))))))))))))))))))))))))))
                    (void)
                    (raise-arguments-error
                     'write
                     "disallowed value in preserved syntax property"
                     "value"
                     v_1))
                  v_1))))))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (tail?_0 s_0 prev-depth_0)
            (begin
              (let ((depth_0 (fx+ 1 prev-depth_0)))
                (if (if disallow-cycles$1 (fx> depth_0 32) #f)
                  (datum-map-slow
                   tail?_0
                   s_0
                   (lambda (tail?_1 s_1) (check-preserve_0 tail?_1 s_1))
                   disallow-cycles$1
                   #f)
                  (if (null? s_0)
                    (check-preserve_0 tail?_0 s_0)
                    (if (pair? s_0)
                      (check-preserve_0
                       tail?_0
                       (let ((app_0 (loop_0 #f (car s_0) depth_0)))
                         (cons app_0 (loop_0 1 (cdr s_0) depth_0))))
                      (if (symbol? s_0)
                        (check-preserve_0 #f s_0)
                        (if (boolean? s_0)
                          (check-preserve_0 #f s_0)
                          (if (number? s_0)
                            (check-preserve_0 #f s_0)
                            (if (let ((or-part_0 (vector? s_0)))
                                  (if or-part_0
                                    or-part_0
                                    (let ((or-part_1 (box? s_0)))
                                      (if or-part_1
                                        or-part_1
                                        (let ((or-part_2
                                               (prefab-struct-key s_0)))
                                          (if or-part_2
                                            or-part_2
                                            (hash? s_0)))))))
                              (datum-map-slow
                               tail?_0
                               s_0
                               (lambda (tail?_1 s_1)
                                 (check-preserve_0 tail?_1 s_1))
                               disallow-cycles$1
                               #f)
                              (check-preserve_0 #f s_0))))))))))))))
       (loop_0 #f v_0 0)))))
(define disallow-cycles$1
  (hash
   'cycle-fail
   (lambda (v_0)
     (raise-arguments-error
      'write
      "disallowed cycle in preserved syntax property"
      "at"
      v_0))))
(define taint?
  (lambda (v_0)
    (let ((or-part_0 (not v_0))) (if or-part_0 or-part_0 (symbol? v_0)))))
(define tainted-for-content
  (lambda (v_0)
    (if (datum-has-elements? v_0) 'tainted/need-propagate 'tainted)))
(define taint-needs-propagate?
  (lambda (t_0) (eq? t_0 'tainted/need-propagate)))
(define taint-propagated
  (lambda (t_0) (if (eq? t_0 'tainted/need-propagate) 'tainted t_0)))
(define finish_2619
  (make-struct-type-install-properties
   '(modified-content)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'modified-content))
(define struct:modified-content
  (make-record-type-descriptor
   'modified-content
   #f
   (|#%nongenerative-uid| modified-content)
   #f
   #f
   '(2 . 0)))
(define effect_2176 (finish_2619 struct:modified-content))
(define modified-content1.1
  (|#%name|
   modified-content
   (record-constructor
    (make-record-constructor-descriptor struct:modified-content #f #f))))
(define modified-content?
  (|#%name| modified-content? (record-predicate struct:modified-content)))
(define modified-content-content
  (|#%name|
   modified-content-content
   (record-accessor struct:modified-content 0)))
(define modified-content-scope-propagations+taint
  (|#%name|
   modified-content-scope-propagations+taint
   (record-accessor struct:modified-content 1)))
(define finish_2821
  (make-struct-type-install-properties
   '(syntax)
   7
   0
   #f
   (list
    (cons prop:sealed #t)
    (cons prop:authentic #t)
    (cons
     prop:reach-scopes
     (lambda (s_0 bulk-shifts_0 reach_0)
       (let ((content*_0 (syntax-content* s_0)))
         (begin
           (|#%app|
            reach_0
            (if (modified-content? content*_0)
              (let ((prop_0
                     (modified-content-scope-propagations+taint content*_0)))
                (if (propagation?$1 prop_0)
                  (|#%app| (propagation-ref prop_0) s_0)
                  (modified-content-content content*_0)))
              content*_0)
            bulk-shifts_0)
           (let ((shifts_0
                  (if bulk-shifts_0
                    (append bulk-shifts_0 (syntax-mpi-shifts s_0))
                    #f)))
             (begin
               (|#%app| reach_0 (syntax-scopes s_0) shifts_0)
               (|#%app| reach_0 (syntax-shifted-multi-scopes s_0) shifts_0)
               (let ((ht_0 (syntax-props s_0)))
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (i_0)
                         (begin
                           (if i_0
                             (call-with-values
                              (lambda ()
                                (unsafe-immutable-hash-iterate-key+value
                                 ht_0
                                 i_0))
                              (case-lambda
                               ((k_0 v_0)
                                (call-with-values
                                 (lambda ()
                                   (if (preserved-property-value? v_0)
                                     (begin
                                       (|#%app|
                                        reach_0
                                        (plain-property-value v_0)
                                        bulk-shifts_0)
                                       (values))
                                     (values)))
                                 (case-lambda
                                  (()
                                   (for-loop_0
                                    (unsafe-immutable-hash-iterate-next
                                     ht_0
                                     i_0)))
                                  (args
                                   (raise-binding-result-arity-error
                                    0
                                    args)))))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             (values)))))))
                    (for-loop_0 (unsafe-immutable-hash-iterate-first ht_0)))))
               (void)
               (|#%app| reach_0 (syntax-srcloc$1 s_0) bulk-shifts_0)))))))
    (cons
     prop:serialize
     (lambda (s_0 ser-push!_0 state_0)
       (let ((content*_0 (syntax-content* s_0)))
         (let ((content_0
                (if (modified-content? content*_0)
                  (let ((prop_0
                         (modified-content-scope-propagations+taint
                          content*_0)))
                    (if (propagation?$1 prop_0)
                      (|#%app| (propagation-ref prop_0) s_0)
                      (modified-content-content content*_0)))
                  content*_0)))
           (let ((properties_0
                  (intern-properties
                   (syntax-props s_0)
                   (lambda ()
                     (let ((preserve-keys_0
                            (serialize-state-preserve-prop-keys state_0)))
                       (let ((ht_0 (syntax-props s_0)))
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (table_0 i_0)
                                 (begin
                                   (if i_0
                                     (call-with-values
                                      (lambda ()
                                        (hash-iterate-key+value ht_0 i_0))
                                      (case-lambda
                                       ((k_0 v_0)
                                        (let ((table_1
                                               (if (let ((or-part_0
                                                          (preserved-property-value?
                                                           v_0)))
                                                     (if or-part_0
                                                       or-part_0
                                                       (hash-ref
                                                        preserve-keys_0
                                                        k_0
                                                        #f)))
                                                 (let ((table_1
                                                        (call-with-values
                                                         (lambda ()
                                                           (values
                                                            k_0
                                                            (check-value-to-preserve
                                                             (plain-property-value
                                                              v_0)
                                                             syntax?$1)))
                                                         (case-lambda
                                                          ((key_0 val_0)
                                                           (hash-set
                                                            table_0
                                                            key_0
                                                            val_0))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args))))))
                                                   (values table_1))
                                                 table_0)))
                                          (for-loop_0
                                           table_1
                                           (hash-iterate-next ht_0 i_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))
                                     table_0))))))
                            (for-loop_0
                             hash2610
                             (hash-iterate-first ht_0)))))))
                   state_0)))
             (let ((taint_0 (syntax-taintness s_0)))
               (let ((context-triple_0
                      (let ((app_0
                             (intern-scopes (syntax-scopes s_0) state_0)))
                        (let ((app_1
                               (intern-shifted-multi-scopes
                                (syntax-shifted-multi-scopes s_0)
                                state_0)))
                          (intern-context-triple
                           app_0
                           app_1
                           (intern-mpi-shifts (syntax-mpi-shifts s_0) state_0)
                           state_0)))))
                 (let ((stx-state_0 (get-syntax-context state_0)))
                   (if (if properties_0 properties_0 taint_0)
                     (begin
                       (|#%app| ser-push!_0 'tag kw2226)
                       (push-syntax-context! state_0 #f)
                       (|#%app| ser-push!_0 content_0)
                       (pop-syntax-context! state_0)
                       (|#%app| ser-push!_0 'reference context-triple_0)
                       (|#%app| ser-push!_0 'reference (syntax-srcloc$1 s_0))
                       (|#%app| ser-push!_0 properties_0)
                       (|#%app| ser-push!_0 taint_0)
                       (if stx-state_0
                         (set-syntax-state-all-sharing?! stx-state_0 #f)
                         (void)))
                     (let ((sharing-mode_0
                            (hash-ref
                             (serialize-state-sharing-syntaxes state_0)
                             s_0
                             'unknown)))
                       (begin
                         (if (eq? sharing-mode_0 'share)
                           (begin
                             (|#%app| ser-push!_0 'tag kw2099)
                             (|#%app| ser-push!_0 (syntax->datum$1 s_0)))
                           (if (eq? sharing-mode_0 'unknown)
                             (begin
                               (|#%app| ser-push!_0 'tag kw2641)
                               (let ((this-state_0
                                      (if (no-pair-syntax-in-cdr? content_0)
                                        (syntax-state17.1
                                         #t
                                         context-triple_0
                                         (syntax-srcloc$1 s_0))
                                        #f)))
                                 (begin
                                   (push-syntax-context! state_0 this-state_0)
                                   (begin
                                     (|#%app| ser-push!_0 content_0)
                                     (begin
                                       (pop-syntax-context! state_0)
                                       (let ((new-sharing-mode_0
                                              (if (if this-state_0
                                                    (syntax-state-all-sharing?
                                                     this-state_0)
                                                    #f)
                                                'share
                                                'none)))
                                         (begin
                                           (hash-set!
                                            (serialize-state-sharing-syntaxes
                                             state_0)
                                            s_0
                                            (if (datum-has-elements? content_0)
                                              new-sharing-mode_0
                                              'none))
                                           (if (if stx-state_0
                                                 (eq? new-sharing-mode_0 'none)
                                                 #f)
                                             (set-syntax-state-all-sharing?!
                                              stx-state_0
                                              #f)
                                             (void)))))))))
                             (begin
                               (|#%app| ser-push!_0 'tag kw2641)
                               (push-syntax-context! state_0 #f)
                               (|#%app| ser-push!_0 content_0)
                               (pop-syntax-context! state_0))))
                         (|#%app| ser-push!_0 'reference context-triple_0)
                         (|#%app| ser-push!_0 'reference (syntax-srcloc$1 s_0))
                         (if stx-state_0
                           (if (if (eq?
                                    context-triple_0
                                    (syntax-state-context-triple stx-state_0))
                                 (equal?
                                  (syntax-srcloc$1 s_0)
                                  (syntax-state-srcloc stx-state_0))
                                 #f)
                             (void)
                             (set-syntax-state-all-sharing?! stx-state_0 #f))
                           (void)))))))))))))
    (cons
     prop:custom-write
     (lambda (s_0 port_0 mode_0)
       (begin
         (write-string "#<syntax" port_0)
         (let ((srcloc_0 (syntax-srcloc$1 s_0)))
           (begin
             (if srcloc_0
               (let ((srcloc-str_0 (srcloc->string srcloc_0)))
                 (if srcloc-str_0 (fprintf port_0 ":~a" srcloc-str_0) (void)))
               (void))
             (let ((width_0 (print-syntax-width)))
               (begin
                 (if (eqv? width_0 0)
                   (void)
                   (if (eqv? width_0 +inf.0)
                     (fprintf port_0 " ~s" (syntax->datum$1 s_0))
                     (with-continuation-mark*
                      push-authentic
                      parameterization-key
                      (extend-parameterization
                       (continuation-mark-set-first #f parameterization-key)
                       error-print-width
                       width_0)
                      (fprintf port_0 " ~.s" (syntax->datum$1 s_0)))))
                 (write-string ">" port_0)))))))))
   (current-inspector)
   #f
   '(1 2 3 4 5 6)
   #f
   'syntax))
(define struct:syntax
  (make-record-type-descriptor
   'syntax
   #f
   (|#%nongenerative-uid| syntax)
   #t
   #f
   '(7 . 1)))
(define effect_2447 (finish_2821 struct:syntax))
(define syntax2.1
  (|#%name|
   syntax
   (record-constructor
    (make-record-constructor-descriptor struct:syntax #f #f))))
(define syntax?$1 (|#%name| syntax? (record-predicate struct:syntax)))
(define syntax-content*
  (|#%name| syntax-content* (record-accessor struct:syntax 0)))
(define syntax-scopes
  (|#%name| syntax-scopes (record-accessor struct:syntax 1)))
(define syntax-shifted-multi-scopes
  (|#%name| syntax-shifted-multi-scopes (record-accessor struct:syntax 2)))
(define syntax-mpi-shifts
  (|#%name| syntax-mpi-shifts (record-accessor struct:syntax 3)))
(define syntax-srcloc$1
  (|#%name| syntax-srcloc (record-accessor struct:syntax 4)))
(define syntax-props (|#%name| syntax-props (record-accessor struct:syntax 5)))
(define syntax-inspector
  (|#%name| syntax-inspector (record-accessor struct:syntax 6)))
(define set-syntax-content*!
  (|#%name| set-syntax-content*! (record-mutator struct:syntax 0)))
(define-values
 (prop:propagation propagation?$1 propagation-ref)
 (make-struct-type-property 'propagation))
(define-values
 (prop:propagation-taint propagation-taint? propagation-taint-ref)
 (make-struct-type-property 'propagation-taint))
(define-values
 (prop:propagation-set-taint propagation-set-taint? propagation-set-taint-ref)
 (make-struct-type-property 'propagation-set-taint))
(define syntax-content
  (lambda (s_0)
    (let ((content*_0 (syntax-content* s_0)))
      (if (modified-content? content*_0)
        (modified-content-content content*_0)
        content*_0))))
(define syntax-taintness
  (lambda (s_0)
    (let ((content*_0 (syntax-content* s_0)))
      (if (modified-content? content*_0)
        (let ((v_0 (modified-content-scope-propagations+taint content*_0)))
          (if (taint? v_0) v_0 (|#%app| (propagation-taint-ref v_0) v_0)))
        #f))))
(define syntax-content*-cas!
  (lambda (stx_0 old_0 new_0) (unsafe-struct*-cas! stx_0 0 old_0 new_0)))
(define re-modify-content
  (lambda (s_0 d_0)
    (let ((content*_0 (syntax-content* s_0)))
      (if (modified-content? content*_0)
        (modified-content1.1
         d_0
         (modified-content-scope-propagations+taint content*_0))
        d_0))))
(define empty-scopes (seteq))
(define empty-shifted-multi-scopes (seteq))
(define empty-mpi-shifts null)
(define empty-props hash2610)
(define empty-syntax
  (syntax2.1
   #f
   empty-scopes
   empty-shifted-multi-scopes
   null
   #f
   empty-props
   #f))
(define identifier?
  (lambda (s_0) (if (syntax?$1 s_0) (symbol? (syntax-content s_0)) #f)))
(define syntax-identifier? (lambda (s_0) (symbol? (syntax-content s_0))))
(define syntax->datum$1
  (|#%name|
   syntax->datum
   (lambda (s_0)
     (begin
       (let ((f_0 (|#%name| f (lambda (tail?_0 x_0) (begin x_0)))))
         (let ((d->s_0 (|#%name| d->s (lambda (s_1 d_0) (begin d_0)))))
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (s_1)
                 (begin
                   (let ((f_1 f_0))
                     (let ((gf_0
                            (|#%name|
                             gf
                             (lambda (tail?_0 v_0)
                               (begin
                                 (if (syntax?$1 v_0)
                                   (let ((d_0 (loop_0 (syntax-content v_0))))
                                     (begin-unsafe (begin d_0)))
                                   (begin-unsafe (begin v_0))))))))
                       (letrec*
                        ((loop_1
                          (|#%name|
                           loop
                           (lambda (tail?_0 s_2 prev-depth_0)
                             (begin
                               (let ((depth_0 (fx+ 1 prev-depth_0)))
                                 (if (null? s_2)
                                   (begin-unsafe (begin s_2))
                                   (if (pair? s_2)
                                     (let ((x_0
                                            (let ((app_0
                                                   (loop_1
                                                    #f
                                                    (car s_2)
                                                    depth_0)))
                                              (cons
                                               app_0
                                               (loop_1 1 (cdr s_2) depth_0)))))
                                       (begin-unsafe (begin x_0)))
                                     (if (symbol? s_2)
                                       (begin-unsafe (begin s_2))
                                       (if (boolean? s_2)
                                         (begin-unsafe (begin s_2))
                                         (if (number? s_2)
                                           (begin-unsafe (begin s_2))
                                           (if (let ((or-part_0 (vector? s_2)))
                                                 (if or-part_0
                                                   or-part_0
                                                   (let ((or-part_1
                                                          (box? s_2)))
                                                     (if or-part_1
                                                       or-part_1
                                                       (let ((or-part_2
                                                              (prefab-struct-key
                                                               s_2)))
                                                         (if or-part_2
                                                           or-part_2
                                                           (hash? s_2)))))))
                                             (datum-map-slow
                                              tail?_0
                                              s_2
                                              (lambda (tail?_1 s_3)
                                                (gf_0 tail?_1 s_3))
                                              #f
                                              #f)
                                             (gf_0 #f s_2)))))))))))))
                        (loop_1 #f s_1 0)))))))))
            (loop_0 s_0))))))))
(define cell.1$8 (unsafe-make-place-local (make-weak-hasheq)))
(define immediate-datum->syntax
  (lambda (stx-c_0 content_0 stx-l_0 props_0 insp_0)
    (let ((app_0
           (if (if stx-c_0 (syntax-taintness stx-c_0) #f)
             (modified-content1.1 content_0 (tainted-for-content content_0))
             content_0)))
      (let ((app_1 (if stx-c_0 (syntax-scopes stx-c_0) empty-scopes)))
        (let ((app_2
               (if stx-c_0
                 (syntax-shifted-multi-scopes stx-c_0)
                 empty-shifted-multi-scopes)))
          (let ((app_3 (if stx-c_0 (syntax-mpi-shifts stx-c_0) null)))
            (let ((app_4 (if stx-l_0 (syntax-srcloc$1 stx-l_0) #f)))
              (syntax2.1
               app_0
               app_1
               app_2
               app_3
               app_4
               props_0
               (if insp_0
                 (if stx-c_0
                   (let ((b_0 (syntax-inspector stx-c_0)))
                     (if (eq? insp_0 b_0)
                       insp_0
                       (if (not insp_0)
                         #f
                         (if (not b_0)
                           #f
                           (if (inspector-superior? insp_0 b_0)
                             b_0
                             (if (inspector-superior? b_0 insp_0)
                               insp_0
                               #f))))))
                   #f)
                 #f)))))))))
(define datum->syntax$1
  (let ((datum->syntax_0
         (|#%name|
          datum->syntax
          (lambda (stx-c5_0 s6_0 stx-l3_0 stx-p4_0)
            (begin
              (if (syntax?$1 s6_0)
                s6_0
                (let ((insp_0 (current-module-code-inspector)))
                  (let ((wrap_0
                         (|#%name|
                          wrap
                          (lambda (content_0)
                            (begin
                              (let ((content_1
                                     (datum-intern-literal content_0)))
                                (immediate-datum->syntax
                                 stx-c5_0
                                 content_1
                                 stx-l3_0
                                 empty-props
                                 insp_0)))))))
                    (let ((f_0
                           (|#%name|
                            f
                            (lambda (tail?_0 x_0)
                              (begin
                                (if tail?_0
                                  (begin
                                    (if (if (fx> tail?_0 32)
                                          (fx=
                                           0
                                           (fxand tail?_0 (fx- tail?_0 1)))
                                          #f)
                                      (hash-set!
                                       (unsafe-place-local-ref cell.1$8)
                                       x_0
                                       #t)
                                      (void))
                                    x_0)
                                  (wrap_0 x_0)))))))
                      (let ((result-s_0
                             (let ((s->_0
                                    (|#%name| s-> (lambda (s_0) (begin s_0)))))
                               (let ((known-pairs_0
                                      (unsafe-place-local-ref cell.1$8)))
                                 (let ((gf_0
                                        (|#%name|
                                         gf
                                         (lambda (tail?_0 v_0)
                                           (begin
                                             (if (syntax?$1 v_0)
                                               (begin-unsafe (begin v_0))
                                               (f_0 tail?_0 v_0)))))))
                                   (letrec*
                                    ((loop_0
                                      (|#%name|
                                       loop
                                       (lambda (tail?_0 s_0 prev-depth_0)
                                         (begin
                                           (let ((depth_0
                                                  (fx+ 1 prev-depth_0)))
                                             (if (if disallow-cycles
                                                   (fx> depth_0 32)
                                                   #f)
                                               (datum-map-slow
                                                tail?_0
                                                s_0
                                                (lambda (tail?_1 s_1)
                                                  (gf_0 tail?_1 s_1))
                                                disallow-cycles
                                                known-pairs_0)
                                               (if (null? s_0)
                                                 (f_0 tail?_0 s_0)
                                                 (if (pair? s_0)
                                                   (f_0
                                                    tail?_0
                                                    (let ((app_0
                                                           (loop_0
                                                            #f
                                                            (car s_0)
                                                            depth_0)))
                                                      (cons
                                                       app_0
                                                       (loop_0
                                                        1
                                                        (cdr s_0)
                                                        depth_0))))
                                                   (if (symbol? s_0)
                                                     (f_0 #f s_0)
                                                     (if (boolean? s_0)
                                                       (f_0 #f s_0)
                                                       (if (number? s_0)
                                                         (f_0 #f s_0)
                                                         (if (let ((or-part_0
                                                                    (vector?
                                                                     s_0)))
                                                               (if or-part_0
                                                                 or-part_0
                                                                 (let ((or-part_1
                                                                        (box?
                                                                         s_0)))
                                                                   (if or-part_1
                                                                     or-part_1
                                                                     (let ((or-part_2
                                                                            (prefab-struct-key
                                                                             s_0)))
                                                                       (if or-part_2
                                                                         or-part_2
                                                                         (hash?
                                                                          s_0)))))))
                                                           (datum-map-slow
                                                            tail?_0
                                                            s_0
                                                            (lambda (tail?_1
                                                                     s_1)
                                                              (gf_0
                                                               tail?_1
                                                               s_1))
                                                            disallow-cycles
                                                            known-pairs_0)
                                                           (gf_0
                                                            #f
                                                            s_0))))))))))))))
                                    (loop_0 #f s6_0 0)))))))
                        (if (if stx-p4_0
                              (not (eq? (syntax-props stx-p4_0) empty-props))
                              #f)
                          (if (syntax?$1 result-s_0)
                            (let ((props20_0 (syntax-props stx-p4_0)))
                              (let ((app_0 (syntax-content* result-s_0)))
                                (let ((app_1 (syntax-scopes result-s_0)))
                                  (let ((app_2
                                         (syntax-shifted-multi-scopes
                                          result-s_0)))
                                    (let ((app_3
                                           (syntax-mpi-shifts result-s_0)))
                                      (let ((app_4
                                             (syntax-srcloc$1 result-s_0)))
                                        (syntax2.1
                                         app_0
                                         app_1
                                         app_2
                                         app_3
                                         app_4
                                         props20_0
                                         (syntax-inspector result-s_0))))))))
                            (raise-argument-error
                             'struct-copy
                             "syntax?"
                             result-s_0))
                          result-s_0)))))))))))
    (|#%name|
     datum->syntax
     (case-lambda
      ((stx-c_0 s_0) (begin (datum->syntax_0 stx-c_0 s_0 #f #f)))
      ((stx-c_0 s_0 stx-l_0 stx-p4_0)
       (datum->syntax_0 stx-c_0 s_0 stx-l_0 stx-p4_0))
      ((stx-c_0 s_0 stx-l3_0) (datum->syntax_0 stx-c_0 s_0 stx-l3_0 #f))))))
(define disallow-cycles
  (hasheq
   'cycle-fail
   (lambda (s_0)
     (raise-arguments-error
      'datum->syntax
      "cannot create syntax from cyclic datum"
      "datum"
      s_0))))
(define syntax-place-init!
  (lambda () (unsafe-place-local-set! cell.1$8 (make-weak-hasheq))))
(define finish_2442
  (make-struct-type-install-properties
   '(syntax-state)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(1 2)
   #f
   'syntax-state))
(define struct:syntax-state
  (make-record-type-descriptor
   'syntax-state
   #f
   (|#%nongenerative-uid| syntax-state)
   #f
   #f
   '(3 . 1)))
(define effect_2710 (finish_2442 struct:syntax-state))
(define syntax-state17.1
  (|#%name|
   syntax-state
   (record-constructor
    (make-record-constructor-descriptor struct:syntax-state #f #f))))
(define syntax-state?
  (|#%name| syntax-state? (record-predicate struct:syntax-state)))
(define syntax-state-all-sharing?
  (|#%name| syntax-state-all-sharing? (record-accessor struct:syntax-state 0)))
(define syntax-state-context-triple
  (|#%name|
   syntax-state-context-triple
   (record-accessor struct:syntax-state 1)))
(define syntax-state-srcloc
  (|#%name| syntax-state-srcloc (record-accessor struct:syntax-state 2)))
(define set-syntax-state-all-sharing?!
  (|#%name|
   set-syntax-state-all-sharing?!
   (record-mutator struct:syntax-state 0)))
(define no-pair-syntax-in-cdr?
  (lambda (content_0)
    (if (pair? content_0)
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (content_1)
            (begin
              (if (if (syntax?$1 content_1)
                    (pair? (syntax-content content_1))
                    #f)
                #f
                (if (pair? content_1) (loop_0 (cdr content_1)) #t)))))))
       (loop_0 (cdr content_0)))
      #t)))
(define deserialize-syntax
  (lambda (content_0 context-triple_0 srcloc_0 props_0 taint_0 inspector_0)
    (let ((app_0
           (if taint_0 (modified-content1.1 content_0 taint_0) content_0)))
      (let ((app_1 (unsafe-vector*-ref context-triple_0 0)))
        (let ((app_2 (unsafe-vector*-ref context-triple_0 1)))
          (let ((app_3 (unsafe-vector*-ref context-triple_0 2)))
            (syntax2.1
             app_0
             app_1
             app_2
             app_3
             srcloc_0
             (if props_0
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (table_0 i_0)
                       (begin
                         (if i_0
                           (call-with-values
                            (lambda ()
                              (unsafe-immutable-hash-iterate-key+value
                               props_0
                               i_0))
                            (case-lambda
                             ((k_0 v_0)
                              (let ((table_1
                                     (let ((table_1
                                            (call-with-values
                                             (lambda ()
                                               (values
                                                k_0
                                                (preserved-property-value1.1
                                                 v_0)))
                                             (case-lambda
                                              ((key_0 val_0)
                                               (hash-set table_0 key_0 val_0))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))))
                                       (values table_1))))
                                (for-loop_0
                                 table_1
                                 (unsafe-immutable-hash-iterate-next
                                  props_0
                                  i_0))))
                             (args (raise-binding-result-arity-error 2 args))))
                           table_0))))))
                  (for-loop_0
                   hash2610
                   (unsafe-immutable-hash-iterate-first props_0))))
               empty-props)
             inspector_0)))))))
(define deserialize-datum->syntax
  (lambda (content_0 context-triple_0 srcloc_0 inspector_0)
    (let ((s_0
           (deserialize-syntax
            #f
            context-triple_0
            srcloc_0
            #f
            #f
            inspector_0)))
      (datum->syntax$1 s_0 content_0 s_0 s_0))))
(define finish_2247
  (make-struct-type-install-properties
   '(full-binding)
   2
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons prop:binding-reach-scopes (lambda (b_0) (binding-free=id b_0))))
   (current-inspector)
   #f
   '(0 1)
   #f
   'full-binding))
(define struct:full-binding
  (make-record-type-descriptor
   'full-binding
   #f
   (|#%nongenerative-uid| full-binding)
   #f
   #f
   '(2 . 0)))
(define effect_2734 (finish_2247 struct:full-binding))
(define full-binding1.1
  (|#%name|
   full-binding
   (record-constructor
    (make-record-constructor-descriptor struct:full-binding #f #f))))
(define full-binding?
  (|#%name| full-binding? (record-predicate struct:full-binding)))
(define full-binding-frame-id
  (|#%name| full-binding-frame-id (record-accessor struct:full-binding 0)))
(define full-binding-free=id
  (|#%name| full-binding-free=id (record-accessor struct:full-binding 1)))
(define binding-frame-id
  (lambda (b_0) (if (full-binding? b_0) (full-binding-frame-id b_0) #f)))
(define binding-free=id
  (lambda (b_0) (if (full-binding? b_0) (full-binding-free=id b_0) #f)))
(define cell.1$7 (unsafe-make-place-local (make-weak-hash)))
(define phase+space-place-init!
  (lambda () (unsafe-place-local-set! cell.1$7 (make-weak-hash))))
(define intern
  (lambda (new-key_0)
    (begin
      (begin-unsafe (unsafe-start-atomic))
      (let ((old-key_0
             (hash-ref-key (unsafe-place-local-ref cell.1$7) new-key_0 #f)))
        (begin
          (if old-key_0
            (void)
            (hash-set! (unsafe-place-local-ref cell.1$7) new-key_0 #t))
          (begin-unsafe (unsafe-end-atomic))
          (if old-key_0 old-key_0 new-key_0))))))
(define space+
  (lambda (s_0 s-level_0) (if (eq? s-level_0 kw2450) s_0 s-level_0)))
(define intern-phase+space
  (case-lambda
   ((phase_0 space_0)
    (if (not space_0) phase_0 (intern (cons phase_0 space_0))))
   ((phase+space_0) (intern phase+space_0))))
(define intern-phase+space-shift
  (case-lambda
   ((phase-level_0 space-level_0)
    (if (eq? space-level_0 kw2450)
      phase-level_0
      (intern (cons phase-level_0 space-level_0))))
   ((phase+space-shift_0) (intern phase+space-shift_0))))
(define phase+space-shift-phase-level
  (lambda (level_0) (if (pair? level_0) (car level_0) level_0)))
(define phase+space+
  (lambda (p+s_0 level_0) (intern-phase+space (phase+space+$1 p+s_0 level_0))))
(define phase+space?-string "phase+space?")
(define phase+space-shift?-string "phase+space-shift?")
(define phase+space<?
  (lambda (a_0 b_0)
    (let ((phase-a_0 (phase+space-phase a_0)))
      (let ((phase-b_0 (phase+space-phase b_0)))
        (let ((or-part_0 (phase<? phase-a_0 phase-b_0)))
          (if or-part_0
            or-part_0
            (if (eqv? phase-a_0 phase-b_0)
              (let ((space-a_0 (phase+space-space a_0)))
                (let ((space-b_0 (phase+space-space b_0)))
                  (let ((or-part_1 (not space-a_0)))
                    (if or-part_1
                      or-part_1
                      (if space-b_0 (symbol<? space-a_0 space-b_0) #f)))))
              #f)))))))
(define make-module-binding.1
  (|#%name|
   make-module-binding
   (lambda (extra-inspector7_0
            extra-nominal-bindings8_0
            frame-id5_0
            free=id6_0
            nominal-module1_0
            nominal-phase+space2_0
            nominal-require-phase+space-shift4_0
            nominal-sym3_0
            module17_0
            phase18_0
            sym19_0)
     (begin
       (let ((nominal-module_0
              (if (eq? nominal-module1_0 unsafe-undefined)
                module17_0
                nominal-module1_0)))
         (let ((nominal-phase+space_0
                (if (eq? nominal-phase+space2_0 unsafe-undefined)
                  phase18_0
                  nominal-phase+space2_0)))
           (let ((nominal-sym_0
                  (if (eq? nominal-sym3_0 unsafe-undefined)
                    sym19_0
                    nominal-sym3_0)))
             (if (if frame-id5_0
                   frame-id5_0
                   (if free=id6_0
                     free=id6_0
                     (if extra-inspector7_0
                       extra-inspector7_0
                       (not
                        (if (eqv? nominal-phase+space_0 phase18_0)
                          (if (eq? nominal-sym_0 sym19_0)
                            (if (eqv? nominal-require-phase+space-shift4_0 0)
                              (null? extra-nominal-bindings8_0)
                              #f)
                            #f)
                          #f)))))
               (full-module-binding45.1
                frame-id5_0
                free=id6_0
                module17_0
                phase18_0
                sym19_0
                nominal-module_0
                nominal-phase+space_0
                nominal-sym_0
                nominal-require-phase+space-shift4_0
                extra-inspector7_0
                extra-nominal-bindings8_0)
               (simple-module-binding46.1
                module17_0
                phase18_0
                sym19_0
                nominal-module_0)))))))))
(define module-binding-update.1
  (|#%name|
   module-binding-update
   (lambda (extra-inspector30_0
            extra-nominal-bindings31_0
            frame-id28_0
            free=id29_0
            module21_0
            nominal-module24_0
            nominal-phase+space25_0
            nominal-require-phase+space-shift27_0
            nominal-sym26_0
            phase22_0
            sym23_0
            b43_0)
     (begin
       (let ((module_0
              (if (eq? module21_0 unsafe-undefined)
                (module-binding-module b43_0)
                module21_0)))
         (let ((phase_0
                (if (eq? phase22_0 unsafe-undefined)
                  (module-binding-phase b43_0)
                  phase22_0)))
           (let ((sym_0
                  (if (eq? sym23_0 unsafe-undefined)
                    (module-binding-sym b43_0)
                    sym23_0)))
             (let ((nominal-module_0
                    (if (eq? nominal-module24_0 unsafe-undefined)
                      (module-binding-nominal-module b43_0)
                      nominal-module24_0)))
               (let ((nominal-phase+space_0
                      (if (eq? nominal-phase+space25_0 unsafe-undefined)
                        (module-binding-nominal-phase+space b43_0)
                        nominal-phase+space25_0)))
                 (let ((nominal-sym_0
                        (if (eq? nominal-sym26_0 unsafe-undefined)
                          (module-binding-nominal-sym b43_0)
                          nominal-sym26_0)))
                   (let ((nominal-require-phase+space-shift_0
                          (if (eq?
                               nominal-require-phase+space-shift27_0
                               unsafe-undefined)
                            (module-binding-nominal-require-phase+space-shift
                             b43_0)
                            nominal-require-phase+space-shift27_0)))
                     (let ((frame-id_0
                            (if (eq? frame-id28_0 unsafe-undefined)
                              (binding-frame-id b43_0)
                              frame-id28_0)))
                       (let ((free=id_0
                              (if (eq? free=id29_0 unsafe-undefined)
                                (binding-free=id b43_0)
                                free=id29_0)))
                         (let ((extra-inspector_0
                                (if (eq? extra-inspector30_0 unsafe-undefined)
                                  (module-binding-extra-inspector b43_0)
                                  extra-inspector30_0)))
                           (let ((extra-nominal-bindings_0
                                  (if (eq?
                                       extra-nominal-bindings31_0
                                       unsafe-undefined)
                                    (module-binding-extra-nominal-bindings
                                     b43_0)
                                    extra-nominal-bindings31_0)))
                             (make-module-binding.1
                              extra-inspector_0
                              extra-nominal-bindings_0
                              frame-id_0
                              free=id_0
                              nominal-module_0
                              nominal-phase+space_0
                              nominal-require-phase+space-shift_0
                              nominal-sym_0
                              module_0
                              phase_0
                              sym_0))))))))))))))))
(define module-binding?
  (lambda (b_0)
    (let ((or-part_0 (simple-module-binding? b_0)))
      (if or-part_0 or-part_0 (full-module-binding? b_0)))))
(define finish_2397
  (make-struct-type-install-properties
   '(full-module-binding)
   9
   0
   struct:full-binding
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (b_0 ser-push!_0 state_0)
       (let ((simplified-b_0
              (if (full-binding-frame-id b_0)
                (module-binding-update.1
                 unsafe-undefined
                 unsafe-undefined
                 #f
                 unsafe-undefined
                 unsafe-undefined
                 unsafe-undefined
                 unsafe-undefined
                 unsafe-undefined
                 unsafe-undefined
                 unsafe-undefined
                 unsafe-undefined
                 b_0)
                b_0)))
         (if (full-module-binding? simplified-b_0)
           (begin
             (|#%app| ser-push!_0 'tag kw2804)
             (|#%app| ser-push!_0 (full-module-binding-module b_0))
             (|#%app| ser-push!_0 (full-module-binding-sym b_0))
             (|#%app| ser-push!_0 (full-module-binding-phase b_0))
             (|#%app| ser-push!_0 (full-module-binding-nominal-module b_0))
             (|#%app|
              ser-push!_0
              (full-module-binding-nominal-phase+space b_0))
             (|#%app| ser-push!_0 (full-module-binding-nominal-sym b_0))
             (|#%app|
              ser-push!_0
              (full-module-binding-nominal-require-phase+space-shift b_0))
             (|#%app| ser-push!_0 (full-binding-free=id b_0))
             (if (full-module-binding-extra-inspector b_0)
               (|#%app| ser-push!_0 'tag kw1932)
               (|#%app| ser-push!_0 #f))
             (|#%app|
              ser-push!_0
              (full-module-binding-extra-nominal-bindings b_0)))
           (|#%app| ser-push!_0 simplified-b_0))))))
   #f
   #f
   '(0 1 2 3 4 5 6 7 8)
   #f
   'full-module-binding))
(define struct:full-module-binding
  (make-record-type-descriptor
   'full-module-binding
   struct:full-binding
   (|#%nongenerative-uid| full-module-binding)
   #f
   #f
   '(9 . 0)))
(define effect_2481 (finish_2397 struct:full-module-binding))
(define full-module-binding45.1
  (|#%name|
   full-module-binding
   (record-constructor
    (make-record-constructor-descriptor struct:full-module-binding #f #f))))
(define full-module-binding?
  (|#%name|
   full-module-binding?
   (record-predicate struct:full-module-binding)))
(define full-module-binding-module
  (|#%name|
   full-module-binding-module
   (record-accessor struct:full-module-binding 0)))
(define full-module-binding-phase
  (|#%name|
   full-module-binding-phase
   (record-accessor struct:full-module-binding 1)))
(define full-module-binding-sym
  (|#%name|
   full-module-binding-sym
   (record-accessor struct:full-module-binding 2)))
(define full-module-binding-nominal-module
  (|#%name|
   full-module-binding-nominal-module
   (record-accessor struct:full-module-binding 3)))
(define full-module-binding-nominal-phase+space
  (|#%name|
   full-module-binding-nominal-phase+space
   (record-accessor struct:full-module-binding 4)))
(define full-module-binding-nominal-sym
  (|#%name|
   full-module-binding-nominal-sym
   (record-accessor struct:full-module-binding 5)))
(define full-module-binding-nominal-require-phase+space-shift
  (|#%name|
   full-module-binding-nominal-require-phase+space-shift
   (record-accessor struct:full-module-binding 6)))
(define full-module-binding-extra-inspector
  (|#%name|
   full-module-binding-extra-inspector
   (record-accessor struct:full-module-binding 7)))
(define full-module-binding-extra-nominal-bindings
  (|#%name|
   full-module-binding-extra-nominal-bindings
   (record-accessor struct:full-module-binding 8)))
(define finish_2371
  (make-struct-type-install-properties
   '(simple-module-binding)
   4
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (b_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2755)
         (|#%app| ser-push!_0 (simple-module-binding-module b_0))
         (|#%app| ser-push!_0 (simple-module-binding-sym b_0))
         (|#%app| ser-push!_0 (simple-module-binding-phase b_0))
         (|#%app| ser-push!_0 (simple-module-binding-nominal-module b_0))))))
   #f
   #f
   '(0 1 2 3)
   #f
   'simple-module-binding))
(define struct:simple-module-binding
  (make-record-type-descriptor
   'simple-module-binding
   #f
   (|#%nongenerative-uid| simple-module-binding)
   #f
   #f
   '(4 . 0)))
(define effect_2891 (finish_2371 struct:simple-module-binding))
(define simple-module-binding46.1
  (|#%name|
   simple-module-binding
   (record-constructor
    (make-record-constructor-descriptor struct:simple-module-binding #f #f))))
(define simple-module-binding?
  (|#%name|
   simple-module-binding?
   (record-predicate struct:simple-module-binding)))
(define simple-module-binding-module
  (|#%name|
   simple-module-binding-module
   (record-accessor struct:simple-module-binding 0)))
(define simple-module-binding-phase
  (|#%name|
   simple-module-binding-phase
   (record-accessor struct:simple-module-binding 1)))
(define simple-module-binding-sym
  (|#%name|
   simple-module-binding-sym
   (record-accessor struct:simple-module-binding 2)))
(define simple-module-binding-nominal-module
  (|#%name|
   simple-module-binding-nominal-module
   (record-accessor struct:simple-module-binding 3)))
(define deserialize-full-module-binding
  (lambda (module_0
           sym_0
           phase_0
           nominal-module_0
           nominal-phase+space_0
           nominal-sym_0
           nominal-require-phase+space-shift_0
           free=id_0
           extra-inspector_0
           extra-nominal-bindings_0)
    (let ((temp66_0 (intern-phase+space nominal-phase+space_0)))
      (let ((temp68_0
             (intern-phase+space-shift nominal-require-phase+space-shift_0)))
        (let ((temp66_1 temp66_0))
          (make-module-binding.1
           extra-inspector_0
           extra-nominal-bindings_0
           #f
           free=id_0
           nominal-module_0
           temp66_1
           temp68_0
           nominal-sym_0
           module_0
           phase_0
           sym_0))))))
(define deserialize-simple-module-binding
  (lambda (module_0 sym_0 phase_0 nominal-module_0)
    (simple-module-binding46.1 module_0 phase_0 sym_0 nominal-module_0)))
(define module-binding-module
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      (simple-module-binding-module b_0)
      (full-module-binding-module b_0))))
(define module-binding-phase
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      (simple-module-binding-phase b_0)
      (full-module-binding-phase b_0))))
(define module-binding-sym
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      (simple-module-binding-sym b_0)
      (full-module-binding-sym b_0))))
(define module-binding-nominal-module
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      (simple-module-binding-nominal-module b_0)
      (full-module-binding-nominal-module b_0))))
(define module-binding-nominal-phase+space
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      (simple-module-binding-phase b_0)
      (full-module-binding-nominal-phase+space b_0))))
(define module-binding-nominal-sym
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      (simple-module-binding-sym b_0)
      (full-module-binding-nominal-sym b_0))))
(define module-binding-nominal-require-phase+space-shift
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      0
      (full-module-binding-nominal-require-phase+space-shift b_0))))
(define module-binding-extra-inspector
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      #f
      (full-module-binding-extra-inspector b_0))))
(define module-binding-extra-nominal-bindings
  (lambda (b_0)
    (if (simple-module-binding? b_0)
      null
      (full-module-binding-extra-nominal-bindings b_0))))
(define finish_2061
  (make-struct-type-install-properties
   '(like-ambiguous-binding)
   0
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (b_0 ser-push!_0 state_0) (|#%app| ser-push!_0 'tag kw2335))))
   #f
   #f
   '()
   #f
   'like-ambiguous-binding))
(define struct:like-ambiguous-binding
  (make-record-type-descriptor
   'like-ambiguous-binding
   #f
   (|#%nongenerative-uid| like-ambiguous-binding)
   #f
   #f
   '(0 . 0)))
(define effect_2690 (finish_2061 struct:like-ambiguous-binding))
(define like-ambiguous-binding1.1
  (|#%name|
   like-ambiguous-binding
   (record-constructor
    (make-record-constructor-descriptor struct:like-ambiguous-binding #f #f))))
(define like-ambiguous-binding?
  (|#%name|
   like-ambiguous-binding?
   (record-predicate struct:like-ambiguous-binding)))
(define empty-binding-table hash2610)
(define finish_2494
  (make-struct-type-install-properties
   '(table-with-bulk-bindings)
   3
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (twbb_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2169)
         (|#%app| ser-push!_0 (table-with-bulk-bindings-syms/serialize twbb_0))
         (|#%app|
          ser-push!_0
          (table-with-bulk-bindings-bulk-bindings twbb_0))))))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'table-with-bulk-bindings))
(define struct:table-with-bulk-bindings
  (make-record-type-descriptor
   'table-with-bulk-bindings
   #f
   (|#%nongenerative-uid| table-with-bulk-bindings)
   #f
   #f
   '(3 . 0)))
(define effect_2950 (finish_2494 struct:table-with-bulk-bindings))
(define table-with-bulk-bindings1.1
  (|#%name|
   table-with-bulk-bindings
   (record-constructor
    (make-record-constructor-descriptor
     struct:table-with-bulk-bindings
     #f
     #f))))
(define table-with-bulk-bindings?
  (|#%name|
   table-with-bulk-bindings?
   (record-predicate struct:table-with-bulk-bindings)))
(define table-with-bulk-bindings-syms
  (|#%name|
   table-with-bulk-bindings-syms
   (record-accessor struct:table-with-bulk-bindings 0)))
(define table-with-bulk-bindings-syms/serialize
  (|#%name|
   table-with-bulk-bindings-syms/serialize
   (record-accessor struct:table-with-bulk-bindings 1)))
(define table-with-bulk-bindings-bulk-bindings
  (|#%name|
   table-with-bulk-bindings-bulk-bindings
   (record-accessor struct:table-with-bulk-bindings 2)))
(define deserialize-table-with-bulk-bindings
  (lambda (syms_0 bulk-bindings_0)
    (table-with-bulk-bindings1.1 syms_0 syms_0 bulk-bindings_0)))
(define finish_2866
  (make-struct-type-install-properties
   '(bulk-binding-at)
   2
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:reach-scopes
     (lambda (sms_0 extra-scopes_0 reach_0) (error "shouldn't get here")))
    (cons
     prop:serialize
     (lambda (bba_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2707)
         (|#%app| ser-push!_0 (bulk-binding-at-scopes bba_0))
         (|#%app| ser-push!_0 (bulk-binding-at-bulk bba_0))))))
   (current-inspector)
   #f
   '(0 1)
   #f
   'bulk-binding-at))
(define struct:bulk-binding-at
  (make-record-type-descriptor
   'bulk-binding-at
   #f
   (|#%nongenerative-uid| bulk-binding-at)
   #f
   #f
   '(2 . 0)))
(define effect_2253 (finish_2866 struct:bulk-binding-at))
(define bulk-binding-at2.1
  (|#%name|
   bulk-binding-at
   (record-constructor
    (make-record-constructor-descriptor struct:bulk-binding-at #f #f))))
(define bulk-binding-at?
  (|#%name| bulk-binding-at? (record-predicate struct:bulk-binding-at)))
(define bulk-binding-at-scopes
  (|#%name| bulk-binding-at-scopes (record-accessor struct:bulk-binding-at 0)))
(define bulk-binding-at-bulk
  (|#%name| bulk-binding-at-bulk (record-accessor struct:bulk-binding-at 1)))
(define deserialize-bulk-binding-at
  (lambda (scopes_0 bulk_0) (bulk-binding-at2.1 scopes_0 bulk_0)))
(define-values
 (prop:bulk-binding bulk-binding?$1 bulk-binding-ref)
 (make-struct-type-property 'bulk-binding))
(define finish_2649
  (make-struct-type-install-properties
   '(bulk-binding-class)
   3
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'bulk-binding-class))
(define struct:bulk-binding-class
  (make-record-type-descriptor
   'bulk-binding-class
   #f
   (|#%nongenerative-uid| bulk-binding-class)
   #f
   #f
   '(3 . 0)))
(define effect_2841 (finish_2649 struct:bulk-binding-class))
(define bulk-binding-class3.1
  (|#%name|
   bulk-binding-class
   (record-constructor
    (make-record-constructor-descriptor struct:bulk-binding-class #f #f))))
(define bulk-binding-class?_2308
  (|#%name| bulk-binding-class? (record-predicate struct:bulk-binding-class)))
(define bulk-binding-class?
  (|#%name|
   bulk-binding-class?
   (lambda (v)
     (if (bulk-binding-class?_2308 v)
       #t
       ($value
        (if (impersonator? v)
          (bulk-binding-class?_2308 (impersonator-val v))
          #f))))))
(define bulk-binding-class-get-symbols_2451
  (|#%name|
   bulk-binding-class-get-symbols
   (record-accessor struct:bulk-binding-class 0)))
(define bulk-binding-class-get-symbols
  (|#%name|
   bulk-binding-class-get-symbols
   (lambda (s)
     (if (bulk-binding-class?_2308 s)
       (bulk-binding-class-get-symbols_2451 s)
       ($value
        (impersonate-ref
         bulk-binding-class-get-symbols_2451
         struct:bulk-binding-class
         0
         s
         'get-symbols))))))
(define bulk-binding-class-create_3361
  (|#%name|
   bulk-binding-class-create
   (record-accessor struct:bulk-binding-class 1)))
(define bulk-binding-class-create
  (|#%name|
   bulk-binding-class-create
   (lambda (s)
     (if (bulk-binding-class?_2308 s)
       (bulk-binding-class-create_3361 s)
       ($value
        (impersonate-ref
         bulk-binding-class-create_3361
         struct:bulk-binding-class
         1
         s
         'create))))))
(define bulk-binding-class-modname_2547
  (|#%name|
   bulk-binding-class-modname
   (record-accessor struct:bulk-binding-class 2)))
(define bulk-binding-class-modname
  (|#%name|
   bulk-binding-class-modname
   (lambda (s)
     (if (bulk-binding-class?_2308 s)
       (bulk-binding-class-modname_2547 s)
       ($value
        (impersonate-ref
         bulk-binding-class-modname_2547
         struct:bulk-binding-class
         2
         s
         'modname))))))
(define bulk-binding-symbols
  (lambda (b_0 s_0 extra-shifts_0)
    (let ((app_0 (bulk-binding-class-get-symbols (bulk-binding-ref b_0))))
      (|#%app|
       app_0
       b_0
       (append extra-shifts_0 (if s_0 (syntax-mpi-shifts s_0) null))))))
(define bulk-binding-create
  (lambda (b_0) (bulk-binding-class-create (bulk-binding-ref b_0))))
(define force-bulk-bindings
  (lambda (b_0 bulk-shifts_0)
    (let ((modname-ht_0 (car bulk-shifts_0)))
      (let ((extra-shifts_0 (cdr bulk-shifts_0)))
        (begin
          (hash-set!
           modname-ht_0
           b_0
           (|#%app|
            (bulk-binding-class-modname (bulk-binding-ref b_0))
            b_0
            extra-shifts_0))
          (bulk-binding-symbols b_0 #f extra-shifts_0))))))
(define binding-table-empty?
  (lambda (bt_0) (if (hash? bt_0) (zero? (hash-count bt_0)) #f)))
(define binding-table-add
  (lambda (bt_0 scopes_0 sym_0 binding_0 just-for-nominal?_0)
    (if (hash? bt_0)
      (hash-set
       bt_0
       sym_0
       (hash-set (hash-ref bt_0 sym_0 hash2725) scopes_0 binding_0))
      (let ((new-syms_0
             (binding-table-add
              (table-with-bulk-bindings-syms bt_0)
              scopes_0
              sym_0
              binding_0
              just-for-nominal?_0)))
        (let ((new-syms/serialize_0
               (if just-for-nominal?_0
                 (table-with-bulk-bindings-syms/serialize bt_0)
                 (if (eq?
                      (table-with-bulk-bindings-syms bt_0)
                      (table-with-bulk-bindings-syms/serialize bt_0))
                   new-syms_0
                   (binding-table-add
                    (table-with-bulk-bindings-syms/serialize bt_0)
                    scopes_0
                    sym_0
                    binding_0
                    #f)))))
          (if (table-with-bulk-bindings? bt_0)
            (table-with-bulk-bindings1.1
             new-syms_0
             new-syms/serialize_0
             (table-with-bulk-bindings-bulk-bindings bt_0))
            (raise-argument-error
             'struct-copy
             "table-with-bulk-bindings?"
             bt_0)))))))
(define-values
 (prop:implicitly-reachable implicitly-reachable? implicitly-reachable-ref)
 (make-struct-type-property 'implicitly-reachable))
(define binding-table-add-bulk.1
  (|#%name|
   binding-table-add-bulk
   (lambda (shadow-except4_0 bt6_0 scopes7_0 bulk8_0)
     (begin
       (if (table-with-bulk-bindings? bt6_0)
         (let ((new-syms_0
                (let ((temp37_0 (table-with-bulk-bindings-syms bt6_0)))
                  (remove-matching-bindings.1
                   shadow-except4_0
                   temp37_0
                   scopes7_0
                   bulk8_0))))
           (let ((new-syms/serialize_0
                  (if (eq?
                       (table-with-bulk-bindings-syms bt6_0)
                       (table-with-bulk-bindings-syms/serialize bt6_0))
                    new-syms_0
                    (let ((temp41_0
                           (table-with-bulk-bindings-syms/serialize bt6_0)))
                      (remove-matching-bindings.1
                       shadow-except4_0
                       temp41_0
                       scopes7_0
                       bulk8_0)))))
             (table-with-bulk-bindings1.1
              new-syms_0
              new-syms/serialize_0
              (cons
               (bulk-binding-at2.1 scopes7_0 bulk8_0)
               (table-with-bulk-bindings-bulk-bindings bt6_0)))))
         (let ((temp45_0 (table-with-bulk-bindings1.1 bt6_0 bt6_0 null)))
           (binding-table-add-bulk.1 #f temp45_0 scopes7_0 bulk8_0)))))))
(define remove-matching-bindings.1
  (|#%name|
   remove-matching-bindings
   (lambda (except10_0 syms12_0 scopes13_0 bulk14_0)
     (begin
       (let ((bulk-symbols_0 (bulk-binding-symbols bulk14_0 #f null)))
         (if (let ((app_0 (hash-count syms12_0)))
               (< app_0 (hash-count bulk-symbols_0)))
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (syms_0 i_0)
                   (begin
                     (if i_0
                       (call-with-values
                        (lambda ()
                          (unsafe-immutable-hash-iterate-key+value
                           syms12_0
                           i_0))
                        (case-lambda
                         ((sym_0 sym-bindings_0)
                          (let ((syms_1
                                 (let ((syms_1
                                        (if (hash-ref bulk-symbols_0 sym_0 #f)
                                          (remove-matching-binding.1
                                           except10_0
                                           syms_0
                                           sym_0
                                           sym-bindings_0
                                           scopes13_0)
                                          syms_0)))
                                   (values syms_1))))
                            (for-loop_0
                             syms_1
                             (unsafe-immutable-hash-iterate-next
                              syms12_0
                              i_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       syms_0))))))
              (for-loop_0
               syms12_0
               (unsafe-immutable-hash-iterate-first syms12_0))))
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (syms_0 i_0)
                   (begin
                     (if i_0
                       (let ((sym_0
                              (unsafe-immutable-hash-iterate-key
                               bulk-symbols_0
                               i_0)))
                         (let ((syms_1
                                (let ((syms_1
                                       (let ((sym-bindings_0
                                              (hash-ref syms_0 sym_0 #f)))
                                         (if sym-bindings_0
                                           (remove-matching-binding.1
                                            except10_0
                                            syms_0
                                            sym_0
                                            sym-bindings_0
                                            scopes13_0)
                                           syms_0))))
                                  (values syms_1))))
                           (for-loop_0
                            syms_1
                            (unsafe-immutable-hash-iterate-next
                             bulk-symbols_0
                             i_0))))
                       syms_0))))))
              (for-loop_0
               syms12_0
               (unsafe-immutable-hash-iterate-first bulk-symbols_0))))))))))
(define remove-matching-binding.1
  (|#%name|
   remove-matching-binding
   (lambda (except16_0 syms18_0 sym19_0 sym-bindings20_0 scopes21_0)
     (begin
       (if (if except16_0
             (let ((b_0 (hash-ref sym-bindings20_0 scopes21_0 #f)))
               (let ((or-part_0
                      (if (module-binding? b_0)
                        (eq? except16_0 (module-binding-module b_0))
                        #f)))
                 (if or-part_0 or-part_0 (like-ambiguous-binding? b_0))))
             #f)
         syms18_0
         (hash-set
          syms18_0
          sym19_0
          (hash-remove sym-bindings20_0 scopes21_0)))))))
(define next-state-in-full-binding-table
  (lambda (sym-ht_0 sym-i_0)
    (if sym-i_0
      (let ((ht_0 (hash-iterate-value sym-ht_0 sym-i_0)))
        (let ((i_0 (hash-iterate-first ht_0)))
          (if i_0
            (cons
             (vector sym-i_0 (hash-iterate-key sym-ht_0 sym-i_0) ht_0)
             i_0)
            (next-state-in-full-binding-table
             sym-ht_0
             (hash-iterate-next sym-ht_0 sym-i_0)))))
      '(#f . #f))))
(define binding-table-symbols.1
  (|#%name|
   binding-table-symbols
   (lambda (exactly?24_0
            only-interned?23_0
            table27_0
            scs28_0
            s29_0
            extra-shifts30_0)
     (begin
       (call-with-values
        (lambda ()
          (if (hash? table27_0)
            (values table27_0 null)
            (values
             (table-with-bulk-bindings-syms table27_0)
             (table-with-bulk-bindings-bulk-bindings table27_0))))
        (case-lambda
         ((ht_0 bulk-bindings_0)
          (let ((app_0
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (table_0 i_0)
                         (begin
                           (if i_0
                             (call-with-values
                              (lambda () (hash-iterate-key+value ht_0 i_0))
                              (case-lambda
                               ((sym_0 at-sym_0)
                                (let ((table_1
                                       (if (let ((or-part_0
                                                  (not only-interned?23_0)))
                                             (if or-part_0
                                               or-part_0
                                               (symbol-interned? sym_0)))
                                         (if (begin
                                               (letrec*
                                                ((for-loop_1
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (result_0 i_1)
                                                     (begin
                                                       (if i_1
                                                         (let ((an-scs_0
                                                                (hash-iterate-key
                                                                 at-sym_0
                                                                 i_1)))
                                                           (let ((result_1
                                                                  (let ((result_1
                                                                         (if exactly?24_0
                                                                           (set=?
                                                                            an-scs_0
                                                                            scs28_0)
                                                                           (begin-unsafe
                                                                            (hash-keys-subset?
                                                                             an-scs_0
                                                                             scs28_0)))))
                                                                    (values
                                                                     result_1))))
                                                             (if (if (not
                                                                      (let ((x_0
                                                                             (list
                                                                              an-scs_0)))
                                                                        result_1))
                                                                   #t
                                                                   #f)
                                                               (for-loop_1
                                                                result_1
                                                                (hash-iterate-next
                                                                 at-sym_0
                                                                 i_1))
                                                               result_1)))
                                                         result_0))))))
                                                (for-loop_1
                                                 #f
                                                 (hash-iterate-first
                                                  at-sym_0))))
                                           (let ((table_1
                                                  (call-with-values
                                                   (lambda ()
                                                     (values sym_0 #t))
                                                   (case-lambda
                                                    ((key_0 val_0)
                                                     (hash-set
                                                      table_0
                                                      key_0
                                                      val_0))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args))))))
                                             (values table_1))
                                           table_0)
                                         table_0)))
                                  (for-loop_0
                                   table_1
                                   (hash-iterate-next ht_0 i_0))))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             table_0))))))
                    (for-loop_0 hash2610 (hash-iterate-first ht_0))))))
            (set-union
             app_0
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (table_0 lst_0)
                     (begin
                       (if (pair? lst_0)
                         (let ((bba_0 (unsafe-car lst_0)))
                           (let ((rest_0 (unsafe-cdr lst_0)))
                             (let ((table_1
                                    (if (if exactly?24_0
                                          (set=?
                                           (bulk-binding-at-scopes bba_0)
                                           scs28_0)
                                          (let ((s1_0
                                                 (bulk-binding-at-scopes
                                                  bba_0)))
                                            (begin-unsafe
                                             (hash-keys-subset?
                                              s1_0
                                              scs28_0))))
                                      (let ((ht_1
                                             (bulk-binding-symbols
                                              (bulk-binding-at-bulk bba_0)
                                              s29_0
                                              extra-shifts30_0)))
                                        (begin
                                          (letrec*
                                           ((for-loop_1
                                             (|#%name|
                                              for-loop
                                              (lambda (table_1 i_0)
                                                (begin
                                                  (if i_0
                                                    (let ((sym_0
                                                           (hash-iterate-key
                                                            ht_1
                                                            i_0)))
                                                      (let ((table_2
                                                             (if (let ((or-part_0
                                                                        (not
                                                                         only-interned?23_0)))
                                                                   (if or-part_0
                                                                     or-part_0
                                                                     (symbol-interned?
                                                                      sym_0)))
                                                               (let ((table_2
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (values
                                                                          sym_0
                                                                          #t))
                                                                       (case-lambda
                                                                        ((key_0
                                                                          val_0)
                                                                         (hash-set
                                                                          table_1
                                                                          key_0
                                                                          val_0))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args))))))
                                                                 (values
                                                                  table_2))
                                                               table_1)))
                                                        (for-loop_1
                                                         table_2
                                                         (hash-iterate-next
                                                          ht_1
                                                          i_0))))
                                                    table_1))))))
                                           (for-loop_1
                                            table_0
                                            (hash-iterate-first ht_1)))))
                                      table_0)))
                               (for-loop_0 table_1 rest_0))))
                         table_0))))))
                (for-loop_0 hash2610 bulk-bindings_0))))))
         (args (raise-binding-result-arity-error 2 args))))))))
(define binding-table-prune-to-reachable
  (lambda (bt_0 state_0)
    (let ((or-part_0
           (hash-ref (serialize-state-bindings-intern state_0) bt_0 #f)))
      (if or-part_0
        or-part_0
        (let ((reachable-scopes_0 (serialize-state-reachable-scopes state_0)))
          (let ((new-syms_0
                 (let ((ht_0
                        (if (hash? bt_0)
                          bt_0
                          (table-with-bulk-bindings-syms/serialize bt_0))))
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (table_0 i_0)
                           (begin
                             (if i_0
                               (call-with-values
                                (lambda ()
                                  (unsafe-immutable-hash-iterate-key+value
                                   ht_0
                                   i_0))
                                (case-lambda
                                 ((sym_0 bindings-for-sym_0)
                                  (let ((table_1
                                         (let ((id*_0
                                                (begin
                                                  (letrec*
                                                   ((for-loop_1
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (table_1 i_1)
                                                        (begin
                                                          (if i_1
                                                            (call-with-values
                                                             (lambda ()
                                                               (unsafe-immutable-hash-iterate-key+value
                                                                bindings-for-sym_0
                                                                i_1))
                                                             (case-lambda
                                                              ((scopes_0
                                                                binding_0)
                                                               (let ((table_2
                                                                      (if (begin-unsafe
                                                                           (hash-keys-subset?
                                                                            scopes_0
                                                                            reachable-scopes_0))
                                                                        (let ((table_2
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (values
                                                                                   (intern-scopes
                                                                                    scopes_0
                                                                                    state_0)
                                                                                   binding_0))
                                                                                (case-lambda
                                                                                 ((key_0
                                                                                   val_0)
                                                                                  (hash-set
                                                                                   table_1
                                                                                   key_0
                                                                                   val_0))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args))))))
                                                                          (values
                                                                           table_2))
                                                                        table_1)))
                                                                 (for-loop_1
                                                                  table_2
                                                                  (unsafe-immutable-hash-iterate-next
                                                                   bindings-for-sym_0
                                                                   i_1))))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args))))
                                                            table_1))))))
                                                   (for-loop_1
                                                    hash2725
                                                    (unsafe-immutable-hash-iterate-first
                                                     bindings-for-sym_0))))))
                                           (begin
                                             #t
                                             (letrec*
                                              ((for-loop_1
                                                (|#%name|
                                                 for-loop
                                                 (lambda (table_1)
                                                   (begin
                                                     (let ((table_2
                                                            (if (positive?
                                                                 (hash-count
                                                                  id*_0))
                                                              (let ((table_2
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (values
                                                                         sym_0
                                                                         id*_0))
                                                                      (case-lambda
                                                                       ((key_0
                                                                         val_0)
                                                                        (hash-set
                                                                         table_1
                                                                         key_0
                                                                         val_0))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))
                                                                (values
                                                                 table_2))
                                                              table_1)))
                                                       table_2))))))
                                              (for-loop_1 table_0))))))
                                    (for-loop_0
                                     table_1
                                     (unsafe-immutable-hash-iterate-next
                                      ht_0
                                      i_0))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               table_0))))))
                      (for-loop_0
                       hash2610
                       (unsafe-immutable-hash-iterate-first ht_0)))))))
            (let ((new-bulk-bindings_0
                   (if (hash? bt_0)
                     null
                     (reverse$1
                      (let ((lst_0
                             (table-with-bulk-bindings-bulk-bindings bt_0)))
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (fold-var_0 lst_1)
                                (begin
                                  (if (pair? lst_1)
                                    (let ((bba_0 (unsafe-car lst_1)))
                                      (let ((rest_0 (unsafe-cdr lst_1)))
                                        (let ((fold-var_1
                                               (if (let ((s1_0
                                                          (bulk-binding-at-scopes
                                                           bba_0)))
                                                     (begin-unsafe
                                                      (hash-keys-subset?
                                                       s1_0
                                                       reachable-scopes_0)))
                                                 (let ((fold-var_1
                                                        (cons
                                                         (if (bulk-binding-at?
                                                              bba_0)
                                                           (let ((scopes58_0
                                                                  (intern-scopes
                                                                   (bulk-binding-at-scopes
                                                                    bba_0)
                                                                   state_0)))
                                                             (bulk-binding-at2.1
                                                              scopes58_0
                                                              (bulk-binding-at-bulk
                                                               bba_0)))
                                                           (raise-argument-error
                                                            'struct-copy
                                                            "bulk-binding-at?"
                                                            bba_0))
                                                         fold-var_0)))
                                                   (values fold-var_1))
                                                 fold-var_0)))
                                          (for-loop_0 fold-var_1 rest_0))))
                                    fold-var_0))))))
                           (for-loop_0 null lst_0))))))))
              (let ((new-bt_0
                     (if (pair? new-bulk-bindings_0)
                       (table-with-bulk-bindings1.1
                        new-syms_0
                        new-syms_0
                        new-bulk-bindings_0)
                       new-syms_0)))
                (begin
                  (hash-set!
                   (serialize-state-bulk-bindings-intern state_0)
                   bt_0
                   new-bt_0)
                  new-bt_0)))))))))
(define binding-table-register-reachable
  (lambda (bt_0
           get-reachable-scopes_0
           bulk-shifts_0
           reach_0
           register-trigger_0)
    (begin
      (let ((ht_0
             (if (hash? bt_0)
               bt_0
               (table-with-bulk-bindings-syms/serialize bt_0))))
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (i_0)
                (begin
                  (if i_0
                    (call-with-values
                     (lambda ()
                       (unsafe-immutable-hash-iterate-key+value ht_0 i_0))
                     (case-lambda
                      ((sym_0 bindings-for-sym_0)
                       (call-with-values
                        (lambda ()
                          (begin
                            (letrec*
                             ((for-loop_1
                               (|#%name|
                                for-loop
                                (lambda (i_1)
                                  (begin
                                    (if i_1
                                      (call-with-values
                                       (lambda ()
                                         (unsafe-immutable-hash-iterate-key+value
                                          bindings-for-sym_0
                                          i_1))
                                       (case-lambda
                                        ((scopes_0 binding_0)
                                         (begin
                                           (let ((v_0
                                                  (if (binding-reach-scopes?
                                                       binding_0)
                                                    (|#%app|
                                                     (binding-reach-scopes-ref
                                                      binding_0)
                                                     binding_0)
                                                    #f)))
                                             (scopes-register-reachable
                                              scopes_0
                                              v_0
                                              get-reachable-scopes_0
                                              bulk-shifts_0
                                              reach_0
                                              register-trigger_0))
                                           (for-loop_1
                                            (unsafe-immutable-hash-iterate-next
                                             bindings-for-sym_0
                                             i_1))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (values)))))))
                             (for-loop_1
                              (unsafe-immutable-hash-iterate-first
                               bindings-for-sym_0)))))
                        (case-lambda
                         (()
                          (for-loop_0
                           (unsafe-immutable-hash-iterate-next ht_0 i_0)))
                         (args (raise-binding-result-arity-error 0 args)))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (values)))))))
           (for-loop_0 (unsafe-immutable-hash-iterate-first ht_0)))))
      (void)
      (if (table-with-bulk-bindings? bt_0)
        (begin
          (let ((lst_0 (table-with-bulk-bindings-bulk-bindings bt_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((bba_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (begin
                              (begin
                                (if bulk-shifts_0
                                  (force-bulk-bindings
                                   (bulk-binding-at-bulk bba_0)
                                   bulk-shifts_0)
                                  (void))
                                (scopes-register-reachable
                                 (bulk-binding-at-scopes bba_0)
                                 #f
                                 get-reachable-scopes_0
                                 bulk-shifts_0
                                 reach_0
                                 register-trigger_0))
                              (for-loop_0 rest_0))))
                        (values)))))))
               (for-loop_0 lst_0))))
          (void))
        (void)))))
(define scopes-register-reachable
  (lambda (scopes_0
           v_0
           get-reachable-scopes_0
           bulk-shifts_0
           reach_0
           register-trigger_0)
    (let ((reachable-scopes_0 (|#%app| get-reachable-scopes_0)))
      (if (begin-unsafe (hash-keys-subset? scopes_0 reachable-scopes_0))
        (|#%app| reach_0 v_0 bulk-shifts_0)
        (let ((pending-scopes_0
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (table_0 i_0)
                       (begin
                         (if i_0
                           (let ((sc_0
                                  (unsafe-immutable-hash-iterate-key
                                   scopes_0
                                   i_0)))
                             (let ((table_1
                                    (if (let ((or-part_0
                                               (begin-unsafe
                                                (hash-ref
                                                 reachable-scopes_0
                                                 sc_0
                                                 #f))))
                                          (if or-part_0
                                            or-part_0
                                            (implicitly-reachable? sc_0)))
                                      table_0
                                      (let ((table_1
                                             (call-with-values
                                              (lambda () (values sc_0 #t))
                                              (case-lambda
                                               ((key_0 val_0)
                                                (hash-set table_0 key_0 val_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))))
                                        (values table_1)))))
                               (for-loop_0
                                table_1
                                (unsafe-immutable-hash-iterate-next
                                 scopes_0
                                 i_0))))
                           table_0))))))
                  (for-loop_0
                   hash2610
                   (unsafe-immutable-hash-iterate-first scopes_0))))))
          (let ((check-trigger_0
                 (|#%name|
                  check-trigger
                  (lambda (reach_1)
                    (begin
                      (if (zero? (hash-count pending-scopes_0))
                        (begin
                          (|#%app| reach_1 v_0 bulk-shifts_0)
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (i_0)
                                  (begin
                                    (if i_0
                                      (let ((sc_0
                                             (unsafe-immutable-hash-iterate-key
                                              scopes_0
                                              i_0)))
                                        (begin
                                          (if (implicitly-reachable? sc_0)
                                            (|#%app|
                                             reach_1
                                             sc_0
                                             bulk-shifts_0)
                                            (void))
                                          (for-loop_0
                                           (unsafe-immutable-hash-iterate-next
                                            scopes_0
                                            i_0))))
                                      (values)))))))
                             (for-loop_0
                              (unsafe-immutable-hash-iterate-first scopes_0))))
                          (void))
                        (void)))))))
            (begin
              (let ((ht_0 pending-scopes_0))
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (i_0)
                        (begin
                          (if i_0
                            (let ((sc_0
                                   (unsafe-immutable-hash-iterate-key
                                    ht_0
                                    i_0)))
                              (begin
                                (|#%app|
                                 register-trigger_0
                                 sc_0
                                 (lambda (reach_1)
                                   (begin
                                     (set! pending-scopes_0
                                       (hash-remove pending-scopes_0 sc_0))
                                     (check-trigger_0 reach_1))))
                                (for-loop_0
                                 (unsafe-immutable-hash-iterate-next
                                  ht_0
                                  i_0))))
                            (values)))))))
                   (for-loop_0 (unsafe-immutable-hash-iterate-first ht_0)))))
              (void)
              (check-trigger_0 reach_0))))))))
(define taint-content
  (lambda (d_0)
    (let ((f_0 (|#%name| f (lambda (tail?_0 x_0) (begin x_0)))))
      (let ((s->_0
             (|#%name|
              s->
              (lambda (sub-s_0)
                (begin
                  (if (syntax-taintness sub-s_0)
                    sub-s_0
                    (let ((t_0 (tainted-for-content (syntax-content sub-s_0))))
                      (let ((content*_0 (syntax-content* sub-s_0)))
                        (let ((content_0
                               (if (modified-content? content*_0)
                                 (modified-content-content content*_0)
                                 content*_0)))
                          (let ((p_0
                                 (if (modified-content? content*_0)
                                   (modified-content-scope-propagations+taint
                                    content*_0)
                                   #f)))
                            (if (syntax?$1 sub-s_0)
                              (let ((content*1_0
                                     (let ((new-p_0
                                            (if (taint? p_0)
                                              t_0
                                              (|#%app|
                                               (propagation-set-taint-ref p_0)
                                               p_0
                                               t_0))))
                                       (if new-p_0
                                         (modified-content1.1
                                          content_0
                                          new-p_0)
                                         content_0))))
                                (syntax2.1
                                 content*1_0
                                 (syntax-scopes sub-s_0)
                                 (syntax-shifted-multi-scopes sub-s_0)
                                 (syntax-mpi-shifts sub-s_0)
                                 (syntax-srcloc$1 sub-s_0)
                                 (syntax-props sub-s_0)
                                 (syntax-inspector sub-s_0)))
                              (raise-argument-error
                               'struct-copy
                               "syntax?"
                               sub-s_0))))))))))))
        (let ((f_1 f_0))
          (let ((gf_0
                 (|#%name|
                  gf
                  (lambda (tail?_0 v_0)
                    (begin
                      (if (syntax?$1 v_0)
                        (s->_0 v_0)
                        (begin-unsafe (begin v_0))))))))
            (letrec*
             ((loop_0
               (|#%name|
                loop
                (lambda (tail?_0 s_0 prev-depth_0)
                  (begin
                    (let ((depth_0 (fx+ 1 prev-depth_0)))
                      (if (null? s_0)
                        (begin-unsafe (begin s_0))
                        (if (pair? s_0)
                          (let ((x_0
                                 (let ((app_0 (loop_0 #f (car s_0) depth_0)))
                                   (cons app_0 (loop_0 1 (cdr s_0) depth_0)))))
                            (begin-unsafe (begin x_0)))
                          (if (symbol? s_0)
                            (begin-unsafe (begin s_0))
                            (if (boolean? s_0)
                              (begin-unsafe (begin s_0))
                              (if (number? s_0)
                                (begin-unsafe (begin s_0))
                                (if (let ((or-part_0 (vector? s_0)))
                                      (if or-part_0
                                        or-part_0
                                        (let ((or-part_1 (box? s_0)))
                                          (if or-part_1
                                            or-part_1
                                            (let ((or-part_2
                                                   (prefab-struct-key s_0)))
                                              (if or-part_2
                                                or-part_2
                                                (hash? s_0)))))))
                                  (datum-map-slow
                                   tail?_0
                                   s_0
                                   (lambda (tail?_1 s_1) (gf_0 tail?_1 s_1))
                                   #f
                                   #f)
                                  (gf_0 #f s_0)))))))))))))
             (loop_0 #f d_0 0))))))))
(define syntax-tainted?$1
  (|#%name|
   syntax-tainted?
   (lambda (s_0) (begin (if (syntax-taintness s_0) #t #f)))))
(define syntax-clean? (lambda (s_0) (not (syntax-taintness s_0))))
(define syntax-taint$1
  (|#%name|
   syntax-taint
   (lambda (s_0)
     (begin
       (if (syntax-taintness s_0)
         s_0
         (let ((t_0 (tainted-for-content (syntax-content s_0))))
           (let ((content*_0 (syntax-content* s_0)))
             (let ((content_0
                    (if (modified-content? content*_0)
                      (modified-content-content content*_0)
                      content*_0)))
               (let ((p_0
                      (if (modified-content? content*_0)
                        (modified-content-scope-propagations+taint content*_0)
                        #f)))
                 (if (syntax?$1 s_0)
                   (let ((content*2_0
                          (let ((new-p_0
                                 (if (taint? p_0)
                                   t_0
                                   (|#%app|
                                    (propagation-set-taint-ref p_0)
                                    p_0
                                    t_0))))
                            (if new-p_0
                              (modified-content1.1 content_0 new-p_0)
                              content_0))))
                     (syntax2.1
                      content*2_0
                      (syntax-scopes s_0)
                      (syntax-shifted-multi-scopes s_0)
                      (syntax-mpi-shifts s_0)
                      (syntax-srcloc$1 s_0)
                      (syntax-props s_0)
                      (syntax-inspector s_0)))
                   (raise-argument-error 'struct-copy "syntax?" s_0)))))))))))
(define syntax-property$1
  (|#%name|
   syntax-property
   (case-lambda
    ((s_0 key_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-property "syntax?" s_0))
         (let ((v_0 (hash-ref (syntax-props s_0) key_0 #f)))
           (let ((plain-v_0 (plain-property-value v_0)))
             (if (syntax-taintness s_0)
               (taint-content plain-v_0)
               plain-v_0))))))
    ((s_0 key_0 val_0)
     (begin
       (if (syntax?$1 s_0)
         (void)
         (raise-argument-error 'syntax-property "syntax?" s_0))
       (let ((pval_0
              (if (eq? key_0 'paren-shape)
                (preserved-property-value1.1 val_0)
                val_0)))
         (if (syntax?$1 s_0)
           (let ((props2_0 (hash-set (syntax-props s_0) key_0 pval_0)))
             (let ((app_0 (syntax-content* s_0)))
               (let ((app_1 (syntax-scopes s_0)))
                 (let ((app_2 (syntax-shifted-multi-scopes s_0)))
                   (let ((app_3 (syntax-mpi-shifts s_0)))
                     (let ((app_4 (syntax-srcloc$1 s_0)))
                       (syntax2.1
                        app_0
                        app_1
                        app_2
                        app_3
                        app_4
                        props2_0
                        (syntax-inspector s_0))))))))
           (raise-argument-error 'struct-copy "syntax?" s_0)))))
    ((s_0 key_0 val_0 preserved?_0)
     (begin
       (if (syntax?$1 s_0)
         (void)
         (raise-argument-error 'syntax-property "syntax?" s_0))
       (begin
         (if preserved?_0
           (if (if (symbol? key_0) (symbol-interned? key_0) #f)
             (void)
             (raise-arguments-error
              'syntax-property
              "key for a preserved property must be an interned symbol"
              "given key"
              key_0
              "given value"
              val_0))
           (void))
         (let ((pval_0
                (if preserved?_0 (preserved-property-value1.1 val_0) val_0)))
           (if (syntax?$1 s_0)
             (let ((props3_0 (hash-set (syntax-props s_0) key_0 pval_0)))
               (let ((app_0 (syntax-content* s_0)))
                 (let ((app_1 (syntax-scopes s_0)))
                   (let ((app_2 (syntax-shifted-multi-scopes s_0)))
                     (let ((app_3 (syntax-mpi-shifts s_0)))
                       (let ((app_4 (syntax-srcloc$1 s_0)))
                         (syntax2.1
                          app_0
                          app_1
                          app_2
                          app_3
                          app_4
                          props3_0
                          (syntax-inspector s_0))))))))
             (raise-argument-error 'struct-copy "syntax?" s_0)))))))))
(define 1/syntax-property-preserved?
  (|#%name|
   syntax-property-preserved?
   (lambda (s_0 key_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-property-preserved? "syntax?" s_0))
         (if (if (symbol? key_0) (symbol-interned? key_0) #f)
           (void)
           (raise-argument-error
            'syntax-property-preserved?
            "(and/c symbol? symbol-interned?)"
            key_0))
         (preserved-property-value?
          (hash-ref (syntax-props s_0) key_0 #f)))))))
(define 1/syntax-property-symbol-keys
  (|#%name|
   syntax-property-symbol-keys
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-property-symbol-keys "syntax" s_0))
         (reverse$1
          (let ((ht_0 (syntax-props s_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 i_0)
                    (begin
                      (if i_0
                        (call-with-values
                         (lambda ()
                           (unsafe-immutable-hash-iterate-key+value ht_0 i_0))
                         (case-lambda
                          ((k_0 v_0)
                           (let ((fold-var_1
                                  (if (if (symbol? k_0)
                                        (symbol-interned? k_0)
                                        #f)
                                    (let ((fold-var_1 (cons k_0 fold-var_0)))
                                      (values fold-var_1))
                                    fold-var_0)))
                             (for-loop_0
                              fold-var_1
                              (unsafe-immutable-hash-iterate-next ht_0 i_0))))
                          (args (raise-binding-result-arity-error 2 args))))
                        fold-var_0))))))
               (for-loop_0
                null
                (unsafe-immutable-hash-iterate-first ht_0)))))))))))
(define 1/syntax-property-remove
  (|#%name|
   syntax-property-remove
   (lambda (s_0 key_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-property-remove "syntax?" s_0))
         (if (hash-has-key? (syntax-props s_0) key_0)
           (if (syntax?$1 s_0)
             (let ((props7_0 (hash-remove (syntax-props s_0) key_0)))
               (let ((app_0 (syntax-content* s_0)))
                 (let ((app_1 (syntax-scopes s_0)))
                   (let ((app_2 (syntax-shifted-multi-scopes s_0)))
                     (let ((app_3 (syntax-mpi-shifts s_0)))
                       (let ((app_4 (syntax-srcloc$1 s_0)))
                         (syntax2.1
                          app_0
                          app_1
                          app_2
                          app_3
                          app_4
                          props7_0
                          (syntax-inspector s_0))))))))
             (raise-argument-error 'struct-copy "syntax?" s_0))
           s_0))))))
(define syntax-has-property?
  (lambda (from-s_0 key_0) (hash-ref (syntax-props from-s_0) key_0 #f)))
(define finish_2185
  (make-struct-type-install-properties
   '(fallback)
   1
   0
   #f
   null
   'prefab
   #f
   '(0)
   #f
   'fallback))
(define struct:fallback
  (make-record-type-descriptor
   'fallback
   #f
   (structure-type-lookup-prefab-uid 'fallback #f 1 0 #f '(0))
   #f
   #f
   '(1 . 1)))
(define effect_2114 (finish_2185 struct:fallback))
(define fallback1.1
  (|#%name|
   fallback
   (record-constructor
    (make-record-constructor-descriptor struct:fallback #f #f))))
(define fallback?_2815 (|#%name| fallback? (record-predicate struct:fallback)))
(define fallback?
  (|#%name|
   fallback?
   (lambda (v)
     (if (fallback?_2815 v)
       #t
       ($value
        (if (impersonator? v) (fallback?_2815 (impersonator-val v)) #f))))))
(define fallback-search-list_2731
  (|#%name| fallback-search-list (record-accessor struct:fallback 0)))
(define fallback-search-list
  (|#%name|
   fallback-search-list
   (lambda (s)
     (if (fallback?_2815 s)
       (fallback-search-list_2731 s)
       ($value
        (impersonate-ref
         fallback-search-list_2731
         struct:fallback
         0
         s
         'search-list))))))
(define fallback-first
  (lambda (smss_0)
    (if (fallback? smss_0) (car (fallback-search-list smss_0)) smss_0)))
(define fallback-rest
  (lambda (smss_0)
    (let ((l_0 (cdr (fallback-search-list smss_0))))
      (if (null? (cdr l_0)) (car l_0) (fallback1.1 l_0)))))
(define fallback-push
  (lambda (smss_0 smss/maybe-fallback_0)
    (fallback1.1
     (cons
      smss_0
      (if (fallback? smss/maybe-fallback_0)
        (fallback-search-list smss/maybe-fallback_0)
        (list smss/maybe-fallback_0))))))
(define fallback-update-first
  (lambda (smss_0 f_0)
    (if (fallback? smss_0)
      (let ((l_0 (fallback-search-list smss_0)))
        (fallback1.1
         (let ((app_0 (|#%app| f_0 (car l_0)))) (cons app_0 (cdr l_0)))))
      (|#%app| f_0 smss_0))))
(define fallback-map
  (lambda (smss_0 f_0)
    (if (fallback? smss_0)
      (fallback1.1
       (reverse$1
        (let ((lst_0 (fallback-search-list smss_0)))
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (fold-var_0 lst_1)
                  (begin
                    (if (pair? lst_1)
                      (let ((smss_1 (unsafe-car lst_1)))
                        (let ((rest_0 (unsafe-cdr lst_1)))
                          (let ((fold-var_1
                                 (let ((fold-var_1
                                        (cons
                                         (|#%app| f_0 smss_1)
                                         fold-var_0)))
                                   (values fold-var_1))))
                            (for-loop_0 fold-var_1 rest_0))))
                      fold-var_0))))))
             (for-loop_0 null lst_0))))))
      (|#%app| f_0 smss_0))))
(define fallback->list
  (lambda (smss_0)
    (if (fallback? smss_0) (fallback-search-list smss_0) (list smss_0))))
(define make-cache$1
  (|#%name| make-cache (lambda () (begin (box (make-weak-box #f))))))
(define cell.1$6 (unsafe-make-place-local (make-cache$1)))
(define resolve-cache-place-init!
  (lambda () (unsafe-place-local-set! cell.1$6 (make-cache$1))))
(define clear-resolve-cache!
  (case-lambda
   ((sym_0)
    (let ((c_0
           (weak-box-value (unsafe-unbox* (unsafe-place-local-ref cell.1$6)))))
      (begin
        (if c_0 (hash-remove! c_0 sym_0) (void))
        (unsafe-set-box*! (unsafe-place-local-ref cell.2$3) #f))))
   (()
    (let ((c_0
           (weak-box-value (unsafe-unbox* (unsafe-place-local-ref cell.1$6)))))
      (begin
        (if c_0 (hash-clear! c_0) (void))
        (unsafe-set-box*! (unsafe-place-local-ref cell.2$3) #f))))))
(define finish_2822
  (make-struct-type-install-properties
   '(entry)
   4
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'entry))
(define struct:entry
  (make-record-type-descriptor
   'entry
   #f
   (|#%nongenerative-uid| entry)
   #f
   #f
   '(4 . 0)))
(define effect_2728 (finish_2822 struct:entry))
(define entry1.1
  (|#%name|
   entry
   (record-constructor
    (make-record-constructor-descriptor struct:entry #f #f))))
(define entry? (|#%name| entry? (record-predicate struct:entry)))
(define entry-scs (|#%name| entry-scs (record-accessor struct:entry 0)))
(define entry-smss (|#%name| entry-smss (record-accessor struct:entry 1)))
(define entry-phase (|#%name| entry-phase (record-accessor struct:entry 2)))
(define entry-binding
  (|#%name| entry-binding (record-accessor struct:entry 3)))
(define resolve-cache-get
  (lambda (sym_0 phase_0 scs_0 smss_0)
    (let ((c_0
           (weak-box-value (unsafe-unbox* (unsafe-place-local-ref cell.1$6)))))
      (if c_0
        (let ((v_0 (hash-ref c_0 sym_0 #f)))
          (if v_0
            (if (eqv? phase_0 (entry-phase v_0))
              (if (set=? scs_0 (entry-scs v_0))
                (if (set=? smss_0 (entry-smss v_0)) (entry-binding v_0) #f)
                #f)
              #f)
            #f))
        #f))))
(define resolve-cache-set!
  (lambda (sym_0 phase_0 scs_0 smss_0 b_0)
    (let ((wb_0 (unsafe-unbox* (unsafe-place-local-ref cell.1$6))))
      (let ((c_0 (weak-box-value wb_0)))
        (if (not c_0)
          (begin
            (unsafe-box*-cas!
             (unsafe-place-local-ref cell.1$6)
             wb_0
             (make-weak-box (make-hasheq)))
            (resolve-cache-set! sym_0 phase_0 scs_0 smss_0 b_0))
          (hash-set! c_0 sym_0 (entry1.1 scs_0 smss_0 phase_0 b_0)))))))
(define SHIFTED-CACHE-SIZE 16)
(define cell.2$3 (unsafe-make-place-local (box #f)))
(define cell.3$1 (unsafe-make-place-local 0))
(define finish_2410
  (make-struct-type-install-properties
   '(shifted-entry)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'shifted-entry))
(define struct:shifted-entry
  (make-record-type-descriptor
   'shifted-entry
   #f
   (|#%nongenerative-uid| shifted-entry)
   #f
   #f
   '(3 . 0)))
(define effect_2358 (finish_2410 struct:shifted-entry))
(define shifted-entry2.1
  (|#%name|
   shifted-entry
   (record-constructor
    (make-record-constructor-descriptor struct:shifted-entry #f #f))))
(define shifted-entry?
  (|#%name| shifted-entry? (record-predicate struct:shifted-entry)))
(define shifted-entry-s
  (|#%name| shifted-entry-s (record-accessor struct:shifted-entry 0)))
(define shifted-entry-phase
  (|#%name| shifted-entry-phase (record-accessor struct:shifted-entry 1)))
(define shifted-entry-binding
  (|#%name| shifted-entry-binding (record-accessor struct:shifted-entry 2)))
(define shifted-cache-vector
  (lambda ()
    (let ((wb_0 (unsafe-unbox* (unsafe-place-local-ref cell.2$3))))
      (let ((c1_0 (if wb_0 (weak-box-value wb_0) #f)))
        (if c1_0
          c1_0
          (let ((vec_0 (make-vector 16 #f)))
            (begin
              (unsafe-set-box*!
               (unsafe-place-local-ref cell.2$3)
               (make-weak-box vec_0))
              vec_0)))))))
(define resolve+shift-cache-get
  (lambda (s_0 phase_0)
    (let ((vec_0 (shifted-cache-vector)))
      (call-with-values
       (lambda ()
         (begin
           (check-vector vec_0)
           (values vec_0 (unsafe-vector-length vec_0))))
       (case-lambda
        ((vec_1 len_0)
         (begin
           #f
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (result_0 pos_0)
                 (begin
                   (if (unsafe-fx< pos_0 len_0)
                     (let ((e_0 (unsafe-vector-ref vec_1 pos_0)))
                       (let ((result_1
                              (let ((result_1
                                     (if e_0
                                       (if (eq? s_0 (shifted-entry-s e_0))
                                         (if (eqv?
                                              phase_0
                                              (shifted-entry-phase e_0))
                                           (shifted-entry-binding e_0)
                                           #f)
                                         #f)
                                       #f)))
                                (values result_1))))
                         (if (if (not (let ((x_0 (list e_0))) result_1)) #t #f)
                           (for-loop_0 result_1 (unsafe-fx+ 1 pos_0))
                           result_1)))
                     result_0))))))
            (for-loop_0 #f 0))))
        (args (raise-binding-result-arity-error 2 args)))))))
(define resolve+shift-cache-set!
  (lambda (s_0 phase_0 b_0)
    (let ((vec_0 (shifted-cache-vector)))
      (let ((p_0 (unsafe-place-local-ref cell.3$1)))
        (begin
          (unsafe-vector*-set! vec_0 p_0 (shifted-entry2.1 s_0 phase_0 b_0))
          (unsafe-place-local-set! cell.3$1 (fxand (fx+ 1 p_0) 15)))))))
(define NUM-CACHE-SLOTS 8)
(define make-cached-sets (lambda () (make-weak-box (make-vector 8 #f))))
(define cell.4$1 (unsafe-make-place-local (make-cached-sets)))
(define cell.5$1 (unsafe-make-place-local 0))
(define make-cached-hashes (lambda () (make-weak-box (make-vector 8 #f))))
(define cell.6$1 (unsafe-make-place-local (make-cached-hashes)))
(define cell.7 (unsafe-make-place-local 0))
(define sets-place-init!
  (lambda ()
    (begin
      (unsafe-place-local-set! cell.4$1 (make-cached-sets))
      (unsafe-place-local-set! cell.6$1 (make-cached-hashes)))))
(define cache-or-reuse-set
  (lambda (s_0)
    (let ((vec_0
           (let ((or-part_0
                  (weak-box-value (unsafe-place-local-ref cell.4$1))))
             (if or-part_0
               or-part_0
               (let ((vec_0 (make-vector 8 #f)))
                 (begin
                   (unsafe-place-local-set! cell.4$1 (make-weak-box vec_0))
                   vec_0))))))
      (let ((or-part_0
             (call-with-values
              (lambda ()
                (begin
                  (check-vector vec_0)
                  (values vec_0 (unsafe-vector-length vec_0))))
              (case-lambda
               ((vec_1 len_0)
                (begin
                  #f
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (result_0 pos_0)
                        (begin
                          (if (unsafe-fx< pos_0 len_0)
                            (let ((s2_0 (unsafe-vector-ref vec_1 pos_0)))
                              (let ((result_1
                                     (let ((result_1
                                            (if s2_0
                                              (if (set=? s_0 s2_0) s2_0 #f)
                                              #f)))
                                       (values result_1))))
                                (if (if (not
                                         (let ((x_0 (list s2_0))) result_1))
                                      #t
                                      #f)
                                  (for-loop_0 result_1 (unsafe-fx+ 1 pos_0))
                                  result_1)))
                            result_0))))))
                   (for-loop_0 #f 0))))
               (args (raise-binding-result-arity-error 2 args))))))
        (if or-part_0
          or-part_0
          (begin
            (unsafe-vector*-set! vec_0 (unsafe-place-local-ref cell.5$1) s_0)
            (unsafe-place-local-set!
             cell.5$1
             (fxand (fx+ 1 (unsafe-place-local-ref cell.5$1)) 7))
            s_0))))))
(define cache-or-reuse-hash
  (lambda (s_0)
    (let ((vec_0
           (let ((or-part_0
                  (weak-box-value (unsafe-place-local-ref cell.6$1))))
             (if or-part_0
               or-part_0
               (let ((vec_0 (make-vector 8 #f)))
                 (begin
                   (unsafe-place-local-set! cell.6$1 (make-weak-box vec_0))
                   vec_0))))))
      (let ((or-part_0
             (call-with-values
              (lambda ()
                (begin
                  (check-vector vec_0)
                  (values vec_0 (unsafe-vector-length vec_0))))
              (case-lambda
               ((vec_1 len_0)
                (begin
                  #f
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (result_0 pos_0)
                        (begin
                          (if (unsafe-fx< pos_0 len_0)
                            (let ((s2_0 (unsafe-vector-ref vec_1 pos_0)))
                              (let ((result_1
                                     (let ((result_1
                                            (if s2_0
                                              (if (equal? s_0 s2_0) s2_0 #f)
                                              #f)))
                                       (values result_1))))
                                (if (if (not
                                         (let ((x_0 (list s2_0))) result_1))
                                      #t
                                      #f)
                                  (for-loop_0 result_1 (unsafe-fx+ 1 pos_0))
                                  result_1)))
                            result_0))))))
                   (for-loop_0 #f 0))))
               (args (raise-binding-result-arity-error 2 args))))))
        (if or-part_0
          or-part_0
          (begin
            (unsafe-vector*-set! vec_0 (unsafe-place-local-ref cell.7) s_0)
            (unsafe-place-local-set!
             cell.7
             (fxand (fx+ 1 (unsafe-place-local-ref cell.7)) 7))
            s_0))))))
(define cache-place-init!
  (lambda () (begin (resolve-cache-place-init!) (sets-place-init!))))
(define finish_3056
  (make-struct-type-install-properties
   '(scope)
   3
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:scope-with-bindings
     (lambda (s_0
              get-reachable-scopes_0
              extra-shifts_0
              reach_0
              register-trigger_0)
       (binding-table-register-reachable
        (scope-binding-table s_0)
        get-reachable-scopes_0
        extra-shifts_0
        reach_0
        register-trigger_0)))
    (cons prop:reach-scopes (lambda (s_0 extra-shifts_0 reach_0) (void)))
    (cons
     prop:serialize-fill!
     (lambda (s_0 ser-push!_0 state_0)
       (if (binding-table-empty? (scope-binding-table s_0))
         (|#%app| ser-push!_0 'tag #f)
         (begin
           (|#%app| ser-push!_0 'tag kw2576)
           (|#%app|
            ser-push!_0
            (binding-table-prune-to-reachable
             (scope-binding-table s_0)
             state_0))))))
    (cons
     prop:serialize
     (lambda (s_0 ser-push!_0 state_0)
       (begin
         (if (let ((s_1 (serialize-state-reachable-scopes state_0)))
               (begin-unsafe (hash-ref s_1 s_0 #f)))
           (void)
           (error "internal error: found supposedly unreachable scope"))
         (if (eq? s_0 top-level-common-scope)
           (|#%app| ser-push!_0 'tag kw2129)
           (begin
             (|#%app| ser-push!_0 'tag kw2535)
             (|#%app| ser-push!_0 (scope-kind s_0)))))))
    (cons
     prop:custom-write
     (lambda (sc_0 port_0 mode_0)
       (begin
         (write-string "#<scope:" port_0)
         (display (scope-id sc_0) port_0)
         (write-string ":" port_0)
         (display (scope-kind sc_0) port_0)
         (write-string ">" port_0)))))
   (current-inspector)
   #f
   '(0 1)
   #f
   'scope))
(define struct:scope
  (make-record-type-descriptor
   'scope
   #f
   (|#%nongenerative-uid| scope)
   #f
   #f
   '(3 . 4)))
(define effect_2269 (finish_3056 struct:scope))
(define scope1.1
  (|#%name|
   scope
   (record-constructor
    (make-record-constructor-descriptor struct:scope #f #f))))
(define scope? (|#%name| scope? (record-predicate struct:scope)))
(define scope-id (|#%name| scope-id (record-accessor struct:scope 0)))
(define scope-kind (|#%name| scope-kind (record-accessor struct:scope 1)))
(define scope-binding-table
  (|#%name| scope-binding-table (record-accessor struct:scope 2)))
(define set-scope-binding-table!
  (|#%name| set-scope-binding-table! (record-mutator struct:scope 2)))
(define deserialize-scope
  (case-lambda
   (() top-level-common-scope)
   ((kind_0)
    (scope1.1 (new-deserialize-scope-id!) kind_0 empty-binding-table))))
(define deserialize-scope-fill!
  (lambda (s_0 bt_0) (set-scope-binding-table! s_0 bt_0)))
(define finish_2547
  (make-struct-type-install-properties
   '(interned-scope)
   1
   0
   struct:scope
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (s_0 ser-push!_0 state_0)
       (begin
         (if (let ((s_1 (serialize-state-reachable-scopes state_0)))
               (begin-unsafe (hash-ref s_1 s_0 #f)))
           (void)
           (error "internal error: found supposedly unreachable scope"))
         (|#%app| ser-push!_0 'tag kw2241)
         (|#%app| ser-push!_0 (interned-scope-key s_0)))))
    (cons
     prop:custom-write
     (lambda (sc_0 port_0 mode_0)
       (begin
         (write-string "#<scope:" port_0)
         (display (scope-id sc_0) port_0)
         (write-string ":" port_0)
         (display (scope-kind sc_0) port_0)
         (write-string " " port_0)
         (display (interned-scope-key sc_0) port_0)
         (write-string ">" port_0)))))
   (current-inspector)
   #f
   '(0)
   #f
   'interned-scope))
(define struct:interned-scope
  (make-record-type-descriptor
   'interned-scope
   struct:scope
   (|#%nongenerative-uid| interned-scope)
   #f
   #f
   '(1 . 0)))
(define effect_2498 (finish_2547 struct:interned-scope))
(define interned-scope2.1
  (|#%name|
   interned-scope
   (record-constructor
    (make-record-constructor-descriptor struct:interned-scope #f #f))))
(define interned-scope?
  (|#%name| interned-scope? (record-predicate struct:interned-scope)))
(define interned-scope-key
  (|#%name| interned-scope-key (record-accessor struct:interned-scope 0)))
(define finish_1876
  (make-struct-type-install-properties
   '(multi-scope)
   5
   0
   #f
   (list
    (cons prop:sealed #t)
    (cons prop:authentic #t)
    (cons
     prop:scope-with-bindings
     (lambda (ms_0
              get-reachable-scopes_0
              bulk-shifts_0
              reach_0
              register-trigger_0)
       (begin
         (let ((ht_0 (unbox (multi-scope-scopes ms_0))))
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (i_0)
                   (begin
                     (if i_0
                       (let ((sc_0 (hash-iterate-value ht_0 i_0)))
                         (begin
                           (if (binding-table-empty?
                                (scope-binding-table sc_0))
                             (void)
                             (|#%app| reach_0 sc_0 bulk-shifts_0))
                           (for-loop_0 (hash-iterate-next ht_0 i_0))))
                       (values)))))))
              (for-loop_0 (hash-iterate-first ht_0)))))
         (void))))
    (cons prop:reach-scopes (lambda (s_0 extra-shifts_0 reach_0) (void)))
    (cons
     prop:serialize
     (lambda (ms_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2645)
         (begin
           (|#%app| ser-push!_0 (multi-scope-name ms_0))
           (let ((multi-scope-tables_0
                  (serialize-state-multi-scope-tables state_0)))
             (|#%app|
              ser-push!_0
              (let ((or-part_0
                     (hash-ref
                      multi-scope-tables_0
                      (multi-scope-scopes ms_0)
                      #f)))
                (if or-part_0
                  or-part_0
                  (let ((ht_0
                         (let ((ht_0 (unbox (multi-scope-scopes ms_0))))
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (table_0 i_0)
                                   (begin
                                     (if i_0
                                       (call-with-values
                                        (lambda ()
                                          (hash-iterate-key+value ht_0 i_0))
                                        (case-lambda
                                         ((phase_0 sc_0)
                                          (let ((table_1
                                                 (if (let ((s_0
                                                            (serialize-state-reachable-scopes
                                                             state_0)))
                                                       (begin-unsafe
                                                        (hash-ref
                                                         s_0
                                                         sc_0
                                                         #f)))
                                                   (let ((table_1
                                                          (call-with-values
                                                           (lambda ()
                                                             (values
                                                              phase_0
                                                              sc_0))
                                                           (case-lambda
                                                            ((key_0 val_0)
                                                             (hash-set
                                                              table_0
                                                              key_0
                                                              val_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args))))))
                                                     (values table_1))
                                                   table_0)))
                                            (for-loop_0
                                             table_1
                                             (hash-iterate-next ht_0 i_0))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))
                                       table_0))))))
                              (for-loop_0
                               hash2589
                               (hash-iterate-first ht_0)))))))
                    (begin
                      (hash-set!
                       multi-scope-tables_0
                       (multi-scope-scopes ms_0)
                       ht_0)
                      ht_0)))))))))))
   (current-inspector)
   #f
   '(0 1 2 3 4)
   #f
   'multi-scope))
(define struct:multi-scope
  (make-record-type-descriptor
   'multi-scope
   #f
   (|#%nongenerative-uid| multi-scope)
   #t
   #f
   '(5 . 0)))
(define effect_1895 (finish_1876 struct:multi-scope))
(define multi-scope3.1
  (|#%name|
   multi-scope
   (record-constructor
    (make-record-constructor-descriptor struct:multi-scope #f #f))))
(define multi-scope?
  (|#%name| multi-scope? (record-predicate struct:multi-scope)))
(define multi-scope-id
  (|#%name| multi-scope-id (record-accessor struct:multi-scope 0)))
(define multi-scope-name
  (|#%name| multi-scope-name (record-accessor struct:multi-scope 1)))
(define multi-scope-scopes
  (|#%name| multi-scope-scopes (record-accessor struct:multi-scope 2)))
(define multi-scope-shifted
  (|#%name| multi-scope-shifted (record-accessor struct:multi-scope 3)))
(define multi-scope-label-shifted
  (|#%name| multi-scope-label-shifted (record-accessor struct:multi-scope 4)))
(define deserialize-multi-scope
  (lambda (name_0 scopes_0)
    (let ((app_0 (new-deserialize-scope-id!)))
      (let ((app_1 (box scopes_0)))
        (let ((app_2 (box (hasheqv))))
          (multi-scope3.1 app_0 name_0 app_1 app_2 (box (hash))))))))
(define finish_3510
  (make-struct-type-install-properties
   '(representative-scope)
   2
   0
   struct:scope
   (list
    (cons prop:authentic #t)
    (cons prop:implicitly-reachable #t)
    (cons
     prop:reach-scopes
     (lambda (s_0 bulk-shifts_0 reach_0)
       (|#%app| reach_0 (representative-scope-owner s_0) bulk-shifts_0)))
    (cons
     prop:serialize-fill!
     (lambda (s_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2073)
         (|#%app|
          ser-push!_0
          (binding-table-prune-to-reachable (scope-binding-table s_0) state_0))
         (|#%app| ser-push!_0 (representative-scope-owner s_0)))))
    (cons
     prop:serialize
     (lambda (s_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2600)
         (|#%app| ser-push!_0 (scope-kind s_0))
         (|#%app| ser-push!_0 (representative-scope-phase s_0)))))
    (cons
     prop:custom-write
     (lambda (sc_0 port_0 mode_0)
       (begin
         (write-string "#<scope:" port_0)
         (display (scope-id sc_0) port_0)
         (if (representative-scope-owner sc_0)
           (begin
             (write-string "=" port_0)
             (display
              (multi-scope-id (representative-scope-owner sc_0))
              port_0))
           (void))
         (write-string "@" port_0)
         (display (representative-scope-phase sc_0) port_0)
         (write-string ">" port_0)))))
   (current-inspector)
   #f
   '()
   #f
   'representative-scope))
(define struct:representative-scope
  (make-record-type-descriptor
   'representative-scope
   struct:scope
   (|#%nongenerative-uid| representative-scope)
   #f
   #f
   '(2 . 3)))
(define effect_2683 (finish_3510 struct:representative-scope))
(define representative-scope4.1
  (|#%name|
   representative-scope
   (record-constructor
    (make-record-constructor-descriptor struct:representative-scope #f #f))))
(define representative-scope?
  (|#%name|
   representative-scope?
   (record-predicate struct:representative-scope)))
(define representative-scope-owner
  (|#%name|
   representative-scope-owner
   (record-accessor struct:representative-scope 0)))
(define representative-scope-phase
  (|#%name|
   representative-scope-phase
   (record-accessor struct:representative-scope 1)))
(define set-representative-scope-owner!
  (|#%name|
   set-representative-scope-owner!
   (record-mutator struct:representative-scope 0)))
(define set-representative-scope-phase!
  (|#%name|
   set-representative-scope-phase!
   (record-mutator struct:representative-scope 1)))
(define deserialize-representative-scope
  (lambda (kind_0 phase_0)
    (let ((v_0
           (representative-scope4.1
            (new-deserialize-scope-id!)
            kind_0
            #f
            #f
            phase_0)))
      v_0)))
(define deserialize-representative-scope-fill!
  (lambda (s_0 bt_0 owner_0)
    (begin
      (begin-unsafe (set-scope-binding-table! s_0 bt_0))
      (set-representative-scope-owner! s_0 owner_0))))
(define finish_3292
  (make-struct-type-install-properties
   '(shifted-multi-scope)
   2
   0
   #f
   (list
    (cons prop:sealed #t)
    (cons prop:authentic #t)
    (cons
     prop:reach-scopes
     (lambda (sms_0 bulk-shifts_0 reach_0)
       (|#%app|
        reach_0
        (shifted-multi-scope-multi-scope sms_0)
        bulk-shifts_0)))
    (cons
     prop:serialize
     (lambda (sms_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2201)
         (|#%app| ser-push!_0 (shifted-multi-scope-phase sms_0))
         (|#%app| ser-push!_0 (shifted-multi-scope-multi-scope sms_0)))))
    (cons
     prop:custom-write
     (lambda (sms_0 port_0 mode_0)
       (begin
         (write-string "#<scope:" port_0)
         (display
          (multi-scope-id (shifted-multi-scope-multi-scope sms_0))
          port_0)
         (write-string "@" port_0)
         (display (shifted-multi-scope-phase sms_0) port_0)
         (write-string ">" port_0)))))
   (current-inspector)
   #f
   '(0 1)
   #f
   'shifted-multi-scope))
(define struct:shifted-multi-scope
  (make-record-type-descriptor
   'shifted-multi-scope
   #f
   (|#%nongenerative-uid| shifted-multi-scope)
   #t
   #f
   '(2 . 0)))
(define effect_2854 (finish_3292 struct:shifted-multi-scope))
(define shifted-multi-scope5.1
  (|#%name|
   shifted-multi-scope
   (record-constructor
    (make-record-constructor-descriptor struct:shifted-multi-scope #f #f))))
(define shifted-multi-scope?
  (|#%name|
   shifted-multi-scope?
   (record-predicate struct:shifted-multi-scope)))
(define shifted-multi-scope-phase
  (|#%name|
   shifted-multi-scope-phase
   (record-accessor struct:shifted-multi-scope 0)))
(define shifted-multi-scope-multi-scope
  (|#%name|
   shifted-multi-scope-multi-scope
   (record-accessor struct:shifted-multi-scope 1)))
(define deserialize-shifted-multi-scope
  (lambda (phase_0 multi-scope_0)
    (intern-shifted-multi-scope phase_0 multi-scope_0)))
(define intern-shifted-multi-scope
  (lambda (phase_0 multi-scope_0)
    (letrec*
     ((transaction-loop_0
       (|#%name|
        transaction-loop
        (lambda (boxed-table_0 key_0 make_0)
          (begin
            (let ((or-part_0 (hash-ref (unbox boxed-table_0) phase_0 #f)))
              (if or-part_0
                or-part_0
                (let ((val_0 (|#%app| make_0)))
                  (let ((current_0 (unbox boxed-table_0)))
                    (let ((next_0 (hash-set current_0 key_0 val_0)))
                      (if (unsafe-box*-cas! boxed-table_0 current_0 next_0)
                        val_0
                        (transaction-loop_0
                         boxed-table_0
                         key_0
                         make_0))))))))))))
     (if (phase? phase_0)
       (let ((or-part_0
              (hash-ref
               (unbox (multi-scope-shifted multi-scope_0))
               phase_0
               #f)))
         (if or-part_0
           or-part_0
           (transaction-loop_0
            (multi-scope-shifted multi-scope_0)
            phase_0
            (lambda () (shifted-multi-scope5.1 phase_0 multi-scope_0)))))
       (let ((or-part_0
              (hash-ref
               (unbox (multi-scope-label-shifted multi-scope_0))
               phase_0
               #f)))
         (if or-part_0
           or-part_0
           (transaction-loop_0
            (multi-scope-label-shifted multi-scope_0)
            phase_0
            (lambda () (shifted-multi-scope5.1 phase_0 multi-scope_0)))))))))
(define finish_3013
  (make-struct-type-install-properties
   '(shifted-to-label-phase)
   1
   0
   #f
   null
   'prefab
   #f
   '(0)
   #f
   'shifted-to-label-phase))
(define struct:shifted-to-label-phase
  (make-record-type-descriptor
   'shifted-to-label-phase
   #f
   (structure-type-lookup-prefab-uid 'shifted-to-label-phase #f 1 0 #f '(0))
   #f
   #f
   '(1 . 1)))
(define effect_2315 (finish_3013 struct:shifted-to-label-phase))
(define shifted-to-label-phase6.1
  (|#%name|
   shifted-to-label-phase
   (record-constructor
    (make-record-constructor-descriptor struct:shifted-to-label-phase #f #f))))
(define shifted-to-label-phase?_2495
  (|#%name|
   shifted-to-label-phase?
   (record-predicate struct:shifted-to-label-phase)))
(define shifted-to-label-phase?
  (|#%name|
   shifted-to-label-phase?
   (lambda (v)
     (if (shifted-to-label-phase?_2495 v)
       #t
       ($value
        (if (impersonator? v)
          (shifted-to-label-phase?_2495 (impersonator-val v))
          #f))))))
(define shifted-to-label-phase-from_2273
  (|#%name|
   shifted-to-label-phase-from
   (record-accessor struct:shifted-to-label-phase 0)))
(define shifted-to-label-phase-from
  (|#%name|
   shifted-to-label-phase-from
   (lambda (s)
     (if (shifted-to-label-phase?_2495 s)
       (shifted-to-label-phase-from_2273 s)
       ($value
        (impersonate-ref
         shifted-to-label-phase-from_2273
         struct:shifted-to-label-phase
         0
         s
         'from))))))
(define cell.1$5 (unsafe-make-place-local 0))
(define new-scope-id!
  (lambda ()
    (begin
      (unsafe-place-local-set!
       cell.1$5
       (add1 (unsafe-place-local-ref cell.1$5)))
      (unsafe-place-local-ref cell.1$5))))
(define new-deserialize-scope-id! (lambda () (- (new-scope-id!))))
(define deserialized-scope-id? (lambda (scope-id_0) (negative? scope-id_0)))
(define top-level-common-scope (scope1.1 0 'module empty-binding-table))
(define new-scope
  (lambda (kind_0) (scope1.1 (new-scope-id!) kind_0 empty-binding-table)))
(define cell.2$2 (unsafe-make-place-local (make-ephemeron-hasheq)))
(define interned-scope-symbols
  (lambda ()
    (call-as-atomic
     (lambda () (hash-keys (unsafe-place-local-ref cell.2$2))))))
(define interned-scopes
  (lambda ()
    (call-as-atomic
     (lambda ()
       (let ((ht_0 (unsafe-place-local-ref cell.2$2)))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (table_0 i_0)
                 (begin
                   (if i_0
                     (let ((s_0 (hash-iterate-value ht_0 i_0)))
                       (let ((table_1
                              (let ((table_1
                                     (call-with-values
                                      (lambda () (values s_0 #t))
                                      (case-lambda
                                       ((key_0 val_0)
                                        (hash-set table_0 key_0 val_0))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))))
                                (values table_1))))
                         (for-loop_0 table_1 (hash-iterate-next ht_0 i_0))))
                     table_0))))))
            (for-loop_0 hash2610 (hash-iterate-first ht_0)))))))))
(define scope-place-init!
  (lambda () (unsafe-place-local-set! cell.2$2 (make-ephemeron-hasheq))))
(define make-interned-scope
  (lambda (sym_0)
    (let ((make_0
           (|#%name|
            make
            (lambda ()
              (begin
                (interned-scope2.1
                 (- (new-scope-id!))
                 'interned
                 empty-binding-table
                 sym_0))))))
      (call-as-atomic
       (lambda ()
         (let ((or-part_0
                (hash-ref! (unsafe-place-local-ref cell.2$2) sym_0 #f)))
           (if or-part_0
             or-part_0
             (let ((new_0 (make_0)))
               (begin
                 (hash-set! (unsafe-place-local-ref cell.2$2) sym_0 new_0)
                 new_0)))))))))
(define syntax-has-interned-scope?
  (lambda (s_0)
    (let ((ht_0 (syntax-scopes s_0)))
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (result_0 i_0)
              (begin
                (if i_0
                  (let ((sc_0 (unsafe-immutable-hash-iterate-key ht_0 i_0)))
                    (let ((result_1 (interned-scope? sc_0)))
                      (let ((result_2 (values result_1)))
                        (if (if (not (let ((x_0 (list sc_0))) result_2)) #t #f)
                          (for-loop_0
                           result_2
                           (unsafe-immutable-hash-iterate-next ht_0 i_0))
                          result_2))))
                  result_0))))))
         (for-loop_0 #f (unsafe-immutable-hash-iterate-first ht_0)))))))
(define new-multi-scope
  (let ((new-multi-scope_0
         (|#%name|
          new-multi-scope
          (lambda (name7_0)
            (begin
              (intern-shifted-multi-scope
               0
               (let ((app_0 (new-scope-id!)))
                 (let ((app_1 (box (hasheqv))))
                   (let ((app_2 (box (hasheqv))))
                     (multi-scope3.1
                      app_0
                      name7_0
                      app_1
                      app_2
                      (box (hash))))))))))))
    (case-lambda
     (() (new-multi-scope_0 #f))
     ((name7_0) (new-multi-scope_0 name7_0)))))
(define multi-scope-to-scope-at-phase
  (lambda (ms_0 phase_0)
    (let ((scopes_0 (unbox (multi-scope-scopes ms_0))))
      (let ((or-part_0 (hash-ref scopes_0 phase_0 #f)))
        (if or-part_0
          or-part_0
          (let ((s_0
                 (representative-scope4.1
                  (if (let ((scope-id_0 (multi-scope-id ms_0)))
                        (begin-unsafe (negative? scope-id_0)))
                    (new-deserialize-scope-id!)
                    (new-scope-id!))
                  'module
                  empty-binding-table
                  ms_0
                  phase_0)))
            (if (unsafe-box*-cas!
                 (multi-scope-scopes ms_0)
                 scopes_0
                 (hash-set scopes_0 phase_0 s_0))
              s_0
              (multi-scope-to-scope-at-phase ms_0 phase_0))))))))
(define scope>? (lambda (sc1_0 sc2_0) (> (scope-id sc1_0) (scope-id sc2_0))))
(define scope<? (lambda (sc1_0 sc2_0) (< (scope-id sc1_0) (scope-id sc2_0))))
(define shifted-multi-scope<?
  (lambda (sms1_0 sms2_0)
    (let ((ms1_0 (shifted-multi-scope-multi-scope sms1_0)))
      (let ((ms2_0 (shifted-multi-scope-multi-scope sms2_0)))
        (if (eq? ms1_0 ms2_0)
          (let ((p1_0 (shifted-multi-scope-phase sms1_0)))
            (let ((p2_0 (shifted-multi-scope-phase sms2_0)))
              (if (shifted-to-label-phase? p1_0)
                (if (shifted-to-label-phase? p2_0)
                  (let ((app_0 (shifted-to-label-phase-from p1_0)))
                    (phase<? app_0 (shifted-to-label-phase-from p2_0)))
                  #f)
                (if (shifted-to-label-phase? p2_0) #t (phase<? p1_0 p2_0)))))
          (< (multi-scope-id ms1_0) (multi-scope-id ms2_0)))))))
(define syntax-propagated-content*
  (lambda (s_0)
    (let ((content*_0 (syntax-content* s_0)))
      (if (not (modified-content? content*_0))
        content*_0
        (let ((prop_0 (modified-content-scope-propagations+taint content*_0)))
          (if (let ((or-part_0 (propagation? prop_0)))
                (if or-part_0
                  or-part_0
                  (begin-unsafe (eq? prop_0 'tainted/need-propagate))))
            (let ((content_0 (modified-content-content content*_0)))
              (let ((new-content_0
                     (if (propagation? prop_0)
                       (let ((f_0
                              (|#%name| f (lambda (tail?_0 x_0) (begin x_0)))))
                         (let ((s->_0
                                (|#%name|
                                 s->
                                 (lambda (sub-s_0)
                                   (begin
                                     (let ((sub-content*_0
                                            (syntax-content* sub-s_0)))
                                       (let ((sub-content_0
                                              (if (modified-content?
                                                   sub-content*_0)
                                                (modified-content-content
                                                 sub-content*_0)
                                                sub-content*_0)))
                                         (let ((scope-propagations+taint_0
                                                (propagation-merge
                                                 sub-content_0
                                                 prop_0
                                                 (if (modified-content?
                                                      sub-content*_0)
                                                   (modified-content-scope-propagations+taint
                                                    sub-content*_0)
                                                   #f)
                                                 (syntax-scopes sub-s_0)
                                                 (syntax-shifted-multi-scopes
                                                  sub-s_0)
                                                 (syntax-mpi-shifts sub-s_0))))
                                           (if (syntax?$1 sub-s_0)
                                             (let ((scopes41_0
                                                    (propagation-apply
                                                     prop_0
                                                     (syntax-scopes sub-s_0)
                                                     s_0)))
                                               (let ((shifted-multi-scopes42_0
                                                      (propagation-apply-shifted
                                                       prop_0
                                                       (syntax-shifted-multi-scopes
                                                        sub-s_0)
                                                       s_0)))
                                                 (let ((mpi-shifts43_0
                                                        (propagation-apply-mpi-shifts
                                                         prop_0
                                                         (syntax-mpi-shifts
                                                          sub-s_0)
                                                         s_0)))
                                                   (let ((inspector44_0
                                                          (propagation-apply-inspector
                                                           prop_0
                                                           (syntax-inspector
                                                            sub-s_0))))
                                                     (let ((content*45_0
                                                            (if scope-propagations+taint_0
                                                              (modified-content1.1
                                                               sub-content_0
                                                               scope-propagations+taint_0)
                                                              sub-content_0)))
                                                       (let ((inspector44_1
                                                              inspector44_0)
                                                             (mpi-shifts43_1
                                                              mpi-shifts43_0)
                                                             (shifted-multi-scopes42_1
                                                              shifted-multi-scopes42_0)
                                                             (scopes41_1
                                                              scopes41_0))
                                                         (syntax2.1
                                                          content*45_0
                                                          scopes41_1
                                                          shifted-multi-scopes42_1
                                                          mpi-shifts43_1
                                                          (syntax-srcloc$1
                                                           sub-s_0)
                                                          (syntax-props
                                                           sub-s_0)
                                                          inspector44_1)))))))
                                             (raise-argument-error
                                              'struct-copy
                                              "syntax?"
                                              sub-s_0))))))))))
                           (let ((f_1 f_0))
                             (let ((gf_0
                                    (|#%name|
                                     gf
                                     (lambda (tail?_0 v_0)
                                       (begin
                                         (if (syntax?$1 v_0)
                                           (s->_0 v_0)
                                           (begin-unsafe (begin v_0))))))))
                               (letrec*
                                ((loop_0
                                  (|#%name|
                                   loop
                                   (lambda (tail?_0 s_1 prev-depth_0)
                                     (begin
                                       (let ((depth_0 (fx+ 1 prev-depth_0)))
                                         (if (null? s_1)
                                           (begin-unsafe (begin s_1))
                                           (if (pair? s_1)
                                             (let ((x_0
                                                    (let ((app_0
                                                           (loop_0
                                                            #f
                                                            (car s_1)
                                                            depth_0)))
                                                      (cons
                                                       app_0
                                                       (loop_0
                                                        1
                                                        (cdr s_1)
                                                        depth_0)))))
                                               (begin-unsafe (begin x_0)))
                                             (if (symbol? s_1)
                                               (begin-unsafe (begin s_1))
                                               (if (boolean? s_1)
                                                 (begin-unsafe (begin s_1))
                                                 (if (number? s_1)
                                                   (begin-unsafe (begin s_1))
                                                   (if (let ((or-part_0
                                                              (vector? s_1)))
                                                         (if or-part_0
                                                           or-part_0
                                                           (let ((or-part_1
                                                                  (box? s_1)))
                                                             (if or-part_1
                                                               or-part_1
                                                               (let ((or-part_2
                                                                      (prefab-struct-key
                                                                       s_1)))
                                                                 (if or-part_2
                                                                   or-part_2
                                                                   (hash?
                                                                    s_1)))))))
                                                     (datum-map-slow
                                                      tail?_0
                                                      s_1
                                                      (lambda (tail?_1 s_2)
                                                        (gf_0 tail?_1 s_2))
                                                      #f
                                                      #f)
                                                     (gf_0 #f s_1)))))))))))))
                                (loop_0 #f content_0 0))))))
                       (let ((f_0
                              (|#%name| f (lambda (tail?_0 x_0) (begin x_0)))))
                         (let ((s->_0
                                (|#%name|
                                 s->
                                 (lambda (sub-s_0)
                                   (begin
                                     (let ((t_0
                                            (tainted-for-content
                                             (syntax-content sub-s_0))))
                                       (let ((content*_1
                                              (syntax-content* sub-s_0)))
                                         (let ((content_1
                                                (if (modified-content?
                                                     content*_1)
                                                  (modified-content-content
                                                   content*_1)
                                                  content*_1)))
                                           (let ((p_0
                                                  (if (modified-content?
                                                       content*_1)
                                                    (modified-content-scope-propagations+taint
                                                     content*_1)
                                                    #f)))
                                             (if (syntax?$1 sub-s_0)
                                               (let ((content*46_0
                                                      (let ((new-p_0
                                                             (if (taint? p_0)
                                                               t_0
                                                               (|#%app|
                                                                (propagation-set-taint-ref
                                                                 p_0)
                                                                p_0
                                                                t_0))))
                                                        (if new-p_0
                                                          (modified-content1.1
                                                           content_1
                                                           new-p_0)
                                                          content_1))))
                                                 (syntax2.1
                                                  content*46_0
                                                  (syntax-scopes sub-s_0)
                                                  (syntax-shifted-multi-scopes
                                                   sub-s_0)
                                                  (syntax-mpi-shifts sub-s_0)
                                                  (syntax-srcloc$1 sub-s_0)
                                                  (syntax-props sub-s_0)
                                                  (syntax-inspector sub-s_0)))
                                               (raise-argument-error
                                                'struct-copy
                                                "syntax?"
                                                sub-s_0)))))))))))
                           (let ((f_1 f_0))
                             (let ((gf_0
                                    (|#%name|
                                     gf
                                     (lambda (tail?_0 v_0)
                                       (begin
                                         (if (syntax?$1 v_0)
                                           (s->_0 v_0)
                                           (begin-unsafe (begin v_0))))))))
                               (letrec*
                                ((loop_0
                                  (|#%name|
                                   loop
                                   (lambda (tail?_0 s_1 prev-depth_0)
                                     (begin
                                       (let ((depth_0 (fx+ 1 prev-depth_0)))
                                         (if (null? s_1)
                                           (begin-unsafe (begin s_1))
                                           (if (pair? s_1)
                                             (let ((x_0
                                                    (let ((app_0
                                                           (loop_0
                                                            #f
                                                            (car s_1)
                                                            depth_0)))
                                                      (cons
                                                       app_0
                                                       (loop_0
                                                        1
                                                        (cdr s_1)
                                                        depth_0)))))
                                               (begin-unsafe (begin x_0)))
                                             (if (symbol? s_1)
                                               (begin-unsafe (begin s_1))
                                               (if (boolean? s_1)
                                                 (begin-unsafe (begin s_1))
                                                 (if (number? s_1)
                                                   (begin-unsafe (begin s_1))
                                                   (if (let ((or-part_0
                                                              (vector? s_1)))
                                                         (if or-part_0
                                                           or-part_0
                                                           (let ((or-part_1
                                                                  (box? s_1)))
                                                             (if or-part_1
                                                               or-part_1
                                                               (let ((or-part_2
                                                                      (prefab-struct-key
                                                                       s_1)))
                                                                 (if or-part_2
                                                                   or-part_2
                                                                   (hash?
                                                                    s_1)))))))
                                                     (datum-map-slow
                                                      tail?_0
                                                      s_1
                                                      (lambda (tail?_1 s_2)
                                                        (gf_0 tail?_1 s_2))
                                                      #f
                                                      #f)
                                                     (gf_0 #f s_1)))))))))))))
                                (loop_0 #f content_0 0)))))))))
                (let ((new-taint_0
                       (taint-propagated
                        (if (propagation? prop_0)
                          (propagation-taint prop_0)
                          prop_0))))
                  (let ((new-content*_0
                         (if new-taint_0
                           (modified-content1.1 new-content_0 new-taint_0)
                           new-content_0)))
                    (if (begin-unsafe
                         (unsafe-struct*-cas! s_0 0 content*_0 new-content*_0))
                      new-content*_0
                      (syntax-propagated-content* s_0))))))
            content*_0))))))
(define syntax-e$1
  (|#%name|
   syntax-e
   (lambda (s_0)
     (begin
       (let ((e_0 (syntax-content* s_0)))
         (if (symbol? e_0)
           e_0
           (let ((content*_0 (syntax-propagated-content* s_0)))
             (if (modified-content? content*_0)
               (modified-content-content content*_0)
               content*_0))))))))
(define generalize-scope
  (lambda (sc_0)
    (if (representative-scope? sc_0)
      (let ((app_0 (representative-scope-phase sc_0)))
        (intern-shifted-multi-scope app_0 (representative-scope-owner sc_0)))
      sc_0)))
(define add-scope
  (lambda (s_0 sc_0)
    (let ((sc_1 (generalize-scope sc_0)))
      (let ((op_0 set-add))
        (let ((sc_2 sc_1))
          (let ((content*_0 (syntax-content* s_0)))
            (let ((content_0
                   (if (modified-content? content*_0)
                     (modified-content-content content*_0)
                     content*_0)))
              (if (shifted-multi-scope? sc_2)
                (if (syntax?$1 s_0)
                  (let ((shifted-multi-scopes47_0
                         (fallback-update-first
                          (syntax-shifted-multi-scopes s_0)
                          (lambda (smss_0)
                            (let ((s_1 (fallback-first smss_0)))
                              (begin-unsafe (hash-set s_1 sc_2 #t)))))))
                    (let ((content*48_0
                           (if (datum-has-elements? content_0)
                             (let ((prop_0
                                    (propagation-add
                                     (if (modified-content? content*_0)
                                       (modified-content-scope-propagations+taint
                                        content*_0)
                                       #f)
                                     sc_2
                                     (syntax-scopes s_0)
                                     (syntax-shifted-multi-scopes s_0)
                                     (syntax-mpi-shifts s_0))))
                               (if prop_0
                                 (modified-content1.1 content_0 prop_0)
                                 content_0))
                             content*_0)))
                      (let ((shifted-multi-scopes47_1
                             shifted-multi-scopes47_0))
                        (syntax2.1
                         content*48_0
                         (syntax-scopes s_0)
                         shifted-multi-scopes47_1
                         (syntax-mpi-shifts s_0)
                         (syntax-srcloc$1 s_0)
                         (syntax-props s_0)
                         (syntax-inspector s_0)))))
                  (raise-argument-error 'struct-copy "syntax?" s_0))
                (if (syntax?$1 s_0)
                  (let ((scopes49_0
                         (let ((s_1 (syntax-scopes s_0)))
                           (begin-unsafe (hash-set s_1 sc_2 #t)))))
                    (let ((content*50_0
                           (if (datum-has-elements? content_0)
                             (let ((prop_0
                                    (propagation-add
                                     (if (modified-content? content*_0)
                                       (modified-content-scope-propagations+taint
                                        content*_0)
                                       #f)
                                     sc_2
                                     (syntax-scopes s_0)
                                     (syntax-shifted-multi-scopes s_0)
                                     (syntax-mpi-shifts s_0))))
                               (if prop_0
                                 (modified-content1.1 content_0 prop_0)
                                 content_0))
                             content*_0)))
                      (let ((scopes49_1 scopes49_0))
                        (syntax2.1
                         content*50_0
                         scopes49_1
                         (syntax-shifted-multi-scopes s_0)
                         (syntax-mpi-shifts s_0)
                         (syntax-srcloc$1 s_0)
                         (syntax-props s_0)
                         (syntax-inspector s_0)))))
                  (raise-argument-error 'struct-copy "syntax?" s_0))))))))))
(define add-scopes
  (lambda (s_0 scs_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (s_1 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((sc_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((s_2
                           (let ((s_2 (add-scope s_1 sc_0))) (values s_2))))
                      (for-loop_0 s_2 rest_0))))
                s_1))))))
       (for-loop_0 s_0 scs_0)))))
(define remove-scope
  (lambda (s_0 sc_0)
    (let ((sc_1 (generalize-scope sc_0)))
      (let ((op_0 set-remove))
        (let ((sc_2 sc_1))
          (let ((content*_0 (syntax-content* s_0)))
            (let ((content_0
                   (if (modified-content? content*_0)
                     (modified-content-content content*_0)
                     content*_0)))
              (if (shifted-multi-scope? sc_2)
                (if (syntax?$1 s_0)
                  (let ((shifted-multi-scopes51_0
                         (fallback-update-first
                          (syntax-shifted-multi-scopes s_0)
                          (lambda (smss_0)
                            (let ((s_1 (fallback-first smss_0)))
                              (begin-unsafe (hash-remove s_1 sc_2)))))))
                    (let ((content*52_0
                           (if (datum-has-elements? content_0)
                             (let ((prop_0
                                    (propagation-remove
                                     (if (modified-content? content*_0)
                                       (modified-content-scope-propagations+taint
                                        content*_0)
                                       #f)
                                     sc_2
                                     (syntax-scopes s_0)
                                     (syntax-shifted-multi-scopes s_0)
                                     (syntax-mpi-shifts s_0))))
                               (if prop_0
                                 (modified-content1.1 content_0 prop_0)
                                 content_0))
                             content*_0)))
                      (let ((shifted-multi-scopes51_1
                             shifted-multi-scopes51_0))
                        (syntax2.1
                         content*52_0
                         (syntax-scopes s_0)
                         shifted-multi-scopes51_1
                         (syntax-mpi-shifts s_0)
                         (syntax-srcloc$1 s_0)
                         (syntax-props s_0)
                         (syntax-inspector s_0)))))
                  (raise-argument-error 'struct-copy "syntax?" s_0))
                (if (syntax?$1 s_0)
                  (let ((scopes53_0
                         (let ((s_1 (syntax-scopes s_0)))
                           (begin-unsafe (hash-remove s_1 sc_2)))))
                    (let ((content*54_0
                           (if (datum-has-elements? content_0)
                             (let ((prop_0
                                    (propagation-remove
                                     (if (modified-content? content*_0)
                                       (modified-content-scope-propagations+taint
                                        content*_0)
                                       #f)
                                     sc_2
                                     (syntax-scopes s_0)
                                     (syntax-shifted-multi-scopes s_0)
                                     (syntax-mpi-shifts s_0))))
                               (if prop_0
                                 (modified-content1.1 content_0 prop_0)
                                 content_0))
                             content*_0)))
                      (let ((scopes53_1 scopes53_0))
                        (syntax2.1
                         content*54_0
                         scopes53_1
                         (syntax-shifted-multi-scopes s_0)
                         (syntax-mpi-shifts s_0)
                         (syntax-srcloc$1 s_0)
                         (syntax-props s_0)
                         (syntax-inspector s_0)))))
                  (raise-argument-error 'struct-copy "syntax?" s_0))))))))))
(define remove-scopes
  (lambda (s_0 scs_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (s_1 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((sc_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((s_2
                           (let ((s_2 (remove-scope s_1 sc_0))) (values s_2))))
                      (for-loop_0 s_2 rest_0))))
                s_1))))))
       (for-loop_0 s_0 scs_0)))))
(define set-flip
  (lambda (s_0 e_0)
    (if (begin-unsafe (hash-ref s_0 e_0 #f))
      (begin-unsafe (hash-remove s_0 e_0))
      (begin-unsafe (hash-set s_0 e_0 #t)))))
(define flip-scope
  (lambda (s_0 sc_0)
    (let ((sc_1 (generalize-scope sc_0)))
      (let ((content*_0 (syntax-content* s_0)))
        (let ((content_0
               (if (modified-content? content*_0)
                 (modified-content-content content*_0)
                 content*_0)))
          (if (shifted-multi-scope? sc_1)
            (if (syntax?$1 s_0)
              (let ((shifted-multi-scopes55_0
                     (fallback-update-first
                      (syntax-shifted-multi-scopes s_0)
                      (lambda (smss_0)
                        (set-flip (fallback-first smss_0) sc_1)))))
                (let ((content*56_0
                       (if (datum-has-elements? content_0)
                         (let ((prop_0
                                (propagation-flip
                                 (if (modified-content? content*_0)
                                   (modified-content-scope-propagations+taint
                                    content*_0)
                                   #f)
                                 sc_1
                                 (syntax-scopes s_0)
                                 (syntax-shifted-multi-scopes s_0)
                                 (syntax-mpi-shifts s_0))))
                           (if prop_0
                             (modified-content1.1 content_0 prop_0)
                             content_0))
                         content*_0)))
                  (let ((shifted-multi-scopes55_1 shifted-multi-scopes55_0))
                    (syntax2.1
                     content*56_0
                     (syntax-scopes s_0)
                     shifted-multi-scopes55_1
                     (syntax-mpi-shifts s_0)
                     (syntax-srcloc$1 s_0)
                     (syntax-props s_0)
                     (syntax-inspector s_0)))))
              (raise-argument-error 'struct-copy "syntax?" s_0))
            (if (syntax?$1 s_0)
              (let ((scopes57_0 (set-flip (syntax-scopes s_0) sc_1)))
                (let ((content*58_0
                       (if (datum-has-elements? content_0)
                         (let ((prop_0
                                (propagation-flip
                                 (if (modified-content? content*_0)
                                   (modified-content-scope-propagations+taint
                                    content*_0)
                                   #f)
                                 sc_1
                                 (syntax-scopes s_0)
                                 (syntax-shifted-multi-scopes s_0)
                                 (syntax-mpi-shifts s_0))))
                           (if prop_0
                             (modified-content1.1 content_0 prop_0)
                             content_0))
                         content*_0)))
                  (let ((scopes57_1 scopes57_0))
                    (syntax2.1
                     content*58_0
                     scopes57_1
                     (syntax-shifted-multi-scopes s_0)
                     (syntax-mpi-shifts s_0)
                     (syntax-srcloc$1 s_0)
                     (syntax-props s_0)
                     (syntax-inspector s_0)))))
              (raise-argument-error 'struct-copy "syntax?" s_0))))))))
(define flip-scopes
  (lambda (s_0 scs_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (s_1 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((sc_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((s_2
                           (let ((s_2 (flip-scope s_1 sc_0))) (values s_2))))
                      (for-loop_0 s_2 rest_0))))
                s_1))))))
       (for-loop_0 s_0 scs_0)))))
(define push-scope
  (lambda (s_0 sms_0)
    (let ((smss/maybe-fallbacks59_0 #f))
      (let ((prev-result_0 #f))
        (let ((push_0
               (|#%name|
                push
                (lambda (smss/maybe-fallbacks_0)
                  (begin
                    (if (eq? smss/maybe-fallbacks59_0 smss/maybe-fallbacks_0)
                      prev-result_0
                      (let ((r_0
                             (let ((smss_0
                                    (fallback-first smss/maybe-fallbacks_0)))
                               (if (begin-unsafe (zero? (hash-count smss_0)))
                                 (begin-unsafe (hash-set smss_0 sms_0 #t))
                                 (if (begin-unsafe (hash-ref smss_0 sms_0 #f))
                                   smss/maybe-fallbacks_0
                                   (fallback-push
                                    (begin-unsafe (hash-set smss_0 sms_0 #t))
                                    smss/maybe-fallbacks_0))))))
                        (begin
                          (set! smss/maybe-fallbacks59_0
                            smss/maybe-fallbacks_0)
                          (set! prev-result_0 r_0)
                          r_0))))))))
          (let ((f_0 (|#%name| f (lambda (tail?_0 x_0) (begin x_0)))))
            (let ((d->s_0
                   (|#%name|
                    d->s
                    (lambda (s_1 d_0)
                      (begin
                        (if (syntax?$1 s_1)
                          (let ((content*60_0 (re-modify-content s_1 d_0)))
                            (let ((shifted-multi-scopes61_0
                                   (push_0 (syntax-shifted-multi-scopes s_1))))
                              (let ((content*60_1 content*60_0))
                                (syntax2.1
                                 content*60_1
                                 (syntax-scopes s_1)
                                 shifted-multi-scopes61_0
                                 (syntax-mpi-shifts s_1)
                                 (syntax-srcloc$1 s_1)
                                 (syntax-props s_1)
                                 (syntax-inspector s_1)))))
                          (raise-argument-error
                           'struct-copy
                           "syntax?"
                           s_1)))))))
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (s_1)
                    (begin
                      (let ((f_1 f_0))
                        (let ((gf_0
                               (|#%name|
                                gf
                                (lambda (tail?_0 v_0)
                                  (begin
                                    (if (syntax?$1 v_0)
                                      (d->s_0 v_0 (loop_0 (syntax-e$1 v_0)))
                                      (begin-unsafe (begin v_0))))))))
                          (letrec*
                           ((loop_1
                             (|#%name|
                              loop
                              (lambda (tail?_0 s_2 prev-depth_0)
                                (begin
                                  (let ((depth_0 (fx+ 1 prev-depth_0)))
                                    (if (null? s_2)
                                      (begin-unsafe (begin s_2))
                                      (if (pair? s_2)
                                        (let ((x_0
                                               (let ((app_0
                                                      (loop_1
                                                       #f
                                                       (car s_2)
                                                       depth_0)))
                                                 (cons
                                                  app_0
                                                  (loop_1
                                                   1
                                                   (cdr s_2)
                                                   depth_0)))))
                                          (begin-unsafe (begin x_0)))
                                        (if (symbol? s_2)
                                          (begin-unsafe (begin s_2))
                                          (if (boolean? s_2)
                                            (begin-unsafe (begin s_2))
                                            (if (number? s_2)
                                              (begin-unsafe (begin s_2))
                                              (if (let ((or-part_0
                                                         (vector? s_2)))
                                                    (if or-part_0
                                                      or-part_0
                                                      (let ((or-part_1
                                                             (box? s_2)))
                                                        (if or-part_1
                                                          or-part_1
                                                          (let ((or-part_2
                                                                 (prefab-struct-key
                                                                  s_2)))
                                                            (if or-part_2
                                                              or-part_2
                                                              (hash? s_2)))))))
                                                (datum-map-slow
                                                 tail?_0
                                                 s_2
                                                 (lambda (tail?_1 s_3)
                                                   (gf_0 tail?_1 s_3))
                                                 #f
                                                 #f)
                                                (gf_0 #f s_2)))))))))))))
                           (loop_1 #f s_1 0)))))))))
               (loop_0 s_0)))))))))
(define finish_2814
  (make-struct-type-install-properties
   '(propagation)
   7
   0
   #f
   (list
    (cons prop:sealed #t)
    (cons prop:authentic #t)
    (cons
     prop:propagation-set-taint
     (lambda (p_0 v_0) (propagation-set-taint p_0 v_0)))
    (cons prop:propagation-taint (lambda (p_0) (propagation-taint p_0)))
    (cons prop:propagation syntax-e$1))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6)
   #f
   'propagation))
(define struct:propagation
  (make-record-type-descriptor
   'propagation
   #f
   (|#%nongenerative-uid| propagation)
   #t
   #f
   '(7 . 0)))
(define effect_2326 (finish_2814 struct:propagation))
(define propagation12.1
  (|#%name|
   propagation
   (record-constructor
    (make-record-constructor-descriptor struct:propagation #f #f))))
(define propagation?
  (|#%name| propagation? (record-predicate struct:propagation)))
(define propagation-prev-scs
  (|#%name| propagation-prev-scs (record-accessor struct:propagation 0)))
(define propagation-prev-smss
  (|#%name| propagation-prev-smss (record-accessor struct:propagation 1)))
(define propagation-scope-ops
  (|#%name| propagation-scope-ops (record-accessor struct:propagation 2)))
(define propagation-prev-mss
  (|#%name| propagation-prev-mss (record-accessor struct:propagation 3)))
(define propagation-add-mpi-shifts
  (|#%name| propagation-add-mpi-shifts (record-accessor struct:propagation 4)))
(define propagation-inspector
  (|#%name| propagation-inspector (record-accessor struct:propagation 5)))
(define propagation-taint
  (|#%name| propagation-taint (record-accessor struct:propagation 6)))
(define propagation-add
  (lambda (prop_0 sc_0 prev-scs_0 prev-smss_0 prev-mss_0)
    (if (propagation? prop_0)
      (if (propagation? prop_0)
        (let ((scope-ops63_0
               (hash-set (propagation-scope-ops prop_0) sc_0 'add)))
          (propagation12.1
           (propagation-prev-scs prop_0)
           (propagation-prev-smss prop_0)
           scope-ops63_0
           (propagation-prev-mss prop_0)
           (propagation-add-mpi-shifts prop_0)
           (propagation-inspector prop_0)
           (propagation-taint prop_0)))
        (raise-argument-error 'struct-copy "propagation?" prop_0))
      (propagation12.1
       prev-scs_0
       prev-smss_0
       (hasheq sc_0 'add)
       prev-mss_0
       #f
       #f
       prop_0))))
(define propagation-remove
  (lambda (prop_0 sc_0 prev-scs_0 prev-smss_0 prev-mss_0)
    (if (propagation? prop_0)
      (if (propagation? prop_0)
        (let ((scope-ops64_0
               (hash-set (propagation-scope-ops prop_0) sc_0 'remove)))
          (propagation12.1
           (propagation-prev-scs prop_0)
           (propagation-prev-smss prop_0)
           scope-ops64_0
           (propagation-prev-mss prop_0)
           (propagation-add-mpi-shifts prop_0)
           (propagation-inspector prop_0)
           (propagation-taint prop_0)))
        (raise-argument-error 'struct-copy "propagation?" prop_0))
      (propagation12.1
       prev-scs_0
       prev-smss_0
       (hasheq sc_0 'remove)
       prev-mss_0
       #f
       #f
       prop_0))))
(define propagation-flip
  (lambda (prop_0 sc_0 prev-scs_0 prev-smss_0 prev-mss_0)
    (if (propagation? prop_0)
      (let ((ops_0 (propagation-scope-ops prop_0)))
        (let ((current-op_0 (hash-ref ops_0 sc_0 #f)))
          (if (if (eq? current-op_0 'flip)
                (if (= 1 (hash-count ops_0))
                  (if (not (propagation-inspector prop_0))
                    (not (propagation-add-mpi-shifts prop_0))
                    #f)
                  #f)
                #f)
            (propagation-taint prop_0)
            (if (propagation? prop_0)
              (let ((scope-ops65_0
                     (if (eq? current-op_0 'flip)
                       (hash-remove ops_0 sc_0)
                       (hash-set
                        ops_0
                        sc_0
                        (if (eq? current-op_0 'add)
                          'remove
                          (if (eq? current-op_0 'remove) 'add 'flip))))))
                (propagation12.1
                 (propagation-prev-scs prop_0)
                 (propagation-prev-smss prop_0)
                 scope-ops65_0
                 (propagation-prev-mss prop_0)
                 (propagation-add-mpi-shifts prop_0)
                 (propagation-inspector prop_0)
                 (propagation-taint prop_0)))
              (raise-argument-error 'struct-copy "propagation?" prop_0)))))
      (propagation12.1
       prev-scs_0
       prev-smss_0
       (hasheq sc_0 'flip)
       prev-mss_0
       #f
       #f
       prop_0))))
(define propagation-mpi-shift
  (lambda (prop_0 add_0 inspector_0 prev-scs_0 prev-smss_0 prev-mss_0)
    (if (propagation? prop_0)
      (if (propagation? prop_0)
        (let ((add-mpi-shifts66_0
               (let ((base-add_0 (propagation-add-mpi-shifts prop_0)))
                 (if (if add_0 base-add_0 #f)
                   (|#%name|
                    add-mpi-shifts66
                    (lambda (mss_0)
                      (begin (|#%app| add_0 (|#%app| base-add_0 mss_0)))))
                   (if add_0 add_0 base-add_0)))))
          (let ((inspector67_0
                 (let ((or-part_0 (propagation-inspector prop_0)))
                   (if or-part_0 or-part_0 inspector_0))))
            (propagation12.1
             (propagation-prev-scs prop_0)
             (propagation-prev-smss prop_0)
             (propagation-scope-ops prop_0)
             (propagation-prev-mss prop_0)
             add-mpi-shifts66_0
             inspector67_0
             (propagation-taint prop_0))))
        (raise-argument-error 'struct-copy "propagation?" prop_0))
      (propagation12.1
       prev-scs_0
       prev-smss_0
       hash2610
       prev-mss_0
       add_0
       inspector_0
       prop_0))))
(define propagation-apply
  (lambda (prop_0 scs_0 parent-s_0)
    (if (eq? (propagation-prev-scs prop_0) scs_0)
      (syntax-scopes parent-s_0)
      (let ((new-scs_0
             (let ((ht_0 (propagation-scope-ops prop_0)))
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (scs_1 i_0)
                       (begin
                         (if i_0
                           (call-with-values
                            (lambda ()
                              (unsafe-immutable-hash-iterate-key+value
                               ht_0
                               i_0))
                            (case-lambda
                             ((sc_0 op_0)
                              (let ((scs_2
                                     (if (not (shifted-multi-scope? sc_0))
                                       (let ((scs_2
                                              (if (eq? op_0 'add)
                                                (begin-unsafe
                                                 (hash-set scs_1 sc_0 #t))
                                                (if (eq? op_0 'remove)
                                                  (begin-unsafe
                                                   (hash-remove scs_1 sc_0))
                                                  (set-flip scs_1 sc_0)))))
                                         (values scs_2))
                                       scs_1)))
                                (for-loop_0
                                 scs_2
                                 (unsafe-immutable-hash-iterate-next
                                  ht_0
                                  i_0))))
                             (args (raise-binding-result-arity-error 2 args))))
                           scs_1))))))
                  (for-loop_0
                   scs_0
                   (unsafe-immutable-hash-iterate-first ht_0)))))))
        (if (set=? new-scs_0 (syntax-scopes parent-s_0))
          (syntax-scopes parent-s_0)
          (cache-or-reuse-set new-scs_0))))))
(define propagation-apply-shifted
  (lambda (prop_0 smss_0 parent-s_0)
    (if (eq? (propagation-prev-smss prop_0) smss_0)
      (syntax-shifted-multi-scopes parent-s_0)
      (let ((new-smss_0
             (let ((ht_0 (propagation-scope-ops prop_0)))
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (smss_1 i_0)
                       (begin
                         (if i_0
                           (call-with-values
                            (lambda ()
                              (unsafe-immutable-hash-iterate-key+value
                               ht_0
                               i_0))
                            (case-lambda
                             ((sms_0 op_0)
                              (let ((smss_2
                                     (if (shifted-multi-scope? sms_0)
                                       (let ((smss_2
                                              (fallback-update-first
                                               smss_1
                                               (lambda (smss_2)
                                                 (if (eq? op_0 'add)
                                                   (begin-unsafe
                                                    (hash-set smss_2 sms_0 #t))
                                                   (if (eq? op_0 'remove)
                                                     (begin-unsafe
                                                      (hash-remove
                                                       smss_2
                                                       sms_0))
                                                     (set-flip
                                                      smss_2
                                                      sms_0)))))))
                                         (values smss_2))
                                       smss_1)))
                                (for-loop_0
                                 smss_2
                                 (unsafe-immutable-hash-iterate-next
                                  ht_0
                                  i_0))))
                             (args (raise-binding-result-arity-error 2 args))))
                           smss_1))))))
                  (for-loop_0
                   smss_0
                   (unsafe-immutable-hash-iterate-first ht_0)))))))
        (let ((parent-smss_0 (syntax-shifted-multi-scopes parent-s_0)))
          (if (if (begin-unsafe (hash? new-smss_0))
                (if (begin-unsafe (hash? parent-smss_0))
                  (set=? new-smss_0 parent-smss_0)
                  #f)
                #f)
            parent-smss_0
            (cache-or-reuse-hash new-smss_0)))))))
(define propagation-apply-mpi-shifts
  (lambda (prop_0 mss_0 parent-s_0)
    (if (eq? (propagation-prev-mss prop_0) mss_0)
      (syntax-mpi-shifts parent-s_0)
      (let ((add_0 (propagation-add-mpi-shifts prop_0)))
        (if add_0 (|#%app| add_0 mss_0) mss_0)))))
(define propagation-apply-inspector
  (lambda (prop_0 i_0) (if i_0 i_0 (propagation-inspector prop_0))))
(define propagation-set-taint
  (lambda (prop_0 t_0)
    (if (propagation? prop_0)
      (if (propagation? prop_0)
        (propagation12.1
         (propagation-prev-scs prop_0)
         (propagation-prev-smss prop_0)
         (propagation-scope-ops prop_0)
         (propagation-prev-mss prop_0)
         (propagation-add-mpi-shifts prop_0)
         (propagation-inspector prop_0)
         t_0)
        (raise-argument-error 'struct-copy "propagation?" prop_0))
      t_0)))
(define propagation-merge
  (lambda (content_0 prop_0 base-prop_0 prev-scs_0 prev-smss_0 prev-mss_0)
    (if (not (datum-has-elements? content_0))
      (if (propagation-taint prop_0) 'tainted base-prop_0)
      (if (not (propagation? base-prop_0))
        (if (if (eq? (propagation-prev-scs prop_0) prev-scs_0)
              (if (eq? (propagation-prev-smss prop_0) prev-smss_0)
                (if (eq? (propagation-prev-mss prop_0) prev-mss_0)
                  (eq? (propagation-taint prop_0) base-prop_0)
                  #f)
                #f)
              #f)
          prop_0
          (propagation12.1
           prev-scs_0
           prev-smss_0
           (propagation-scope-ops prop_0)
           prev-mss_0
           (propagation-add-mpi-shifts prop_0)
           (propagation-inspector prop_0)
           (if (propagation-taint prop_0)
             'tainted/need-propagate
             base-prop_0)))
        (let ((new-ops_0
               (let ((ht_0 (propagation-scope-ops prop_0)))
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (ops_0 i_0)
                         (begin
                           (if i_0
                             (call-with-values
                              (lambda ()
                                (unsafe-immutable-hash-iterate-key+value
                                 ht_0
                                 i_0))
                              (case-lambda
                               ((sc_0 op_0)
                                (let ((ops_1
                                       (let ((ops_1
                                              (if (eq? op_0 'add)
                                                (hash-set ops_0 sc_0 'add)
                                                (if (eq? op_0 'remove)
                                                  (hash-set ops_0 sc_0 'remove)
                                                  (let ((current-op_0
                                                         (hash-ref
                                                          ops_0
                                                          sc_0
                                                          #f)))
                                                    (if (eq? current-op_0 'add)
                                                      (hash-set
                                                       ops_0
                                                       sc_0
                                                       'remove)
                                                      (if (eq?
                                                           current-op_0
                                                           'remove)
                                                        (hash-set
                                                         ops_0
                                                         sc_0
                                                         'add)
                                                        (if (eq?
                                                             current-op_0
                                                             'flip)
                                                          (hash-remove
                                                           ops_0
                                                           sc_0)
                                                          (hash-set
                                                           ops_0
                                                           sc_0
                                                           'flip)))))))))
                                         (values ops_1))))
                                  (for-loop_0
                                   ops_1
                                   (unsafe-immutable-hash-iterate-next
                                    ht_0
                                    i_0))))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             ops_0))))))
                    (for-loop_0
                     (propagation-scope-ops base-prop_0)
                     (unsafe-immutable-hash-iterate-first ht_0)))))))
          (let ((add_0 (propagation-add-mpi-shifts prop_0)))
            (let ((base-add_0 (propagation-add-mpi-shifts base-prop_0)))
              (let ((new-taint_0
                     (if (let ((or-part_0 (propagation-taint prop_0)))
                           (if or-part_0
                             or-part_0
                             (propagation-taint base-prop_0)))
                       'tainted/need-propagate
                       (propagation-taint base-prop_0))))
                (if (if (zero? (hash-count new-ops_0))
                      (if (not add_0)
                        (if (not base-add_0)
                          (if (not (propagation-inspector prop_0))
                            (not (propagation-inspector base-prop_0))
                            #f)
                          #f)
                        #f)
                      #f)
                  new-taint_0
                  (if (propagation? base-prop_0)
                    (let ((add-mpi-shifts70_0
                           (if (if add_0 base-add_0 #f)
                             (|#%name|
                              add-mpi-shifts70
                              (lambda (mss_0)
                                (begin
                                  (|#%app| add_0 (|#%app| base-add_0 mss_0)))))
                             (if add_0 add_0 base-add_0))))
                      (let ((inspector71_0
                             (let ((or-part_0
                                    (propagation-inspector base-prop_0)))
                               (if or-part_0
                                 or-part_0
                                 (propagation-inspector prop_0)))))
                        (propagation12.1
                         (propagation-prev-scs base-prop_0)
                         (propagation-prev-smss base-prop_0)
                         new-ops_0
                         (propagation-prev-mss base-prop_0)
                         add-mpi-shifts70_0
                         inspector71_0
                         new-taint_0)))
                    (raise-argument-error
                     'struct-copy
                     "propagation?"
                     base-prop_0)))))))))))
(define shift-multi-scope
  (lambda (sms_0 delta_0)
    (if (begin-unsafe (eq? delta_0 0))
      sms_0
      (if (begin-unsafe (not delta_0))
        (if (shifted-to-label-phase? (shifted-multi-scope-phase sms_0))
          #f
          (let ((app_0
                 (shifted-to-label-phase6.1
                  (phase- 0 (shifted-multi-scope-phase sms_0)))))
            (intern-shifted-multi-scope
             app_0
             (shifted-multi-scope-multi-scope sms_0))))
        (if (shifted-to-label-phase? (shifted-multi-scope-phase sms_0))
          sms_0
          (let ((app_0 (phase+ delta_0 (shifted-multi-scope-phase sms_0))))
            (intern-shifted-multi-scope
             app_0
             (shifted-multi-scope-multi-scope sms_0))))))))
(define syntax-shift-phase-level$1
  (|#%name|
   syntax-shift-phase-level
   (lambda (s_0 phase_0)
     (begin
       (if (eqv? phase_0 0)
         s_0
         (let ((smss73_0 #f))
           (let ((prev-result_0 #f))
             (let ((shift-all_0
                    (|#%name|
                     shift-all
                     (lambda (smss_0)
                       (begin
                         (if (eq? smss73_0 smss_0)
                           prev-result_0
                           (let ((r_0
                                  (fallback-map
                                   smss_0
                                   (lambda (smss_1)
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (table_0 i_0)
                                             (begin
                                               (if i_0
                                                 (let ((sms_0
                                                        (unsafe-immutable-hash-iterate-key
                                                         smss_1
                                                         i_0)))
                                                   (let ((table_1
                                                          (let ((id*_0
                                                                 (shift-multi-scope
                                                                  sms_0
                                                                  phase_0)))
                                                            (begin
                                                              #t
                                                              (letrec*
                                                               ((for-loop_1
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (table_1)
                                                                    (begin
                                                                      (let ((table_2
                                                                             (if id*_0
                                                                               (let ((table_2
                                                                                      (call-with-values
                                                                                       (lambda ()
                                                                                         (values
                                                                                          id*_0
                                                                                          #t))
                                                                                       (case-lambda
                                                                                        ((key_0
                                                                                          val_0)
                                                                                         (hash-set
                                                                                          table_1
                                                                                          key_0
                                                                                          val_0))
                                                                                        (args
                                                                                         (raise-binding-result-arity-error
                                                                                          2
                                                                                          args))))))
                                                                                 (values
                                                                                  table_2))
                                                                               table_1)))
                                                                        table_2))))))
                                                               (for-loop_1
                                                                table_0))))))
                                                     (for-loop_0
                                                      table_1
                                                      (unsafe-immutable-hash-iterate-next
                                                       smss_1
                                                       i_0))))
                                                 table_0))))))
                                        (for-loop_0
                                         hash2610
                                         (unsafe-immutable-hash-iterate-first
                                          smss_1))))))))
                             (begin
                               (set! smss73_0 smss_0)
                               (set! prev-result_0 r_0)
                               r_0))))))))
               (let ((f_0 (|#%name| f (lambda (tail?_0 d_0) (begin d_0)))))
                 (let ((d->s_0
                        (|#%name|
                         d->s
                         (lambda (s_1 d_0)
                           (begin
                             (if (syntax?$1 s_1)
                               (let ((content*74_0
                                      (re-modify-content s_1 d_0)))
                                 (let ((shifted-multi-scopes75_0
                                        (shift-all_0
                                         (syntax-shifted-multi-scopes s_1))))
                                   (let ((content*74_1 content*74_0))
                                     (syntax2.1
                                      content*74_1
                                      (syntax-scopes s_1)
                                      shifted-multi-scopes75_0
                                      (syntax-mpi-shifts s_1)
                                      (syntax-srcloc$1 s_1)
                                      (syntax-props s_1)
                                      (syntax-inspector s_1)))))
                               (raise-argument-error
                                'struct-copy
                                "syntax?"
                                s_1)))))))
                   (letrec*
                    ((loop_0
                      (|#%name|
                       loop
                       (lambda (s_1)
                         (begin
                           (let ((f_1 f_0))
                             (let ((gf_0
                                    (|#%name|
                                     gf
                                     (lambda (tail?_0 v_0)
                                       (begin
                                         (if (syntax?$1 v_0)
                                           (d->s_0
                                            v_0
                                            (loop_0 (syntax-e$1 v_0)))
                                           (begin-unsafe (begin v_0))))))))
                               (letrec*
                                ((loop_1
                                  (|#%name|
                                   loop
                                   (lambda (tail?_0 s_2 prev-depth_0)
                                     (begin
                                       (let ((depth_0 (fx+ 1 prev-depth_0)))
                                         (if (null? s_2)
                                           (begin-unsafe (begin s_2))
                                           (if (pair? s_2)
                                             (let ((d_0
                                                    (let ((app_0
                                                           (loop_1
                                                            #f
                                                            (car s_2)
                                                            depth_0)))
                                                      (cons
                                                       app_0
                                                       (loop_1
                                                        1
                                                        (cdr s_2)
                                                        depth_0)))))
                                               (begin-unsafe (begin d_0)))
                                             (if (symbol? s_2)
                                               (begin-unsafe (begin s_2))
                                               (if (boolean? s_2)
                                                 (begin-unsafe (begin s_2))
                                                 (if (number? s_2)
                                                   (begin-unsafe (begin s_2))
                                                   (if (let ((or-part_0
                                                              (vector? s_2)))
                                                         (if or-part_0
                                                           or-part_0
                                                           (let ((or-part_1
                                                                  (box? s_2)))
                                                             (if or-part_1
                                                               or-part_1
                                                               (let ((or-part_2
                                                                      (prefab-struct-key
                                                                       s_2)))
                                                                 (if or-part_2
                                                                   or-part_2
                                                                   (hash?
                                                                    s_2)))))))
                                                     (datum-map-slow
                                                      tail?_0
                                                      s_2
                                                      (lambda (tail?_1 s_3)
                                                        (gf_0 tail?_1 s_3))
                                                      #f
                                                      #f)
                                                     (gf_0 #f s_2)))))))))))))
                                (loop_1 #f s_1 0)))))))))
                    (loop_0 s_0))))))))))))
(define shifted-multi-scope-add-binding-phases
  (lambda (sms_0 phases_0)
    (let ((ms_0 (shifted-multi-scope-multi-scope sms_0)))
      (let ((phase_0 (shifted-multi-scope-phase sms_0)))
        (if (shifted-to-label-phase? phase_0)
          (begin-unsafe (hash-set phases_0 #f #t))
          (let ((ht_0 (unbox (multi-scope-scopes ms_0))))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (phases_1 i_0)
                    (begin
                      (if i_0
                        (let ((ph_0 (hash-iterate-key ht_0 i_0)))
                          (let ((phases_2
                                 (let ((phases_2
                                        (if (begin-unsafe (not ph_0))
                                          (begin-unsafe
                                           (hash-set phases_1 #f #t))
                                          (let ((e_0 (phase- phase_0 ph_0)))
                                            (begin-unsafe
                                             (hash-set phases_1 e_0 #t))))))
                                   (values phases_2))))
                            (for-loop_0
                             phases_2
                             (hash-iterate-next ht_0 i_0))))
                        phases_1))))))
               (for-loop_0 phases_0 (hash-iterate-first ht_0))))))))))
(define syntax-swap-scopes
  (lambda (s_0 src-scopes_0 dest-scopes_0)
    (if (equal? src-scopes_0 dest-scopes_0)
      s_0
      (call-with-values
       (lambda ()
         (let ((app_0
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (table_0 i_0)
                        (begin
                          (if i_0
                            (let ((sc_0
                                   (unsafe-immutable-hash-iterate-key
                                    src-scopes_0
                                    i_0)))
                              (let ((table_1
                                     (let ((table_1
                                            (call-with-values
                                             (lambda ()
                                               (values
                                                (generalize-scope sc_0)
                                                #t))
                                             (case-lambda
                                              ((key_0 val_0)
                                               (hash-set table_0 key_0 val_0))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))))
                                       (values table_1))))
                                (for-loop_0
                                 table_1
                                 (unsafe-immutable-hash-iterate-next
                                  src-scopes_0
                                  i_0))))
                            table_0))))))
                   (for-loop_0
                    hash2610
                    (unsafe-immutable-hash-iterate-first src-scopes_0))))))
           (let ((app_1 (seteq)))
             (set-partition app_0 shifted-multi-scope? app_1 (seteq)))))
       (case-lambda
        ((src-smss_0 src-scs_0)
         (call-with-values
          (lambda ()
            (let ((app_0
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (table_0 i_0)
                           (begin
                             (if i_0
                               (let ((sc_0
                                      (unsafe-immutable-hash-iterate-key
                                       dest-scopes_0
                                       i_0)))
                                 (let ((table_1
                                        (let ((table_1
                                               (call-with-values
                                                (lambda ()
                                                  (values
                                                   (generalize-scope sc_0)
                                                   #t))
                                                (case-lambda
                                                 ((key_0 val_0)
                                                  (hash-set
                                                   table_0
                                                   key_0
                                                   val_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))))
                                          (values table_1))))
                                   (for-loop_0
                                    table_1
                                    (unsafe-immutable-hash-iterate-next
                                     dest-scopes_0
                                     i_0))))
                               table_0))))))
                      (for-loop_0
                       hash2610
                       (unsafe-immutable-hash-iterate-first dest-scopes_0))))))
              (let ((app_1 (seteq)))
                (set-partition app_0 shifted-multi-scope? app_1 (seteq)))))
          (case-lambda
           ((dest-smss_0 dest-scs_0)
            (let ((src-smss_1 src-smss_0) (src-scs_1 src-scs_0))
              (let ((scs76_0 #f))
                (let ((prev-result_0 #f))
                  (let ((swap-scs_0
                         (|#%name|
                          swap-scs
                          (lambda (scs_0)
                            (begin
                              (if (eq? scs76_0 scs_0)
                                prev-result_0
                                (let ((r_0
                                       (if (begin-unsafe
                                            (hash-keys-subset?
                                             src-scs_1
                                             scs_0))
                                         (set-union
                                          (set-subtract scs_0 src-scs_1)
                                          dest-scs_0)
                                         scs_0)))
                                  (begin
                                    (set! scs76_0 scs_0)
                                    (set! prev-result_0 r_0)
                                    r_0))))))))
                    (let ((smss77_0 #f))
                      (let ((prev-result_1 #f))
                        (let ((swap-smss_0
                               (|#%name|
                                swap-smss
                                (lambda (smss_0)
                                  (begin
                                    (if (eq? smss77_0 smss_0)
                                      prev-result_1
                                      (let ((r_0
                                             (fallback-update-first
                                              smss_0
                                              (lambda (smss_1)
                                                (if (begin-unsafe
                                                     (hash-keys-subset?
                                                      src-smss_1
                                                      smss_1))
                                                  (set-union
                                                   (set-subtract
                                                    smss_1
                                                    src-smss_1)
                                                   dest-smss_0)
                                                  smss_1)))))
                                        (begin
                                          (set! smss77_0 smss_0)
                                          (set! prev-result_1 r_0)
                                          r_0))))))))
                          (let ((f_0
                                 (|#%name|
                                  f
                                  (lambda (tail?_0 d_0) (begin d_0)))))
                            (let ((d->s_0
                                   (|#%name|
                                    d->s
                                    (lambda (s_1 d_0)
                                      (begin
                                        (if (syntax?$1 s_1)
                                          (let ((content*78_0
                                                 (re-modify-content s_1 d_0)))
                                            (let ((scopes79_0
                                                   (swap-scs_0
                                                    (syntax-scopes s_1))))
                                              (let ((shifted-multi-scopes80_0
                                                     (swap-smss_0
                                                      (syntax-shifted-multi-scopes
                                                       s_1))))
                                                (let ((scopes79_1 scopes79_0)
                                                      (content*78_1
                                                       content*78_0))
                                                  (syntax2.1
                                                   content*78_1
                                                   scopes79_1
                                                   shifted-multi-scopes80_0
                                                   (syntax-mpi-shifts s_1)
                                                   (syntax-srcloc$1 s_1)
                                                   (syntax-props s_1)
                                                   (syntax-inspector s_1))))))
                                          (raise-argument-error
                                           'struct-copy
                                           "syntax?"
                                           s_1)))))))
                              (letrec*
                               ((loop_0
                                 (|#%name|
                                  loop
                                  (lambda (s_1)
                                    (begin
                                      (let ((f_1 f_0))
                                        (let ((gf_0
                                               (|#%name|
                                                gf
                                                (lambda (tail?_0 v_0)
                                                  (begin
                                                    (if (syntax?$1 v_0)
                                                      (d->s_0
                                                       v_0
                                                       (loop_0
                                                        (syntax-e$1 v_0)))
                                                      (begin-unsafe
                                                       (begin v_0))))))))
                                          (letrec*
                                           ((loop_1
                                             (|#%name|
                                              loop
                                              (lambda (tail?_0
                                                       s_2
                                                       prev-depth_0)
                                                (begin
                                                  (let ((depth_0
                                                         (fx+ 1 prev-depth_0)))
                                                    (if (null? s_2)
                                                      (begin-unsafe
                                                       (begin s_2))
                                                      (if (pair? s_2)
                                                        (let ((d_0
                                                               (let ((app_0
                                                                      (loop_1
                                                                       #f
                                                                       (car
                                                                        s_2)
                                                                       depth_0)))
                                                                 (cons
                                                                  app_0
                                                                  (loop_1
                                                                   1
                                                                   (cdr s_2)
                                                                   depth_0)))))
                                                          (begin-unsafe
                                                           (begin d_0)))
                                                        (if (symbol? s_2)
                                                          (begin-unsafe
                                                           (begin s_2))
                                                          (if (boolean? s_2)
                                                            (begin-unsafe
                                                             (begin s_2))
                                                            (if (number? s_2)
                                                              (begin-unsafe
                                                               (begin s_2))
                                                              (if (let ((or-part_0
                                                                         (vector?
                                                                          s_2)))
                                                                    (if or-part_0
                                                                      or-part_0
                                                                      (let ((or-part_1
                                                                             (box?
                                                                              s_2)))
                                                                        (if or-part_1
                                                                          or-part_1
                                                                          (let ((or-part_2
                                                                                 (prefab-struct-key
                                                                                  s_2)))
                                                                            (if or-part_2
                                                                              or-part_2
                                                                              (hash?
                                                                               s_2)))))))
                                                                (datum-map-slow
                                                                 tail?_0
                                                                 s_2
                                                                 (lambda (tail?_1
                                                                          s_3)
                                                                   (gf_0
                                                                    tail?_1
                                                                    s_3))
                                                                 #f
                                                                 #f)
                                                                (gf_0
                                                                 #f
                                                                 s_2)))))))))))))
                                           (loop_1 #f s_1 0)))))))))
                               (loop_0 s_0))))))))))))
           (args (raise-binding-result-arity-error 2 args)))))
        (args (raise-binding-result-arity-error 2 args)))))))
(define syntax-scope-set
  (lambda (s_0 phase_0)
    (scope-set-at-fallback
     s_0
     (fallback-first (syntax-shifted-multi-scopes s_0))
     phase_0)))
(define scope-set-at-fallback
  (lambda (s_0 smss_0 phase_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (scopes_0 i_0)
            (begin
              (if i_0
                (let ((sms_0 (unsafe-immutable-hash-iterate-key smss_0 i_0)))
                  (let ((scopes_1
                         (if (let ((or-part_0 (begin-unsafe (not phase_0))))
                               (if or-part_0
                                 or-part_0
                                 (not
                                  (shifted-to-label-phase?
                                   (shifted-multi-scope-phase sms_0)))))
                           (let ((scopes_1
                                  (let ((e_0
                                         (multi-scope-to-scope-at-phase
                                          (shifted-multi-scope-multi-scope
                                           sms_0)
                                          (let ((ph_0
                                                 (shifted-multi-scope-phase
                                                  sms_0)))
                                            (if (shifted-to-label-phase? ph_0)
                                              (shifted-to-label-phase-from
                                               ph_0)
                                              (phase- ph_0 phase_0))))))
                                    (begin-unsafe
                                     (hash-set scopes_0 e_0 #t)))))
                             (values scopes_1))
                           scopes_0)))
                    (for-loop_0
                     scopes_1
                     (unsafe-immutable-hash-iterate-next smss_0 i_0))))
                scopes_0))))))
       (for-loop_0
        (syntax-scopes s_0)
        (unsafe-immutable-hash-iterate-first smss_0))))))
(define find-max-scope
  (lambda (scopes_0)
    (begin
      (if (begin-unsafe (zero? (hash-count scopes_0)))
        (error "cannot bind in empty scope set")
        (void))
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (max-sc_0 i_0)
              (begin
                (if i_0
                  (let ((sc_0
                         (unsafe-immutable-hash-iterate-key scopes_0 i_0)))
                    (let ((max-sc_1
                           (let ((max-sc_1
                                  (if (begin-unsafe
                                       (> (scope-id sc_0) (scope-id max-sc_0)))
                                    sc_0
                                    max-sc_0)))
                             (values max-sc_1))))
                      (for-loop_0
                       max-sc_1
                       (unsafe-immutable-hash-iterate-next scopes_0 i_0))))
                  max-sc_0))))))
         (let ((app_0 (set-first scopes_0)))
           (for-loop_0
            app_0
            (unsafe-immutable-hash-iterate-first scopes_0))))))))
(define add-binding-in-scopes!.1
  (|#%name|
   add-binding-in-scopes!
   (lambda (just-for-nominal?13_0 scopes15_0 sym16_0 binding17_0)
     (begin
       (let ((max-sc_0 (find-max-scope scopes15_0)))
         (let ((bt_0
                (binding-table-add
                 (scope-binding-table max-sc_0)
                 scopes15_0
                 sym16_0
                 binding17_0
                 just-for-nominal?13_0)))
           (begin
             (set-scope-binding-table! max-sc_0 bt_0)
             (clear-resolve-cache! sym16_0))))))))
(define add-bulk-binding-in-scopes!.1
  (|#%name|
   add-bulk-binding-in-scopes!
   (lambda (shadow-except19_0 scopes21_0 bulk-binding22_0)
     (begin
       (let ((max-sc_0 (find-max-scope scopes21_0)))
         (let ((bt_0
                (let ((temp81_0 (scope-binding-table max-sc_0)))
                  (binding-table-add-bulk.1
                   shadow-except19_0
                   temp81_0
                   scopes21_0
                   bulk-binding22_0))))
           (begin
             (set-scope-binding-table! max-sc_0 bt_0)
             (clear-resolve-cache!))))))))
(define syntax-any-macro-scopes?
  (lambda (s_0)
    (let ((ht_0 (syntax-scopes s_0)))
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (result_0 i_0)
              (begin
                (if i_0
                  (let ((sc_0 (unsafe-immutable-hash-iterate-key ht_0 i_0)))
                    (let ((result_1
                           (let ((result_1 (eq? (scope-kind sc_0) 'macro)))
                             (values result_1))))
                      (if (if (not (let ((x_0 (list sc_0))) result_1)) #t #f)
                        (for-loop_0
                         result_1
                         (unsafe-immutable-hash-iterate-next ht_0 i_0))
                        result_1)))
                  result_0))))))
         (for-loop_0 #f (unsafe-immutable-hash-iterate-first ht_0)))))))
(define resolve.1
  (|#%name|
   resolve
   (lambda (ambiguous-value24_0
            exactly?25_0
            extra-shifts27_0
            get-scopes?26_0
            s32_0
            phase33_0)
     (begin
       (let ((sym_0 (syntax-content s32_0)))
         (letrec*
          ((fallback-loop_0
            (|#%name|
             fallback-loop
             (lambda (smss_0)
               (begin
                 (let ((c1_0
                        (if (not exactly?25_0)
                          (if (not get-scopes?26_0)
                            (resolve-cache-get
                             sym_0
                             phase33_0
                             (syntax-scopes s32_0)
                             (fallback-first smss_0))
                            #f)
                          #f)))
                   (if c1_0
                     (if (eq? c1_0 kw2450)
                       (if (fallback? smss_0)
                         (fallback-loop_0 (fallback-rest smss_0))
                         #f)
                       c1_0)
                     (let ((scopes_0
                            (scope-set-at-fallback
                             s32_0
                             (fallback-first smss_0)
                             phase33_0)))
                       (call-with-values
                        (lambda ()
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (best-scopes_0 best-binding_0 i_0)
                                  (begin
                                    (if i_0
                                      (let ((sc_0
                                             (unsafe-immutable-hash-iterate-key
                                              scopes_0
                                              i_0)))
                                        (call-with-values
                                         (lambda ()
                                           (call-with-values
                                            (lambda ()
                                              (let ((table_0
                                                     (scope-binding-table
                                                      sc_0)))
                                                (if (hash? table_0)
                                                  (values
                                                   (hash-ref
                                                    table_0
                                                    sym_0
                                                    hash2725)
                                                   null)
                                                  (let ((app_0
                                                         (hash-ref
                                                          (table-with-bulk-bindings-syms
                                                           table_0)
                                                          sym_0
                                                          hash2725)))
                                                    (values
                                                     app_0
                                                     (table-with-bulk-bindings-bulk-bindings
                                                      table_0))))))
                                            (case-lambda
                                             ((ht_0 bulk-bindings_0)
                                              (let ((s_0 s32_0))
                                                (let ((extra-shifts_0
                                                       extra-shifts27_0))
                                                  (let ((s_1 s_0)
                                                        (ht_1 ht_0)
                                                        (bulk-bindings_1
                                                         bulk-bindings_0))
                                                    (begin
                                                      #t
                                                      (letrec*
                                                       ((for-loop_1
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (best-scopes_1
                                                                   best-binding_1
                                                                   i_1)
                                                            (begin
                                                              (if (not
                                                                   (null? i_1))
                                                                (let ((b-scopes_0
                                                                       (if (pair?
                                                                            i_1)
                                                                         (bulk-binding-at-scopes
                                                                          (car
                                                                           i_1))
                                                                         (hash-iterate-key
                                                                          ht_1
                                                                          i_1))))
                                                                  (let ((binding_0
                                                                         (if (pair?
                                                                              i_1)
                                                                           (let ((bulk_0
                                                                                  (bulk-binding-at-bulk
                                                                                   (car
                                                                                    i_1))))
                                                                             (let ((b-info_0
                                                                                    (if (symbol-interned?
                                                                                         sym_0)
                                                                                      (hash-ref
                                                                                       (bulk-binding-symbols
                                                                                        bulk_0
                                                                                        s_1
                                                                                        extra-shifts_0)
                                                                                       sym_0
                                                                                       #f)
                                                                                      #f)))
                                                                               (if b-info_0
                                                                                 (|#%app|
                                                                                  (begin-unsafe
                                                                                   (bulk-binding-class-create
                                                                                    (bulk-binding-ref
                                                                                     bulk_0)))
                                                                                  bulk_0
                                                                                  b-info_0
                                                                                  sym_0)
                                                                                 #f)))
                                                                           (hash-iterate-value
                                                                            ht_1
                                                                            i_1))))
                                                                    (let ((b-scopes_1
                                                                           b-scopes_0))
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (if (if b-scopes_1
                                                                               (if binding_0
                                                                                 (begin-unsafe
                                                                                  (hash-keys-subset?
                                                                                   b-scopes_1
                                                                                   scopes_0))
                                                                                 #f)
                                                                               #f)
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (if (pair?
                                                                                   best-scopes_1)
                                                                                (if (begin
                                                                                      (letrec*
                                                                                       ((for-loop_2
                                                                                         (|#%name|
                                                                                          for-loop
                                                                                          (lambda (result_0
                                                                                                   lst_0)
                                                                                            (begin
                                                                                              (if (pair?
                                                                                                   lst_0)
                                                                                                (let ((amb-scopes_0
                                                                                                       (unsafe-car
                                                                                                        lst_0)))
                                                                                                  (let ((rest_0
                                                                                                         (unsafe-cdr
                                                                                                          lst_0)))
                                                                                                    (let ((result_1
                                                                                                           (let ((result_1
                                                                                                                  (begin-unsafe
                                                                                                                   (hash-keys-subset?
                                                                                                                    amb-scopes_0
                                                                                                                    b-scopes_1))))
                                                                                                             (values
                                                                                                              result_1))))
                                                                                                      (if (if (not
                                                                                                               (let ((x_0
                                                                                                                      (list
                                                                                                                       amb-scopes_0)))
                                                                                                                 (not
                                                                                                                  result_1)))
                                                                                                            #t
                                                                                                            #f)
                                                                                                        (for-loop_2
                                                                                                         result_1
                                                                                                         rest_0)
                                                                                                        result_1))))
                                                                                                result_0))))))
                                                                                       (for-loop_2
                                                                                        #t
                                                                                        best-scopes_1)))
                                                                                  (values
                                                                                   b-scopes_1
                                                                                   binding_0)
                                                                                  (values
                                                                                   (cons
                                                                                    b-scopes_1
                                                                                    best-scopes_1)
                                                                                   #f))
                                                                                (if (not
                                                                                     best-scopes_1)
                                                                                  (values
                                                                                   b-scopes_1
                                                                                   binding_0)
                                                                                  (if (begin-unsafe
                                                                                       (hash-keys-subset?
                                                                                        b-scopes_1
                                                                                        best-scopes_1))
                                                                                    (values
                                                                                     best-scopes_1
                                                                                     best-binding_1)
                                                                                    (if (begin-unsafe
                                                                                         (hash-keys-subset?
                                                                                          best-scopes_1
                                                                                          b-scopes_1))
                                                                                      (values
                                                                                       b-scopes_1
                                                                                       binding_0)
                                                                                      (values
                                                                                       (list
                                                                                        best-scopes_1
                                                                                        b-scopes_1)
                                                                                       #f))))))
                                                                            (case-lambda
                                                                             ((best-scopes_2
                                                                               best-binding_2)
                                                                              (values
                                                                               best-scopes_2
                                                                               best-binding_2))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args))))
                                                                           (values
                                                                            best-scopes_1
                                                                            best-binding_1)))
                                                                       (case-lambda
                                                                        ((best-scopes_2
                                                                          best-binding_2)
                                                                         (for-loop_1
                                                                          best-scopes_2
                                                                          best-binding_2
                                                                          (if (pair?
                                                                               i_1)
                                                                            (cdr
                                                                             i_1)
                                                                            (let ((or-part_0
                                                                                   (hash-iterate-next
                                                                                    ht_1
                                                                                    i_1)))
                                                                              (if or-part_0
                                                                                or-part_0
                                                                                bulk-bindings_1)))))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args)))))))
                                                                (values
                                                                 best-scopes_1
                                                                 best-binding_1)))))))
                                                       (for-loop_1
                                                        best-scopes_0
                                                        best-binding_0
                                                        (let ((or-part_0
                                                               (hash-iterate-first
                                                                ht_1)))
                                                          (if or-part_0
                                                            or-part_0
                                                            bulk-bindings_1)))))))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args)))))
                                         (case-lambda
                                          ((best-scopes_1 best-binding_1)
                                           (for-loop_0
                                            best-scopes_1
                                            best-binding_1
                                            (unsafe-immutable-hash-iterate-next
                                             scopes_0
                                             i_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args)))))
                                      (values
                                       best-scopes_0
                                       best-binding_0)))))))
                             (for-loop_0
                              #f
                              #f
                              (unsafe-immutable-hash-iterate-first
                               scopes_0)))))
                        (case-lambda
                         ((best-scopes_0 best-binding_0)
                          (if (pair? best-scopes_0)
                            (if (fallback? smss_0)
                              (fallback-loop_0 (fallback-rest smss_0))
                              ambiguous-value24_0)
                            (if best-scopes_0
                              (begin
                                (resolve-cache-set!
                                 sym_0
                                 phase33_0
                                 (syntax-scopes s32_0)
                                 (fallback-first smss_0)
                                 best-binding_0)
                                (if (let ((or-part_0 (not exactly?25_0)))
                                      (if or-part_0
                                        or-part_0
                                        (let ((app_0
                                               (begin-unsafe
                                                (hash-count scopes_0))))
                                          (eqv?
                                           app_0
                                           (begin-unsafe
                                            (hash-count best-scopes_0))))))
                                  (if get-scopes?26_0
                                    best-scopes_0
                                    best-binding_0)
                                  #f))
                              (begin
                                (resolve-cache-set!
                                 sym_0
                                 phase33_0
                                 (syntax-scopes s32_0)
                                 (fallback-first smss_0)
                                 kw2450)
                                (if (fallback? smss_0)
                                  (fallback-loop_0 (fallback-rest smss_0))
                                  #f)))))
                         (args
                          (raise-binding-result-arity-error 2 args))))))))))))
          (fallback-loop_0 (syntax-shifted-multi-scopes s32_0))))))))
(define bound-identifier=?$1
  (|#%name|
   bound-identifier=?
   (lambda (a_0 b_0 phase_0)
     (begin
       (if (let ((app_0 (syntax-e$1 a_0))) (eq? app_0 (syntax-e$1 b_0)))
         (let ((app_0 (syntax-scope-set a_0 phase_0)))
           (equal? app_0 (syntax-scope-set b_0 phase_0)))
         #f)))))
(define local-binding?
  (lambda (b_0)
    (let ((or-part_0 (full-local-binding? b_0)))
      (if or-part_0 or-part_0 (symbol? b_0)))))
(define finish_2041
  (make-struct-type-install-properties
   '(full-local-binding)
   1
   0
   struct:full-binding
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (b_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2677)
         (|#%app| ser-push!_0 (full-local-binding-key b_0))
         (|#%app| ser-push!_0 (full-binding-free=id b_0))))))
   (current-inspector)
   #f
   '(0)
   #f
   'full-local-binding))
(define struct:full-local-binding
  (make-record-type-descriptor
   'full-local-binding
   struct:full-binding
   (|#%nongenerative-uid| full-local-binding)
   #f
   #f
   '(1 . 0)))
(define effect_3011 (finish_2041 struct:full-local-binding))
(define full-local-binding1.1
  (|#%name|
   full-local-binding
   (record-constructor
    (make-record-constructor-descriptor struct:full-local-binding #f #f))))
(define full-local-binding?
  (|#%name| full-local-binding? (record-predicate struct:full-local-binding)))
(define full-local-binding-key
  (|#%name|
   full-local-binding-key
   (record-accessor struct:full-local-binding 0)))
(define deserialize-full-local-binding
  (lambda (key_0 free=id_0) (full-local-binding1.1 #f free=id_0 key_0)))
(define make-local-binding.1
  (|#%name|
   make-local-binding
   (lambda (frame-id2_0 free=id3_0 key6_0)
     (begin
       (if (if (not frame-id2_0) (not free=id3_0) #f)
         key6_0
         (full-local-binding1.1 frame-id2_0 free=id3_0 key6_0))))))
(define local-binding-update.1
  (|#%name|
   local-binding-update
   (lambda (frame-id9_0 free=id10_0 key8_0 b14_0)
     (begin
       (let ((key_0
              (if (eq? key8_0 unsafe-undefined)
                (local-binding-key b14_0)
                key8_0)))
         (let ((frame-id_0
                (if (eq? frame-id9_0 unsafe-undefined)
                  (binding-frame-id b14_0)
                  frame-id9_0)))
           (let ((free=id_0
                  (if (eq? free=id10_0 unsafe-undefined)
                    (binding-free=id b14_0)
                    free=id10_0)))
             (make-local-binding.1 frame-id_0 free=id_0 key_0))))))))
(define local-binding-key
  (lambda (b_0)
    (if (full-local-binding? b_0) (full-local-binding-key b_0) b_0)))
(define-values
 (1/prop:rename-transformer 1/rename-transformer? rename-transformer-value)
 (make-struct-type-property
  'rename-transformer
  (lambda (v_0 info_0)
    (begin
      (if (let ((or-part_0 (exact-nonnegative-integer? v_0)))
            (if or-part_0
              or-part_0
              (let ((or-part_1 (identifier? v_0)))
                (if or-part_1
                  or-part_1
                  (if (procedure? v_0)
                    (procedure-arity-includes? v_0 1)
                    #f)))))
        (void)
        (raise-argument-error
         'guard-for-prop:rename-transformer
         (string-append
          "(or/c exact-nonnegative-integer?\n"
          "      identifier?\n"
          "      (procedure-arity-includes? proc 1))")
         v_0))
      (begin
        (if (exact-nonnegative-integer? v_0)
          (begin
            (if (<= v_0 (list-ref info_0 1))
              (void)
              (raise-arguments-error
               'guard-for-prop:rename-transformer
               "field index >= initialized-field count for structure type"
               "field index"
               v_0
               "initialized-field count"
               (list-ref info_0 1)))
            (if (member v_0 (list-ref info_0 5))
              (void)
              (raise-arguments-error
               'guard-for-prop:rename-transformer
               "field index not declared immutable"
               "field index"
               v_0)))
          (void))
        (let ((ref_0 (list-ref info_0 3)))
          (if (identifier? v_0)
            (lambda (t_0) v_0)
            (if (integer? v_0)
              (lambda (t_0)
                (let ((val_0 (|#%app| ref_0 t_0 v_0)))
                  (if (identifier? val_0) val_0 (datum->syntax$1 #f '?))))
              (lambda (t_0)
                (let ((id_0
                       (call-with-continuation-barrier
                        (lambda () (|#%app| v_0 t_0)))))
                  (begin
                    (if (identifier? id_0)
                      (void)
                      (raise-arguments-error
                       'prop:rename-transformer
                       "contract violation for given value; expected an identifier"
                       "given"
                       id_0))
                    id_0)))))))))))
(define finish_2476
  (make-struct-type-install-properties
   '(rename-transformer)
   1
   0
   #f
   (list (cons 1/prop:rename-transformer 0))
   (current-inspector)
   #f
   '(0)
   #f
   'id-rename-transformer))
(define struct:id-rename-transformer
  (make-record-type-descriptor
   'rename-transformer
   #f
   (|#%nongenerative-uid| rename-transformer)
   #f
   #f
   '(1 . 0)))
(define effect_2525 (finish_2476 struct:id-rename-transformer))
(define id-rename-transformer1.1
  (|#%name|
   id-rename-transformer
   (record-constructor
    (make-record-constructor-descriptor struct:id-rename-transformer #f #f))))
(define id-rename-transformer?_2219
  (|#%name|
   rename-transformer?
   (record-predicate struct:id-rename-transformer)))
(define id-rename-transformer?
  (|#%name|
   rename-transformer?
   (lambda (v)
     (if (id-rename-transformer?_2219 v)
       #t
       ($value
        (if (impersonator? v)
          (id-rename-transformer?_2219 (impersonator-val v))
          #f))))))
(define id-rename-transformer-id_2932
  (|#%name|
   rename-transformer-id
   (record-accessor struct:id-rename-transformer 0)))
(define id-rename-transformer-id
  (|#%name|
   rename-transformer-id
   (lambda (s)
     (if (id-rename-transformer?_2219 s)
       (id-rename-transformer-id_2932 s)
       ($value
        (impersonate-ref
         id-rename-transformer-id_2932
         struct:id-rename-transformer
         0
         s
         'id))))))
(define 1/make-rename-transformer
  (|#%name|
   make-rename-transformer
   (lambda (id_0)
     (begin
       (begin
         (if (identifier? id_0)
           (void)
           (raise-argument-error 'make-rename-transformer "identifier?" id_0))
         (id-rename-transformer1.1 id_0))))))
(define 1/rename-transformer-target
  (|#%name|
   rename-transformer-target
   (lambda (t_0) (begin (|#%app| (rename-transformer-value t_0) t_0)))))
(define free-identifier=?$1
  (|#%name|
   free-identifier=?
   (lambda (a_0 b_0 a-phase_0 b-phase_0)
     (begin
       (let ((ab_0
              (toplevel-as-symbol
               (resolve+shift.1
                #f
                #f
                null
                unsafe-undefined
                #t
                a_0
                a-phase_0))))
         (let ((bb_0
                (toplevel-as-symbol
                 (resolve+shift.1
                  #f
                  #f
                  null
                  unsafe-undefined
                  #t
                  b_0
                  b-phase_0))))
           (if (let ((or-part_0 (symbol? ab_0)))
                 (if or-part_0 or-part_0 (symbol? bb_0)))
             (eq? ab_0 bb_0)
             (same-binding? ab_0 bb_0))))))))
(define toplevel-as-symbol
  (lambda (b_0)
    (if (if (module-binding? b_0)
          (let ((mpi_0 (module-binding-module b_0)))
            (begin-unsafe (eq? top-level-module-path-index mpi_0)))
          #f)
      (module-binding-sym b_0)
      b_0)))
(define same-binding?
  (lambda (ab_0 bb_0)
    (if (module-binding? ab_0)
      (if (module-binding? bb_0)
        (if (let ((app_0 (module-binding-sym ab_0)))
              (eq? app_0 (module-binding-sym bb_0)))
          (if (let ((app_0 (module-binding-phase ab_0)))
                (eqv? app_0 (module-binding-phase bb_0)))
            (let ((app_0
                   (1/module-path-index-resolve (module-binding-module ab_0))))
              (eq?
               app_0
               (1/module-path-index-resolve (module-binding-module bb_0))))
            #f)
          #f)
        #f)
      (if (local-binding? ab_0)
        (if (local-binding? bb_0)
          (let ((app_0 (local-binding-key ab_0)))
            (eq? app_0 (local-binding-key bb_0)))
          #f)
        (error "bad binding" ab_0)))))
(define same-binding-nominals?
  (lambda (ab_0 bb_0)
    (if (let ((app_0
               (1/module-path-index-resolve
                (module-binding-nominal-module ab_0))))
          (eq?
           app_0
           (1/module-path-index-resolve (module-binding-nominal-module bb_0))))
      (if (let ((app_0
                 (module-binding-nominal-require-phase+space-shift ab_0)))
            (eqv?
             app_0
             (module-binding-nominal-require-phase+space-shift bb_0)))
        (let ((app_0 (module-binding-nominal-sym ab_0)))
          (eqv? app_0 (module-binding-nominal-sym bb_0)))
        #f)
      #f)))
(define identifier-binding-symbol$1
  (|#%name|
   identifier-binding-symbol
   (lambda (id_0 phase_0)
     (begin
       (let ((b_0
              (resolve+shift.1 #f #f null unsafe-undefined #t id_0 phase_0)))
         (if (symbol? b_0)
           b_0
           (if (module-binding? b_0)
             (module-binding-sym b_0)
             (if (local-binding? b_0)
               (local-binding-key b_0)
               (syntax-e$1 id_0)))))))))
(define identifier-binding.1
  (|#%name|
   identifier-binding
   (lambda (exactly?1_0 id4_0 phase5_0 top-level-symbol?3_0)
     (begin
       (let ((b_0
              (resolve+shift.1
               #f
               exactly?1_0
               null
               unsafe-undefined
               #f
               id4_0
               phase5_0)))
         (if (module-binding? b_0)
           (if (let ((mpi_0 (module-binding-module b_0)))
                 (begin-unsafe (eq? top-level-module-path-index mpi_0)))
             (if top-level-symbol?3_0
               (list (module-binding-nominal-sym b_0))
               #f)
             (let ((app_0 (module-binding-module b_0)))
               (let ((app_1 (module-binding-sym b_0)))
                 (let ((app_2 (module-binding-nominal-module b_0)))
                   (let ((app_3 (module-binding-nominal-sym b_0)))
                     (let ((app_4 (module-binding-phase b_0)))
                       (let ((app_5
                              (module-binding-nominal-require-phase+space-shift
                               b_0)))
                         (list
                          app_0
                          app_1
                          app_2
                          app_3
                          app_4
                          app_5
                          (module-binding-nominal-phase+space b_0)))))))))
           (if (local-binding? b_0) 'lexical #f)))))))
(define identifier-distinct-binding$1
  (let ((identifier-distinct-binding_0
         (|#%name|
          identifier-distinct-binding
          (lambda (id8_0 other-id9_0 phase10_0 top-level-symbol?7_0)
            (begin
              (let ((scs_0 (resolve.1 #f #f null #t id8_0 phase10_0)))
                (if (not scs_0)
                  #f
                  (let ((other-scs_0 (syntax-scope-set other-id9_0 phase10_0)))
                    (if (not
                         (begin-unsafe (hash-keys-subset? scs_0 other-scs_0)))
                      (identifier-binding.1
                       #f
                       id8_0
                       phase10_0
                       top-level-symbol?7_0)
                      #f)))))))))
    (|#%name|
     identifier-distinct-binding
     (case-lambda
      ((id_0 other-id_0 phase_0)
       (begin (identifier-distinct-binding_0 id_0 other-id_0 phase_0 #f)))
      ((id_0 other-id_0 phase_0 top-level-symbol?7_0)
       (identifier-distinct-binding_0
        id_0
        other-id_0
        phase_0
        top-level-symbol?7_0))))))
(define identifier-binding-uses-scope?
  (lambda (id_0 scope_0 phase_0)
    (let ((scs_0 (resolve.1 #f #f null #t id_0 phase_0)))
      (if scs_0 (begin-unsafe (hash-ref scs_0 scope_0 #f)) #f))))
(define maybe-install-free=id!
  (lambda (val_0 id_0 phase_0)
    (if (1/rename-transformer? val_0)
      (let ((free=id_0 (1/rename-transformer-target val_0)))
        (if (syntax-property$1 free=id_0 'not-free-identifier=?)
          (void)
          (let ((b_0 (resolve+shift.1 #f #t null #t #f id_0 phase_0)))
            (let ((temp67_0 (syntax-scope-set id_0 phase_0)))
              (let ((temp68_0 (syntax-e$1 id_0)))
                (let ((temp69_0 (binding-set-free=id b_0 free=id_0)))
                  (let ((temp68_1 temp68_0) (temp67_1 temp67_0))
                    (add-binding-in-scopes!.1
                     #f
                     temp67_1
                     temp68_1
                     temp69_0))))))))
      (void))))
(define binding-set-free=id
  (lambda (b_0 free=id_0)
    (if (module-binding? b_0)
      (module-binding-update.1
       unsafe-undefined
       unsafe-undefined
       unsafe-undefined
       free=id_0
       unsafe-undefined
       unsafe-undefined
       unsafe-undefined
       unsafe-undefined
       unsafe-undefined
       unsafe-undefined
       unsafe-undefined
       b_0)
      (if (local-binding? b_0)
        (local-binding-update.1
         unsafe-undefined
         free=id_0
         unsafe-undefined
         b_0)
        (error "bad binding for free=id:" b_0)))))
(define finish_2455
  (make-struct-type-install-properties
   '(non-source-shift)
   2
   0
   #f
   null
   'prefab
   #f
   '(0 1)
   #f
   'non-source-shift))
(define struct:non-source-shift
  (make-record-type-descriptor
   'non-source-shift
   #f
   (structure-type-lookup-prefab-uid 'non-source-shift #f 2 0 #f '(0 1))
   #f
   #f
   '(2 . 3)))
(define effect_3061 (finish_2455 struct:non-source-shift))
(define non-source-shift11.1
  (|#%name|
   non-source-shift
   (record-constructor
    (make-record-constructor-descriptor struct:non-source-shift #f #f))))
(define non-source-shift?_2763
  (|#%name| non-source-shift? (record-predicate struct:non-source-shift)))
(define non-source-shift?
  (|#%name|
   non-source-shift?
   (lambda (v)
     (if (non-source-shift?_2763 v)
       #t
       ($value
        (if (impersonator? v)
          (non-source-shift?_2763 (impersonator-val v))
          #f))))))
(define non-source-shift-from_3480
  (|#%name| non-source-shift-from (record-accessor struct:non-source-shift 0)))
(define non-source-shift-from
  (|#%name|
   non-source-shift-from
   (lambda (s)
     (if (non-source-shift?_2763 s)
       (non-source-shift-from_3480 s)
       ($value
        (impersonate-ref
         non-source-shift-from_3480
         struct:non-source-shift
         0
         s
         'from))))))
(define non-source-shift-to_2244
  (|#%name| non-source-shift-to (record-accessor struct:non-source-shift 1)))
(define non-source-shift-to
  (|#%name|
   non-source-shift-to
   (lambda (s)
     (if (non-source-shift?_2763 s)
       (non-source-shift-to_2244 s)
       ($value
        (impersonate-ref
         non-source-shift-to_2244
         struct:non-source-shift
         1
         s
         'to))))))
(define shift-from
  (lambda (s_0) (if (pair? s_0) (car s_0) (non-source-shift-from s_0))))
(define shift-to
  (lambda (s_0) (if (pair? s_0) (cdr s_0) (non-source-shift-to s_0))))
(define syntax-module-path-index-shift.1
  (|#%name|
   syntax-module-path-index-shift
   (lambda (non-source?12_0 s15_0 from-mpi16_0 to-mpi17_0 inspector14_0)
     (begin
       (if (eq? from-mpi16_0 to-mpi17_0)
         (if inspector14_0 (syntax-set-inspector s15_0 inspector14_0) s15_0)
         (let ((shift_0
                (if non-source?12_0
                  (non-source-shift11.1 from-mpi16_0 to-mpi17_0)
                  (cons from-mpi16_0 to-mpi17_0))))
           (let ((content*_0 (syntax-content* s15_0)))
             (let ((content_0
                    (if (modified-content? content*_0)
                      (modified-content-content content*_0)
                      content*_0)))
               (if (syntax?$1 s15_0)
                 (let ((mpi-shifts79_0
                        (shift-cons shift_0 (syntax-mpi-shifts s15_0))))
                   (let ((inspector80_0
                          (let ((or-part_0 (syntax-inspector s15_0)))
                            (if or-part_0 or-part_0 inspector14_0))))
                     (let ((content*81_0
                            (if (datum-has-elements? content_0)
                              (modified-content1.1
                               content_0
                               (propagation-mpi-shift
                                (if (modified-content? content*_0)
                                  (modified-content-scope-propagations+taint
                                   content*_0)
                                  #f)
                                (lambda (s_0) (shift-cons shift_0 s_0))
                                inspector14_0
                                (syntax-scopes s15_0)
                                (syntax-shifted-multi-scopes s15_0)
                                (syntax-mpi-shifts s15_0)))
                              content*_0)))
                       (let ((inspector80_1 inspector80_0)
                             (mpi-shifts79_1 mpi-shifts79_0))
                         (syntax2.1
                          content*81_0
                          (syntax-scopes s15_0)
                          (syntax-shifted-multi-scopes s15_0)
                          mpi-shifts79_1
                          (syntax-srcloc$1 s15_0)
                          (syntax-props s15_0)
                          inspector80_1)))))
                 (raise-argument-error 'struct-copy "syntax?" s15_0))))))))))
(define shift-cons
  (lambda (shift_0 shifts_0)
    (if (if (pair? shifts_0)
          (let ((app_0 (shift-from shift_0)))
            (eq? app_0 (shift-from (car shifts_0))))
          #f)
      shifts_0
      (cons shift_0 shifts_0))))
(define resolve+shift.1
  (|#%name|
   resolve+shift
   (lambda (ambiguous-value19_0
            exactly?20_0
            extra-shifts23_0
            immediate?21_0
            unbound-sym?22_0
            s29_0
            phase30_0)
     (begin
       (let ((immediate?_0
              (if (eq? immediate?21_0 unsafe-undefined)
                exactly?20_0
                immediate?21_0)))
         (let ((can-cache?_0
                (if (not exactly?20_0)
                  (if (not immediate?_0) (null? extra-shifts23_0) #f)
                  #f)))
           (let ((c1_0
                  (if can-cache?_0
                    (resolve+shift-cache-get s29_0 phase30_0)
                    #f)))
             (if c1_0
               (if (eq? c1_0 kw2450)
                 (if unbound-sym?22_0 (syntax-content s29_0) #f)
                 c1_0)
               (let ((immediate-b_0
                      (resolve.1
                       ambiguous-value19_0
                       exactly?20_0
                       extra-shifts23_0
                       #f
                       s29_0
                       phase30_0)))
                 (let ((b_0
                        (if (if immediate-b_0
                              (if (not immediate?_0)
                                (binding-free=id immediate-b_0)
                                #f)
                              #f)
                          (let ((temp87_0 (binding-free=id immediate-b_0)))
                            (let ((temp89_0
                                   (append
                                    extra-shifts23_0
                                    (syntax-mpi-shifts s29_0))))
                              (let ((temp87_1 temp87_0))
                                (resolve+shift.1
                                 ambiguous-value19_0
                                 exactly?20_0
                                 temp89_0
                                 unsafe-undefined
                                 unbound-sym?22_0
                                 temp87_1
                                 phase30_0))))
                          immediate-b_0)))
                   (if (module-binding? b_0)
                     (let ((mpi-shifts_0 (syntax-mpi-shifts s29_0)))
                       (if (null? mpi-shifts_0)
                         b_0
                         (let ((mod_0 (module-binding-module b_0)))
                           (let ((shifted-mod_0
                                  (apply-syntax-shifts mod_0 mpi-shifts_0)))
                             (let ((nominal-mod_0
                                    (module-binding-nominal-module b_0)))
                               (let ((shifted-nominal-mod_0
                                      (if (eq? mod_0 nominal-mod_0)
                                        shifted-mod_0
                                        (apply-syntax-shifts
                                         nominal-mod_0
                                         mpi-shifts_0))))
                                 (let ((result-b_0
                                        (if (if (eq? mod_0 shifted-mod_0)
                                              (if (eq?
                                                   nominal-mod_0
                                                   shifted-nominal-mod_0)
                                                (if (not (binding-free=id b_0))
                                                  (null?
                                                   (module-binding-extra-nominal-bindings
                                                    b_0))
                                                  #f)
                                                #f)
                                              #f)
                                          b_0
                                          (let ((temp96_0
                                                 (if (binding-free=id b_0)
                                                   (let ((temp98_0
                                                          (binding-free=id
                                                           b_0)))
                                                     (syntax-transfer-shifts.1
                                                      #f
                                                      temp98_0
                                                      s29_0
                                                      #f))
                                                   #f)))
                                            (let ((temp97_0
                                                   (reverse$1
                                                    (let ((lst_0
                                                           (module-binding-extra-nominal-bindings
                                                            b_0)))
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (fold-var_0
                                                                     lst_1)
                                                              (begin
                                                                (if (pair?
                                                                     lst_1)
                                                                  (let ((b_1
                                                                         (unsafe-car
                                                                          lst_1)))
                                                                    (let ((rest_0
                                                                           (unsafe-cdr
                                                                            lst_1)))
                                                                      (let ((fold-var_1
                                                                             (let ((fold-var_1
                                                                                    (cons
                                                                                     (apply-syntax-shifts-to-binding
                                                                                      b_1
                                                                                      mpi-shifts_0)
                                                                                     fold-var_0)))
                                                                               (values
                                                                                fold-var_1))))
                                                                        (for-loop_0
                                                                         fold-var_1
                                                                         rest_0))))
                                                                  fold-var_0))))))
                                                         (for-loop_0
                                                          null
                                                          lst_0)))))))
                                              (let ((temp96_1 temp96_0))
                                                (module-binding-update.1
                                                 unsafe-undefined
                                                 temp97_0
                                                 unsafe-undefined
                                                 temp96_1
                                                 shifted-mod_0
                                                 shifted-nominal-mod_0
                                                 unsafe-undefined
                                                 unsafe-undefined
                                                 unsafe-undefined
                                                 unsafe-undefined
                                                 unsafe-undefined
                                                 b_0)))))))
                                   (begin
                                     (if can-cache?_0
                                       (resolve+shift-cache-set!
                                        s29_0
                                        phase30_0
                                        result-b_0)
                                       (void))
                                     result-b_0))))))))
                     (if (like-ambiguous-binding? b_0)
                       (if unbound-sym?22_0
                         (syntax-content s29_0)
                         ambiguous-value19_0)
                       (begin
                         (if can-cache?_0
                           (resolve+shift-cache-set!
                            s29_0
                            phase30_0
                            (if b_0 b_0 kw2450))
                           (void))
                         (if b_0
                           b_0
                           (if unbound-sym?22_0
                             (syntax-content s29_0)
                             #f)))))))))))))))
(define apply-syntax-shifts
  (lambda (mpi_0 shifts_0)
    (if (null? shifts_0)
      mpi_0
      (let ((shifted-mpi_0 (apply-syntax-shifts mpi_0 (cdr shifts_0))))
        (let ((shift_0 (car shifts_0)))
          (let ((app_0 (shift-from shift_0)))
            (module-path-index-shift
             shifted-mpi_0
             app_0
             (shift-to shift_0))))))))
(define apply-syntax-shifts-to-binding
  (lambda (b_0 shifts_0)
    (if (null? shifts_0)
      b_0
      (let ((shifted-b_0 (apply-syntax-shifts-to-binding b_0 (cdr shifts_0))))
        (let ((shift_0 (car shifts_0)))
          (let ((app_0 (shift-from shift_0)))
            (binding-module-path-index-shift
             shifted-b_0
             app_0
             (shift-to shift_0))))))))
(define binding-module-path-index-shift
  (lambda (b_0 from-mpi_0 to-mpi_0)
    (if (module-binding? b_0)
      (let ((temp101_0
             (module-path-index-shift
              (module-binding-module b_0)
              from-mpi_0
              to-mpi_0)))
        (let ((temp102_0
               (module-path-index-shift
                (module-binding-nominal-module b_0)
                from-mpi_0
                to-mpi_0)))
          (let ((temp103_0
                 (reverse$1
                  (let ((lst_0 (module-binding-extra-nominal-bindings b_0)))
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_1)
                            (begin
                              (if (pair? lst_1)
                                (let ((b_1 (unsafe-car lst_1)))
                                  (let ((rest_0 (unsafe-cdr lst_1)))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (binding-module-path-index-shift
                                                    b_1
                                                    from-mpi_0
                                                    to-mpi_0)
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 rest_0))))
                                fold-var_0))))))
                       (for-loop_0 null lst_0)))))))
            (let ((temp102_1 temp102_0) (temp101_1 temp101_0))
              (module-binding-update.1
               unsafe-undefined
               temp103_0
               unsafe-undefined
               unsafe-undefined
               temp101_1
               temp102_1
               unsafe-undefined
               unsafe-undefined
               unsafe-undefined
               unsafe-undefined
               unsafe-undefined
               b_0)))))
      b_0)))
(define syntax-transfer-shifts.1
  (|#%name|
   syntax-transfer-shifts
   (lambda (non-source?32_0 to-s35_0 from-s36_0 inspector34_0)
     (begin
       (let ((temp105_0 (syntax-mpi-shifts from-s36_0)))
         (syntax-add-shifts.1
          non-source?32_0
          to-s35_0
          temp105_0
          inspector34_0))))))
(define syntax-add-shifts.1
  (|#%name|
   syntax-add-shifts
   (lambda (non-source?38_0 to-s41_0 shifts42_0 inspector40_0)
     (begin
       (if (if (null? shifts42_0) inspector40_0 #f)
         (syntax-set-inspector to-s41_0 inspector40_0)
         (let ((lst_0 (reverse$1 shifts42_0)))
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (s_0 lst_1 pos_0)
                   (begin
                     (if (if (pair? lst_1) #t #f)
                       (let ((shift_0 (unsafe-car lst_1)))
                         (let ((rest_0 (unsafe-cdr lst_1)))
                           (let ((s_1
                                  (let ((s_1
                                         (let ((temp109_0
                                                (shift-from shift_0)))
                                           (let ((temp110_0
                                                  (shift-to shift_0)))
                                             (let ((temp111_0
                                                    (if (zero? pos_0)
                                                      inspector40_0
                                                      #f)))
                                               (let ((temp110_1 temp110_0)
                                                     (temp109_1 temp109_0))
                                                 (syntax-module-path-index-shift.1
                                                  non-source?38_0
                                                  s_0
                                                  temp109_1
                                                  temp110_1
                                                  temp111_0)))))))
                                    (values s_1))))
                             (for-loop_0 s_1 rest_0 (+ pos_0 1)))))
                       s_0))))))
              (for-loop_0 to-s41_0 lst_0 0)))))))))
(define syntax-set-inspector
  (lambda (s_0 insp_0)
    (let ((content*_0 (syntax-content* s_0)))
      (let ((content_0
             (if (modified-content? content*_0)
               (modified-content-content content*_0)
               content*_0)))
        (if (syntax?$1 s_0)
          (let ((inspector113_0
                 (let ((or-part_0 (syntax-inspector s_0)))
                   (if or-part_0 or-part_0 insp_0))))
            (let ((content*114_0
                   (if (datum-has-elements? content_0)
                     (modified-content1.1
                      content_0
                      (propagation-mpi-shift
                       (if (modified-content? content*_0)
                         (modified-content-scope-propagations+taint content*_0)
                         #f)
                       #f
                       insp_0
                       (syntax-scopes s_0)
                       (syntax-shifted-multi-scopes s_0)
                       (syntax-mpi-shifts s_0)))
                     content*_0)))
              (let ((inspector113_1 inspector113_0))
                (syntax2.1
                 content*114_0
                 (syntax-scopes s_0)
                 (syntax-shifted-multi-scopes s_0)
                 (syntax-mpi-shifts s_0)
                 (syntax-srcloc$1 s_0)
                 (syntax-props s_0)
                 inspector113_1))))
          (raise-argument-error 'struct-copy "syntax?" s_0))))))
(define 1/syntax-source-module
  (let ((syntax-source-module_0
         (|#%name|
          syntax-source-module
          (lambda (s45_0 source?44_0)
            (begin
              (begin
                (if (syntax?$1 s45_0)
                  (void)
                  (raise-argument-error 'syntax-track-origin "syntax?" s45_0))
                (let ((lst_0 (reverse$1 (syntax-mpi-shifts s45_0))))
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (result_0 lst_1)
                          (begin
                            (if (pair? lst_1)
                              (let ((shift_0 (unsafe-car lst_1)))
                                (let ((rest_0 (unsafe-cdr lst_1)))
                                  (let ((result_1
                                         (if (non-source-shift? shift_0)
                                           result_0
                                           (let ((result_1
                                                  (let ((from-mpi_0
                                                         (car shift_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (1/module-path-index-split
                                                        from-mpi_0))
                                                     (case-lambda
                                                      ((path_0 base_0)
                                                       (if (not path_0)
                                                         (if (module-path-index-resolved
                                                              from-mpi_0)
                                                           (let ((mpi_0
                                                                  (apply-syntax-shifts
                                                                   from-mpi_0
                                                                   (syntax-mpi-shifts
                                                                    s45_0))))
                                                             (if source?44_0
                                                               (1/resolved-module-path-name
                                                                (1/module-path-index-resolve
                                                                 mpi_0
                                                                 #f))
                                                               mpi_0))
                                                           #f)
                                                         #f))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))))
                                             (values result_1)))))
                                    (if (if (not
                                             (let ((x_0 (list shift_0)))
                                               result_1))
                                          #t
                                          #f)
                                      (for-loop_0 result_1 rest_0)
                                      result_1))))
                              result_0))))))
                     (for-loop_0 #f lst_0))))))))))
    (|#%name|
     syntax-source-module
     (case-lambda
      ((s_0) (begin (syntax-source-module_0 s_0 #f)))
      ((s_0 source?44_0) (syntax-source-module_0 s_0 source?44_0))))))
(define 1/identifier-prune-to-source-module
  (|#%name|
   identifier-prune-to-source-module
   (lambda (id_0)
     (begin
       (begin
         (if (identifier? id_0)
           (void)
           (raise-argument-error
            'identifier-prune-to-source-module
            "identifier?"
            id_0))
         (let ((the-struct_0 (datum->syntax$1 #f (syntax-e$1 id_0) id_0 id_0)))
           (if (syntax?$1 the-struct_0)
             (let ((mpi-shifts115_0 (syntax-mpi-shifts id_0)))
               (let ((app_0 (syntax-content* the-struct_0)))
                 (let ((app_1 (syntax-scopes the-struct_0)))
                   (let ((app_2 (syntax-shifted-multi-scopes the-struct_0)))
                     (syntax2.1
                      app_0
                      app_1
                      app_2
                      mpi-shifts115_0
                      (syntax-srcloc$1 the-struct_0)
                      (syntax-props the-struct_0)
                      (syntax-inspector the-struct_0))))))
             (raise-argument-error 'struct-copy "syntax?" the-struct_0))))))))
(define finish_3200
  (make-struct-type-install-properties
   '(provided)
   3
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (p_0 ser-push!_0 state_0)
       (begin
         (|#%app| ser-push!_0 'tag kw2897)
         (|#%app| ser-push!_0 (provided-binding p_0))
         (|#%app| ser-push!_0 (provided-protected? p_0))
         (|#%app| ser-push!_0 (provided-syntax? p_0))))))
   #f
   #f
   '(0 1 2)
   #f
   'provided))
(define struct:provided
  (make-record-type-descriptor
   'provided
   #f
   (|#%nongenerative-uid| provided)
   #f
   #f
   '(3 . 0)))
(define effect_2629 (finish_3200 struct:provided))
(define provided1.1
  (|#%name|
   provided
   (record-constructor
    (make-record-constructor-descriptor struct:provided #f #f))))
(define provided? (|#%name| provided? (record-predicate struct:provided)))
(define provided-binding
  (|#%name| provided-binding (record-accessor struct:provided 0)))
(define provided-protected?
  (|#%name| provided-protected? (record-accessor struct:provided 1)))
(define provided-syntax?
  (|#%name| provided-syntax? (record-accessor struct:provided 2)))
(define provided-as-binding
  (lambda (v_0) (if (provided? v_0) (provided-binding v_0) v_0)))
(define provided-as-protected?
  (lambda (v_0) (if (provided? v_0) (provided-protected? v_0) #f)))
(define provided-as-transformer?
  (lambda (v_0) (if (provided? v_0) (provided-syntax? v_0) #f)))
(define deserialize-provided
  (lambda (binding_0 protected?_0 syntax?_0)
    (provided1.1 binding_0 protected?_0 syntax?_0)))
(define provide-binding-to-require-binding.1
  (|#%name|
   provide-binding-to-require-binding
   (lambda (mpi2_0
            phase+space-shift4_0
            provide-phase+space3_0
            self1_0
            binding/p9_0
            sym10_0)
     (begin
       (let ((binding_0 (provided-as-binding binding/p9_0)))
         (let ((from-mod_0 (module-binding-module binding_0)))
           (let ((temp16_0
                  (module-path-index-shift from-mod_0 self1_0 mpi2_0)))
             (let ((temp22_0
                    (if (not (provided-as-protected? binding/p9_0))
                      (module-binding-extra-inspector binding_0)
                      #f)))
               (let ((temp16_1 temp16_0))
                 (module-binding-update.1
                  temp22_0
                  null
                  #f
                  unsafe-undefined
                  temp16_1
                  mpi2_0
                  provide-phase+space3_0
                  phase+space-shift4_0
                  sym10_0
                  unsafe-undefined
                  unsafe-undefined
                  binding_0))))))))))
(define finish_2014
  (make-struct-type-install-properties
   '(bulk-binding)
   8
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:serialize
     (lambda (b_0 ser-push!_0 state_0)
       (begin
         (if (if (serialize-state-keep-provides? state_0)
               (|#%app| (serialize-state-keep-provides? state_0) b_0)
               #f)
           (begin
             (|#%app| ser-push!_0 'tag kw2882)
             (|#%app| ser-push!_0 (bulk-binding-provides b_0))
             (|#%app| ser-push!_0 (bulk-binding-self b_0)))
           (|#%app| ser-push!_0 'tag kw2762))
         (|#%app| ser-push!_0 (bulk-binding-prefix b_0))
         (|#%app| ser-push!_0 (bulk-binding-excepts b_0))
         (|#%app| ser-push!_0 (bulk-binding-mpi b_0))
         (|#%app| ser-push!_0 (bulk-binding-provide-phase+space b_0))
         (|#%app| ser-push!_0 (bulk-binding-phase+space-shift b_0))
         (|#%app| ser-push!_0 'tag kw2607))))
    (cons
     prop:bulk-binding
     (bulk-binding-class3.1
      (lambda (b_0 mpi-shifts_0)
        (let ((or-part_0 (bulk-binding-provides b_0)))
          (if or-part_0
            or-part_0
            (let ((mod-name_0
                   (begin-unsafe
                    (1/module-path-index-resolve
                     (apply-syntax-shifts
                      (bulk-binding-mpi b_0)
                      mpi-shifts_0)))))
              (begin
                (if (bulk-binding-bulk-binding-registry b_0)
                  (void)
                  (error
                   "namespace mismatch: no bulk-binding registry available:"
                   mod-name_0))
                (let ((table_0
                       (bulk-binding-registry-table
                        (bulk-binding-bulk-binding-registry b_0))))
                  (let ((bulk-provide_0 (hash-ref table_0 mod-name_0 #f)))
                    (begin
                      (if bulk-provide_0
                        (void)
                        (error
                         "namespace mismatch: bulk bindings not found in registry for module:"
                         mod-name_0))
                      (begin
                        (set-bulk-binding-self!
                         b_0
                         (bulk-provide-self bulk-provide_0))
                        (let ((provides_0
                               (let ((app_0
                                      (bulk-provide-provides bulk-provide_0)))
                                 (hash-ref
                                  app_0
                                  (bulk-binding-provide-phase+space b_0)
                                  hash2610))))
                          (let ((excepts_0 (bulk-binding-excepts b_0)))
                            (let ((prefix_0 (bulk-binding-prefix b_0)))
                              (let ((adjusted-provides_0
                                     (if (if prefix_0
                                           prefix_0
                                           (positive? (hash-count excepts_0)))
                                       (bulk-provides-add-prefix-remove-exceptions
                                        provides_0
                                        prefix_0
                                        excepts_0)
                                       provides_0)))
                                (begin
                                  (set-bulk-binding-provides!
                                   b_0
                                   adjusted-provides_0)
                                  adjusted-provides_0))))))))))))))
      (lambda (b_0 binding_0 sym_0)
        (let ((temp26_0
               (if (bulk-binding-prefix b_0)
                 (string->symbol
                  (let ((app_0 (symbol->string sym_0)))
                    (substring
                     app_0
                     (string-length
                      (symbol->string (bulk-binding-prefix b_0))))))
                 sym_0)))
          (let ((temp27_0 (bulk-binding-self b_0)))
            (let ((temp28_0 (bulk-binding-mpi b_0)))
              (let ((temp29_0 (bulk-binding-provide-phase+space b_0)))
                (let ((temp30_0 (bulk-binding-phase+space-shift b_0)))
                  (let ((temp29_1 temp29_0)
                        (temp28_1 temp28_0)
                        (temp27_1 temp27_0)
                        (temp26_1 temp26_0))
                    (provide-binding-to-require-binding.1
                     temp28_1
                     temp30_0
                     temp29_1
                     temp27_1
                     binding_0
                     temp26_1))))))))
      (lambda (b_0 mpi-shifts_0)
        (begin-unsafe
         (1/module-path-index-resolve
          (apply-syntax-shifts (bulk-binding-mpi b_0) mpi-shifts_0)))))))
   (current-inspector)
   #f
   '(1 2 4 5 6 7)
   #f
   'bulk-binding))
(define struct:bulk-binding
  (make-record-type-descriptor
   'bulk-binding
   #f
   (|#%nongenerative-uid| bulk-binding)
   #f
   #f
   '(8 . 9)))
(define effect_2834 (finish_2014 struct:bulk-binding))
(define bulk-binding12.1
  (|#%name|
   bulk-binding
   (record-constructor
    (make-record-constructor-descriptor struct:bulk-binding #f #f))))
(define bulk-binding?
  (|#%name| bulk-binding? (record-predicate struct:bulk-binding)))
(define bulk-binding-provides
  (|#%name| bulk-binding-provides (record-accessor struct:bulk-binding 0)))
(define bulk-binding-prefix
  (|#%name| bulk-binding-prefix (record-accessor struct:bulk-binding 1)))
(define bulk-binding-excepts
  (|#%name| bulk-binding-excepts (record-accessor struct:bulk-binding 2)))
(define bulk-binding-self
  (|#%name| bulk-binding-self (record-accessor struct:bulk-binding 3)))
(define bulk-binding-mpi
  (|#%name| bulk-binding-mpi (record-accessor struct:bulk-binding 4)))
(define bulk-binding-provide-phase+space
  (|#%name|
   bulk-binding-provide-phase+space
   (record-accessor struct:bulk-binding 5)))
(define bulk-binding-phase+space-shift
  (|#%name|
   bulk-binding-phase+space-shift
   (record-accessor struct:bulk-binding 6)))
(define bulk-binding-bulk-binding-registry
  (|#%name|
   bulk-binding-bulk-binding-registry
   (record-accessor struct:bulk-binding 7)))
(define set-bulk-binding-provides!
  (|#%name| set-bulk-binding-provides! (record-mutator struct:bulk-binding 0)))
(define set-bulk-binding-self!
  (|#%name| set-bulk-binding-self! (record-mutator struct:bulk-binding 3)))
(define deserialize-bulk-binding
  (lambda (prefix_0
           excepts_0
           mpi_0
           provide-phase+space_0
           phase-level_0
           bulk-binding-registry_0)
    (bulk-binding12.1
     #f
     prefix_0
     excepts_0
     #f
     mpi_0
     (intern-phase+space provide-phase+space_0)
     phase-level_0
     bulk-binding-registry_0)))
(define deserialize-bulk-binding+provides
  (lambda (provides_0
           self_0
           prefix_0
           excepts_0
           mpi_0
           provide-phase+space_0
           phase-level_0
           bulk-binding-registry_0)
    (bulk-binding12.1
     provides_0
     prefix_0
     excepts_0
     self_0
     mpi_0
     (intern-phase+space provide-phase+space_0)
     phase-level_0
     bulk-binding-registry_0)))
(define bulk-provides-add-prefix-remove-exceptions
  (lambda (provides_0 prefix_0 excepts_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (table_0 i_0)
            (begin
              (if i_0
                (call-with-values
                 (lambda () (hash-iterate-key+value provides_0 i_0))
                 (case-lambda
                  ((sym_0 val_0)
                   (let ((table_1
                          (if (hash-ref excepts_0 sym_0 #f)
                            table_0
                            (if (symbol-interned? sym_0)
                              (let ((table_1
                                     (call-with-values
                                      (lambda ()
                                        (values
                                         (if prefix_0
                                           (string->symbol
                                            (format "~a~a" prefix_0 sym_0))
                                           sym_0)
                                         val_0))
                                      (case-lambda
                                       ((key_0 val_1)
                                        (hash-set table_0 key_0 val_1))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))))
                                (values table_1))
                              table_0))))
                     (for-loop_0 table_1 (hash-iterate-next provides_0 i_0))))
                  (args (raise-binding-result-arity-error 2 args))))
                table_0))))))
       (for-loop_0 hash2725 (hash-iterate-first provides_0))))))
(define bulk-binding-module-name
  (lambda (b_0 mpi-shifts_0)
    (1/module-path-index-resolve
     (apply-syntax-shifts (bulk-binding-mpi b_0) mpi-shifts_0))))
(define finish_2579
  (make-struct-type-install-properties
   '(bulk-provide)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'bulk-provide))
(define struct:bulk-provide
  (make-record-type-descriptor
   'bulk-provide
   #f
   (|#%nongenerative-uid| bulk-provide)
   #f
   #f
   '(2 . 0)))
(define effect_2392 (finish_2579 struct:bulk-provide))
(define bulk-provide13.1
  (|#%name|
   bulk-provide
   (record-constructor
    (make-record-constructor-descriptor struct:bulk-provide #f #f))))
(define bulk-provide?_2131
  (|#%name| bulk-provide? (record-predicate struct:bulk-provide)))
(define bulk-provide?
  (|#%name|
   bulk-provide?
   (lambda (v)
     (if (bulk-provide?_2131 v)
       #t
       ($value
        (if (impersonator? v)
          (bulk-provide?_2131 (impersonator-val v))
          #f))))))
(define bulk-provide-self_2134
  (|#%name| bulk-provide-self (record-accessor struct:bulk-provide 0)))
(define bulk-provide-self
  (|#%name|
   bulk-provide-self
   (lambda (s)
     (if (bulk-provide?_2131 s)
       (bulk-provide-self_2134 s)
       ($value
        (impersonate-ref
         bulk-provide-self_2134
         struct:bulk-provide
         0
         s
         'self))))))
(define bulk-provide-provides_2573
  (|#%name| bulk-provide-provides (record-accessor struct:bulk-provide 1)))
(define bulk-provide-provides
  (|#%name|
   bulk-provide-provides
   (lambda (s)
     (if (bulk-provide?_2131 s)
       (bulk-provide-provides_2573 s)
       ($value
        (impersonate-ref
         bulk-provide-provides_2573
         struct:bulk-provide
         1
         s
         'provides))))))
(define finish_2603
  (make-struct-type-install-properties
   '(bulk-binding-registry)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'bulk-binding-registry))
(define struct:bulk-binding-registry
  (make-record-type-descriptor
   'bulk-binding-registry
   #f
   (|#%nongenerative-uid| bulk-binding-registry)
   #f
   #f
   '(1 . 0)))
(define effect_2403 (finish_2603 struct:bulk-binding-registry))
(define bulk-binding-registry14.1
  (|#%name|
   bulk-binding-registry
   (record-constructor
    (make-record-constructor-descriptor struct:bulk-binding-registry #f #f))))
(define bulk-binding-registry?_2831
  (|#%name|
   bulk-binding-registry?
   (record-predicate struct:bulk-binding-registry)))
(define bulk-binding-registry?
  (|#%name|
   bulk-binding-registry?
   (lambda (v)
     (if (bulk-binding-registry?_2831 v)
       #t
       ($value
        (if (impersonator? v)
          (bulk-binding-registry?_2831 (impersonator-val v))
          #f))))))
(define bulk-binding-registry-table_2379
  (|#%name|
   bulk-binding-registry-table
   (record-accessor struct:bulk-binding-registry 0)))
(define bulk-binding-registry-table
  (|#%name|
   bulk-binding-registry-table
   (lambda (s)
     (if (bulk-binding-registry?_2831 s)
       (bulk-binding-registry-table_2379 s)
       ($value
        (impersonate-ref
         bulk-binding-registry-table_2379
         struct:bulk-binding-registry
         0
         s
         'table))))))
(define make-bulk-binding-registry
  (lambda () (bulk-binding-registry14.1 (make-hasheq))))
(define register-bulk-provide!
  (lambda (bulk-binding-registry_0 mod-name_0 self_0 provides_0)
    (let ((app_0 (bulk-binding-registry-table bulk-binding-registry_0)))
      (hash-set! app_0 mod-name_0 (bulk-provide13.1 self_0 provides_0)))))
(define registered-bulk-provide?
  (lambda (bulk-binding-registry_0 mod-name_0)
    (if (hash-ref
         (bulk-binding-registry-table bulk-binding-registry_0)
         mod-name_0
         #f)
      #t
      #f)))
(define generate-lift-key (lambda () (gensym 'lift)))
(define finish_2813
  (make-struct-type-install-properties
   '(root-expand-context)
   4
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'root-expand-context/outer))
(define struct:root-expand-context/outer
  (make-record-type-descriptor
   'root-expand-context
   #f
   (|#%nongenerative-uid| root-expand-context)
   #f
   #f
   '(4 . 0)))
(define effect_2124 (finish_2813 struct:root-expand-context/outer))
(define root-expand-context/outer1.1
  (|#%name|
   root-expand-context/outer
   (record-constructor
    (make-record-constructor-descriptor
     struct:root-expand-context/outer
     #f
     #f))))
(define root-expand-context/outer?
  (|#%name|
   root-expand-context?
   (record-predicate struct:root-expand-context/outer)))
(define root-expand-context/outer-inner
  (|#%name|
   root-expand-context-inner
   (record-accessor struct:root-expand-context/outer 0)))
(define root-expand-context/outer-post-expansion
  (|#%name|
   root-expand-context-post-expansion
   (record-accessor struct:root-expand-context/outer 1)))
(define root-expand-context/outer-use-site-scopes
  (|#%name|
   root-expand-context-use-site-scopes
   (record-accessor struct:root-expand-context/outer 2)))
(define root-expand-context/outer-frame-id
  (|#%name|
   root-expand-context-frame-id
   (record-accessor struct:root-expand-context/outer 3)))
(define finish_2837
  (make-struct-type-install-properties
   '(root-expand-context/inner)
   7
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6)
   #f
   'root-expand-context/inner))
(define struct:root-expand-context/inner
  (make-record-type-descriptor
   'root-expand-context/inner
   #f
   (|#%nongenerative-uid| root-expand-context/inner)
   #f
   #f
   '(7 . 0)))
(define effect_2880 (finish_2837 struct:root-expand-context/inner))
(define root-expand-context/inner2.1
  (|#%name|
   root-expand-context/inner
   (record-constructor
    (make-record-constructor-descriptor
     struct:root-expand-context/inner
     #f
     #f))))
(define root-expand-context/inner?
  (|#%name|
   root-expand-context/inner?
   (record-predicate struct:root-expand-context/inner)))
(define root-expand-context/inner-self-mpi
  (|#%name|
   root-expand-context/inner-self-mpi
   (record-accessor struct:root-expand-context/inner 0)))
(define root-expand-context/inner-module-scopes
  (|#%name|
   root-expand-context/inner-module-scopes
   (record-accessor struct:root-expand-context/inner 1)))
(define root-expand-context/inner-top-level-bind-scope
  (|#%name|
   root-expand-context/inner-top-level-bind-scope
   (record-accessor struct:root-expand-context/inner 2)))
(define root-expand-context/inner-all-scopes-stx
  (|#%name|
   root-expand-context/inner-all-scopes-stx
   (record-accessor struct:root-expand-context/inner 3)))
(define root-expand-context/inner-defined-syms
  (|#%name|
   root-expand-context/inner-defined-syms
   (record-accessor struct:root-expand-context/inner 4)))
(define root-expand-context/inner-counter
  (|#%name|
   root-expand-context/inner-counter
   (record-accessor struct:root-expand-context/inner 5)))
(define root-expand-context/inner-lift-key
  (|#%name|
   root-expand-context/inner-lift-key
   (record-accessor struct:root-expand-context/inner 6)))
(define root-expand-context/make
  (lambda (self-mpi_0
           module-scopes_0
           post-expansion_0
           top-level-bind-scope_0
           all-scopes-stx_0
           use-site-scopes_0
           defined-syms_0
           frame-id_0
           counter_0
           lift-key_0)
    (root-expand-context/outer1.1
     (root-expand-context/inner2.1
      self-mpi_0
      module-scopes_0
      top-level-bind-scope_0
      all-scopes-stx_0
      defined-syms_0
      counter_0
      lift-key_0)
     post-expansion_0
     use-site-scopes_0
     frame-id_0)))
(define root-expand-context-post-expansion
  (lambda (v_0) (root-expand-context/outer-post-expansion v_0)))
(define root-expand-context-use-site-scopes
  (lambda (v_0) (root-expand-context/outer-use-site-scopes v_0)))
(define root-expand-context-frame-id
  (lambda (v_0) (root-expand-context/outer-frame-id v_0)))
(define root-expand-context-self-mpi
  (lambda (v_0)
    (root-expand-context/inner-self-mpi
     (root-expand-context/outer-inner v_0))))
(define root-expand-context-module-scopes
  (lambda (v_0)
    (root-expand-context/inner-module-scopes
     (root-expand-context/outer-inner v_0))))
(define root-expand-context-top-level-bind-scope
  (lambda (v_0)
    (root-expand-context/inner-top-level-bind-scope
     (root-expand-context/outer-inner v_0))))
(define root-expand-context-all-scopes-stx
  (lambda (v_0)
    (root-expand-context/inner-all-scopes-stx
     (root-expand-context/outer-inner v_0))))
(define root-expand-context-defined-syms
  (lambda (v_0)
    (root-expand-context/inner-defined-syms
     (root-expand-context/outer-inner v_0))))
(define root-expand-context-counter
  (lambda (v_0)
    (root-expand-context/inner-counter (root-expand-context/outer-inner v_0))))
(define root-expand-context-lift-key
  (lambda (v_0)
    (root-expand-context/inner-lift-key
     (root-expand-context/outer-inner v_0))))
(define make-root-expand-context.1
  (|#%name|
   make-root-expand-context
   (lambda (all-scopes-stx7_0
            initial-scopes4_0
            outside-scope5_0
            post-expansion-scope6_0
            self-mpi3_0)
     (begin
       (let ((outside-scope_0
              (if (eq? outside-scope5_0 unsafe-undefined)
                top-level-common-scope
                outside-scope5_0)))
         (let ((post-expansion-scope_0
                (if (eq? post-expansion-scope6_0 unsafe-undefined)
                  (new-multi-scope 'top-level)
                  post-expansion-scope6_0)))
           (let ((module-scopes_0
                  (list*
                   post-expansion-scope_0
                   outside-scope_0
                   initial-scopes4_0)))
             (let ((top-level-bind-scope_0 (new-scope 'module)))
               (let ((all-scopes-stx_0
                      (if all-scopes-stx7_0
                        all-scopes-stx7_0
                        (add-scopes empty-syntax module-scopes_0))))
                 (let ((use-site-scopes_0 (box null)))
                   (let ((defined-syms_0 (make-hasheqv)))
                     (let ((frame-id_0
                            (string->uninterned-symbol "root-frame")))
                       (let ((counter_0 (box 0)))
                         (let ((lift-key_0 (generate-lift-key)))
                           (let ((counter_1 counter_0)
                                 (frame-id_1 frame-id_0)
                                 (defined-syms_1 defined-syms_0)
                                 (use-site-scopes_1 use-site-scopes_0)
                                 (all-scopes-stx_1 all-scopes-stx_0)
                                 (top-level-bind-scope_1
                                  top-level-bind-scope_0))
                             (begin-unsafe
                              (root-expand-context/outer1.1
                               (root-expand-context/inner2.1
                                self-mpi3_0
                                module-scopes_0
                                top-level-bind-scope_1
                                all-scopes-stx_1
                                defined-syms_1
                                counter_1
                                lift-key_0)
                               post-expansion-scope_0
                               use-site-scopes_1
                               frame-id_1)))))))))))))))))
(define apply-post-expansion
  (lambda (pe_0 s_0)
    (if (not pe_0)
      s_0
      (if (shifted-multi-scope? pe_0)
        (push-scope s_0 pe_0)
        (if (pair? pe_0)
          (let ((temp16_0 (push-scope s_0 (car pe_0))))
            (let ((temp17_0 (cdr pe_0)))
              (let ((temp16_1 temp16_0))
                (syntax-add-shifts.1 #f temp16_1 temp17_0 #f))))
          (|#%app| pe_0 s_0))))))
(define post-expansion-scope
  (lambda (pe_0)
    (if (shifted-multi-scope? pe_0)
      pe_0
      (if (pair? pe_0)
        (car pe_0)
        (error
         'post-expansion-scope
         "internal error: cannot extract scope from ~s"
         pe_0)))))
(define root-expand-context-encode-for-module
  (lambda (ctx_0 orig-self_0 new-self_0)
    (datum->syntax$1
     #f
     (let ((app_0
            (add-scopes
             empty-syntax
             (begin-unsafe
              (root-expand-context/inner-module-scopes
               (root-expand-context/outer-inner ctx_0))))))
       (let ((app_1
              (apply-post-expansion
               (begin-unsafe (root-expand-context/outer-post-expansion ctx_0))
               empty-syntax)))
         (let ((app_2
                (let ((temp18_0
                       (begin-unsafe
                        (root-expand-context/inner-all-scopes-stx
                         (root-expand-context/outer-inner ctx_0)))))
                  (syntax-module-path-index-shift.1
                   #f
                   temp18_0
                   orig-self_0
                   new-self_0
                   #f))))
           (let ((app_3
                  (add-scopes
                   empty-syntax
                   (unbox
                    (begin-unsafe
                     (root-expand-context/outer-use-site-scopes ctx_0))))))
             (let ((app_4
                    (let ((ht_0
                           (begin-unsafe
                            (root-expand-context/inner-defined-syms
                             (root-expand-context/outer-inner ctx_0)))))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (table_0 i_0)
                              (begin
                                (if i_0
                                  (call-with-values
                                   (lambda ()
                                     (hash-iterate-key+value ht_0 i_0))
                                   (case-lambda
                                    ((phase_0 ht_1)
                                     (let ((table_1
                                            (let ((table_1
                                                   (call-with-values
                                                    (lambda ()
                                                      (values phase_0 ht_1))
                                                    (case-lambda
                                                     ((key_0 val_0)
                                                      (hash-set
                                                       table_0
                                                       key_0
                                                       val_0))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args))))))
                                              (values table_1))))
                                       (for-loop_0
                                        table_1
                                        (hash-iterate-next ht_0 i_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))
                                  table_0))))))
                         (for-loop_0 hash2589 (hash-iterate-first ht_0)))))))
               (let ((app_5
                      (begin-unsafe
                       (root-expand-context/outer-frame-id ctx_0))))
                 (vector
                  app_0
                  app_1
                  app_2
                  app_3
                  app_4
                  app_5
                  (unbox
                   (begin-unsafe
                    (root-expand-context/inner-counter
                     (root-expand-context/outer-inner ctx_0))))))))))))))
(define root-expand-context-decode-for-module
  (lambda (vec-s_0 self_0)
    (let ((vec_0 (if (syntax?$1 vec-s_0) (syntax-e$1 vec-s_0) #f)))
      (begin
        (if (if (vector? vec_0)
              (if (= (vector-length vec_0) 7)
                (if (syntax?$1 (vector-ref vec_0 0))
                  (if (syntax-with-one-scope? (vector-ref vec_0 1))
                    (if (syntax?$1 (vector-ref vec_0 2))
                      (if (syntax?$1 (vector-ref vec_0 3))
                        (if (defined-syms-hash?
                             (syntax-e$1 (vector-ref vec_0 4)))
                          (if (symbol? (syntax-e$1 (vector-ref vec_0 5)))
                            (exact-nonnegative-integer?
                             (syntax-e$1 (vector-ref vec_0 6)))
                            #f)
                          #f)
                        #f)
                      #f)
                    #f)
                  #f)
                #f)
              #f)
          (void)
          (error
           'root-expand-context-decode-for-module
           "bad encoding: ~s"
           vec-s_0))
        (let ((module-scopes_0 (extract-scope-list (vector-ref vec_0 0))))
          (let ((post-expansion_0
                 (let ((app_0 (extract-scope (vector-ref vec_0 1))))
                   (cons
                    app_0
                    (let ((stx_0 (vector-ref vec_0 1)))
                      (begin-unsafe (syntax-mpi-shifts stx_0)))))))
            (let ((top-level-bind-scope_0 (new-scope 'module)))
              (let ((all-scopes-stx_0 (vector-ref vec_0 2)))
                (let ((use-site-scopes_0
                       (box (extract-scope-list (vector-ref vec_0 3)))))
                  (let ((defined-syms_0
                         (unpack-defined-syms (vector-ref vec_0 4))))
                    (let ((frame-id_0 (syntax-e$1 (vector-ref vec_0 5))))
                      (let ((counter_0
                             (box (syntax-e$1 (vector-ref vec_0 6)))))
                        (let ((lift-key_0 (generate-lift-key)))
                          (let ((counter_1 counter_0)
                                (frame-id_1 frame-id_0)
                                (defined-syms_1 defined-syms_0)
                                (use-site-scopes_1 use-site-scopes_0)
                                (all-scopes-stx_1 all-scopes-stx_0)
                                (top-level-bind-scope_1 top-level-bind-scope_0)
                                (post-expansion_1 post-expansion_0)
                                (module-scopes_1 module-scopes_0))
                            (begin-unsafe
                             (root-expand-context/outer1.1
                              (root-expand-context/inner2.1
                               self_0
                               module-scopes_1
                               top-level-bind-scope_1
                               all-scopes-stx_1
                               defined-syms_1
                               counter_1
                               lift-key_0)
                              post-expansion_1
                              use-site-scopes_1
                              frame-id_1))))))))))))))))
(define defined-syms-hash?
  (lambda (v_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (result_0 i_0)
            (begin
              (if i_0
                (call-with-values
                 (lambda () (hash-iterate-key+value v_0 i_0))
                 (case-lambda
                  ((phase_0 ht-s_0)
                   (let ((result_1
                          (let ((result_1
                                 (if (phase? phase_0)
                                   (if (hash? (syntax-e$1 ht-s_0))
                                     (let ((ht_0 (syntax-e$1 ht-s_0)))
                                       (begin
                                         (letrec*
                                          ((for-loop_1
                                            (|#%name|
                                             for-loop
                                             (lambda (result_1 i_1)
                                               (begin
                                                 (if i_1
                                                   (call-with-values
                                                    (lambda ()
                                                      (hash-iterate-key+value
                                                       ht_0
                                                       i_1))
                                                    (case-lambda
                                                     ((sym_0 id_0)
                                                      (let ((result_2
                                                             (let ((result_2
                                                                    (if (symbol?
                                                                         sym_0)
                                                                      (identifier?
                                                                       id_0)
                                                                      #f)))
                                                               (values
                                                                result_2))))
                                                        (if (if (not
                                                                 (let ((x_0
                                                                        (list
                                                                         sym_0
                                                                         id_0)))
                                                                   (not
                                                                    result_2)))
                                                              #t
                                                              #f)
                                                          (for-loop_1
                                                           result_2
                                                           (hash-iterate-next
                                                            ht_0
                                                            i_1))
                                                          result_2)))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args))))
                                                   result_1))))))
                                          (for-loop_1
                                           #t
                                           (hash-iterate-first ht_0)))))
                                     #f)
                                   #f)))
                            (values result_1))))
                     (if (if (not
                              (let ((x_0 (list phase_0 ht-s_0)))
                                (not result_1)))
                           #t
                           #f)
                       (for-loop_0 result_1 (hash-iterate-next v_0 i_0))
                       result_1)))
                  (args (raise-binding-result-arity-error 2 args))))
                result_0))))))
       (for-loop_0 #t (hash-iterate-first v_0))))))
(define extract-scope-list
  (lambda (stx_0)
    (map_1346 generalize-scope (set->list (syntax-scope-set stx_0 0)))))
(define syntax-with-one-scope?
  (lambda (stx_0)
    (if (syntax?$1 stx_0)
      (=
       1
       (let ((s_0 (syntax-scope-set stx_0 0)))
         (begin-unsafe (hash-count s_0))))
      #f)))
(define extract-scope
  (lambda (stx_0)
    (let ((s_0 (syntax-scope-set stx_0 0)))
      (generalize-scope (set-first s_0)))))
(define extract-shifts (lambda (stx_0) (syntax-mpi-shifts stx_0)))
(define unpack-defined-syms
  (lambda (v_0)
    (hash-copy
     (let ((ht_0 (syntax-e$1 v_0)))
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (table_0 i_0)
               (begin
                 (if i_0
                   (call-with-values
                    (lambda () (hash-iterate-key+value ht_0 i_0))
                    (case-lambda
                     ((phase_0 ht-s_0)
                      (let ((table_1
                             (let ((table_1
                                    (call-with-values
                                     (lambda ()
                                       (values
                                        phase_0
                                        (hash-copy
                                         (let ((ht_1 (syntax-e$1 ht-s_0)))
                                           (begin
                                             (letrec*
                                              ((for-loop_1
                                                (|#%name|
                                                 for-loop
                                                 (lambda (table_1 i_1)
                                                   (begin
                                                     (if i_1
                                                       (call-with-values
                                                        (lambda ()
                                                          (hash-iterate-key+value
                                                           ht_1
                                                           i_1))
                                                        (case-lambda
                                                         ((sym_0 id_0)
                                                          (let ((table_2
                                                                 (let ((table_2
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (values
                                                                            sym_0
                                                                            id_0))
                                                                         (case-lambda
                                                                          ((key_0
                                                                            val_0)
                                                                           (hash-set
                                                                            table_1
                                                                            key_0
                                                                            val_0))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args))))))
                                                                   (values
                                                                    table_2))))
                                                            (for-loop_1
                                                             table_2
                                                             (hash-iterate-next
                                                              ht_1
                                                              i_1))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))
                                                       table_1))))))
                                              (for-loop_1
                                               hash2725
                                               (hash-iterate-first ht_1))))))))
                                     (case-lambda
                                      ((key_0 val_0)
                                       (hash-set table_0 key_0 val_0))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))))
                               (values table_1))))
                        (for-loop_0 table_1 (hash-iterate-next ht_0 i_0))))
                     (args (raise-binding-result-arity-error 2 args))))
                   table_0))))))
          (for-loop_0 hash2589 (hash-iterate-first ht_0))))))))
(define 1/primitive-table primitive-table)
(define 1/primitive->compiled-position primitive->compiled-position)
(define 1/compiled-position->primitive compiled-position->primitive)
(define 1/primitive-in-category? primitive-in-category?)
(define 1/primitive-lookup primitive-lookup)
(define linklet?$1 linklet?)
(define 1/compile-linklet compile-linklet)
(define recompile-linklet$1 recompile-linklet)
(define eval-linklet$1 eval-linklet)
(define instantiate-linklet$1 instantiate-linklet)
(define linklet-import-variables$1 linklet-import-variables)
(define linklet-export-variables$1 linklet-export-variables)
(define 1/instance? instance?)
(define 1/make-instance make-instance)
(define 1/instance-name instance-name)
(define 1/instance-data instance-data)
(define 1/instance-variable-names instance-variable-names)
(define 1/instance-variable-value instance-variable-value)
(define 1/instance-set-variable-value! instance-set-variable-value!)
(define 1/instance-unset-variable! instance-unset-variable!)
(define 1/instance-describe-variable! instance-describe-variable!)
(define 1/linklet-virtual-machine-bytes linklet-virtual-machine-bytes)
(define 1/write-linklet-bundle-hash write-linklet-bundle-hash)
(define 1/read-linklet-bundle-hash read-linklet-bundle-hash)
(define 1/variable-reference? variable-reference?)
(define 1/variable-reference->instance variable-reference->instance)
(define 1/variable-reference-constant? variable-reference-constant?)
(define 1/variable-reference-from-unsafe? variable-reference-from-unsafe?)
(define effect_3049
  (begin
    (void
     (if variable-reference-constant?
       (void)
       (error
        "broken '#%linklet primitive table; maybe you need to use \"bootstrap-run.rkt\"")))
    (void)))
(define finish_2938
  (make-struct-type-install-properties
   '(module-registry)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'module-registry))
(define struct:module-registry
  (make-record-type-descriptor
   'module-registry
   #f
   (|#%nongenerative-uid| module-registry)
   #f
   #f
   '(2 . 0)))
(define effect_2565 (finish_2938 struct:module-registry))
(define module-registry1.1
  (|#%name|
   module-registry
   (record-constructor
    (make-record-constructor-descriptor struct:module-registry #f #f))))
(define module-registry?_2653
  (|#%name| module-registry? (record-predicate struct:module-registry)))
(define module-registry?
  (|#%name|
   module-registry?
   (lambda (v)
     (if (module-registry?_2653 v)
       #t
       ($value
        (if (impersonator? v)
          (module-registry?_2653 (impersonator-val v))
          #f))))))
(define module-registry-declarations_3107
  (|#%name|
   module-registry-declarations
   (record-accessor struct:module-registry 0)))
(define module-registry-declarations
  (|#%name|
   module-registry-declarations
   (lambda (s)
     (if (module-registry?_2653 s)
       (module-registry-declarations_3107 s)
       ($value
        (impersonate-ref
         module-registry-declarations_3107
         struct:module-registry
         0
         s
         'declarations))))))
(define module-registry-lock-box_2205
  (|#%name|
   module-registry-lock-box
   (record-accessor struct:module-registry 1)))
(define module-registry-lock-box
  (|#%name|
   module-registry-lock-box
   (lambda (s)
     (if (module-registry?_2653 s)
       (module-registry-lock-box_2205 s)
       ($value
        (impersonate-ref
         module-registry-lock-box_2205
         struct:module-registry
         1
         s
         'lock-box))))))
(define make-module-registry
  (lambda ()
    (let ((app_0 (make-hasheq))) (module-registry1.1 app_0 (box #f)))))
(define registry-call-with-lock
  (lambda (r_0 proc_0)
    (let ((lock-box_0 (module-registry-lock-box r_0)))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda ()
            (begin
              (let ((v_0 (unbox lock-box_0)))
                (if (let ((or-part_0 (not v_0)))
                      (if or-part_0
                        or-part_0
                        (let ((app_0 (car v_0)))
                          (sync/timeout
                           0
                           app_0
                           (let ((or-part_1 (weak-box-value (cdr v_0))))
                             (if or-part_1 or-part_1 never-evt))))))
                  (let ((sema_0 (make-semaphore)))
                    (let ((lock_0
                           (let ((app_0 (semaphore-peek-evt sema_0)))
                             (cons app_0 (make-weak-box (current-thread))))))
                      (|#%app|
                       (dynamic-wind
                        void
                        (lambda ()
                          (if (unsafe-box*-cas! lock-box_0 v_0 lock_0)
                            (|#%call-with-values|
                             proc_0
                             (lambda results_0
                               (lambda () (apply values results_0))))
                            (lambda () (loop_0))))
                        (lambda () (semaphore-post sema_0))))))
                  (if (let ((app_0 (current-thread)))
                        (eq? app_0 (weak-box-value (cdr v_0))))
                    (|#%app| proc_0)
                    (begin
                      (let ((app_0 (car v_0)))
                        (sync
                         app_0
                         (let ((or-part_0 (weak-box-value (cdr v_0))))
                           (if or-part_0 or-part_0 never-evt))))
                      (loop_0))))))))))
       (loop_0)))))
(define finish_2535
  (make-struct-type-install-properties
   '(namespace)
   15
   0
   #f
   (list
    (cons prop:authentic #t)
    (cons
     prop:custom-write
     (lambda (ns_0 port_0 mode_0)
       (begin
         (write-string "#<namespace" port_0)
         (let ((n_0 (namespace-source-name ns_0)))
           (begin
             (if n_0 (fprintf port_0 ":~a" (namespace->name ns_0)) (void))
             (let ((0-phase_0 (namespace-0-phase ns_0)))
               (let ((phase-level_0 (phase- (namespace-phase ns_0) 0-phase_0)))
                 (begin
                   (if (begin-unsafe (eq? phase-level_0 0))
                     (void)
                     (fprintf port_0 ":~s" phase-level_0))
                   (if (begin-unsafe (eq? 0-phase_0 0))
                     (void)
                     (fprintf
                      port_0
                      "~a~s"
                      (if (positive? 0-phase_0) "+" "")
                      0-phase_0))
                   (write-string ">" port_0))))))))))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10 11 13 14)
   #f
   'namespace))
(define struct:namespace
  (make-record-type-descriptor
   'namespace
   #f
   (|#%nongenerative-uid| namespace)
   #f
   #f
   '(15 . 4096)))
(define effect_3128 (finish_2535 struct:namespace))
(define namespace1.1
  (|#%name|
   namespace
   (record-constructor
    (make-record-constructor-descriptor struct:namespace #f #f))))
(define 1/namespace? (|#%name| namespace? (record-predicate struct:namespace)))
(define namespace-mpi
  (|#%name| namespace-mpi (record-accessor struct:namespace 0)))
(define namespace-source-name
  (|#%name| namespace-source-name (record-accessor struct:namespace 1)))
(define namespace-root-expand-ctx
  (|#%name| namespace-root-expand-ctx (record-accessor struct:namespace 2)))
(define namespace-phase
  (|#%name| namespace-phase (record-accessor struct:namespace 3)))
(define namespace-0-phase
  (|#%name| namespace-0-phase (record-accessor struct:namespace 4)))
(define namespace-phase-to-namespace
  (|#%name| namespace-phase-to-namespace (record-accessor struct:namespace 5)))
(define namespace-phase-level-to-definitions
  (|#%name|
   namespace-phase-level-to-definitions
   (record-accessor struct:namespace 6)))
(define namespace-module-registry$1
  (|#%name| namespace-module-registry (record-accessor struct:namespace 7)))
(define namespace-bulk-binding-registry
  (|#%name|
   namespace-bulk-binding-registry
   (record-accessor struct:namespace 8)))
(define namespace-submodule-declarations
  (|#%name|
   namespace-submodule-declarations
   (record-accessor struct:namespace 9)))
(define namespace-root-namespace
  (|#%name| namespace-root-namespace (record-accessor struct:namespace 10)))
(define namespace-declaration-inspector
  (|#%name|
   namespace-declaration-inspector
   (record-accessor struct:namespace 11)))
(define namespace-inspector
  (|#%name| namespace-inspector (record-accessor struct:namespace 12)))
(define namespace-available-module-instances
  (|#%name|
   namespace-available-module-instances
   (record-accessor struct:namespace 13)))
(define namespace-module-instances
  (|#%name| namespace-module-instances (record-accessor struct:namespace 14)))
(define set-namespace-inspector!
  (|#%name| set-namespace-inspector! (record-mutator struct:namespace 12)))
(define finish_2741
  (make-struct-type-install-properties
   '(definitions)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'definitions))
(define struct:definitions
  (make-record-type-descriptor
   'definitions
   #f
   (|#%nongenerative-uid| definitions)
   #f
   #f
   '(2 . 0)))
(define effect_2319 (finish_2741 struct:definitions))
(define definitions2.1
  (|#%name|
   definitions
   (record-constructor
    (make-record-constructor-descriptor struct:definitions #f #f))))
(define definitions?
  (|#%name| definitions? (record-predicate struct:definitions)))
(define definitions-variables
  (|#%name| definitions-variables (record-accessor struct:definitions 0)))
(define definitions-transformers
  (|#%name| definitions-transformers (record-accessor struct:definitions 1)))
(define make-namespace (lambda () (new-namespace.1 #t unsafe-undefined #f)))
(define new-namespace.1
  (|#%name|
   new-namespace
   (lambda (register?4_0 root-expand-ctx3_0 share-from-ns7_0)
     (begin
       (let ((root-expand-ctx_0
              (if (eq? root-expand-ctx3_0 unsafe-undefined)
                (make-root-expand-context.1
                 #f
                 null
                 unsafe-undefined
                 unsafe-undefined
                 top-level-module-path-index)
                root-expand-ctx3_0)))
         (let ((phase_0
                (if share-from-ns7_0 (namespace-phase share-from-ns7_0) 0)))
           (let ((app_0 (box root-expand-ctx_0)))
             (let ((ns_0
                    (let ((app_1 (make-small-hasheqv)))
                      (let ((app_2 (make-small-hasheqv)))
                        (let ((app_3
                               (if share-from-ns7_0
                                 (namespace-module-registry$1 share-from-ns7_0)
                                 (make-module-registry))))
                          (let ((app_4
                                 (if share-from-ns7_0
                                   (namespace-bulk-binding-registry
                                    share-from-ns7_0)
                                   (make-bulk-binding-registry))))
                            (let ((app_5 (make-small-hasheq)))
                              (let ((app_6
                                     (if share-from-ns7_0
                                       (let ((or-part_0
                                              (namespace-root-namespace
                                               share-from-ns7_0)))
                                         (if or-part_0
                                           or-part_0
                                           share-from-ns7_0))
                                       #f)))
                                (let ((app_7
                                       (make-inspector
                                        (current-code-inspector))))
                                  (let ((app_8
                                         (if share-from-ns7_0
                                           (namespace-available-module-instances
                                            share-from-ns7_0)
                                           (make-hasheqv))))
                                    (namespace1.1
                                     top-level-module-path-index
                                     #f
                                     app_0
                                     phase_0
                                     phase_0
                                     app_1
                                     app_2
                                     app_3
                                     app_4
                                     app_5
                                     app_6
                                     #f
                                     app_7
                                     app_8
                                     (if share-from-ns7_0
                                       (namespace-module-instances
                                        share-from-ns7_0)
                                       (make-hasheqv)))))))))))))
               (begin
                 (if register?4_0
                   (let ((small-ht_0 (namespace-phase-to-namespace ns_0)))
                     (begin-unsafe
                      (set-box!
                       small-ht_0
                       (hash-set (unbox small-ht_0) phase_0 ns_0))))
                   (void))
                 ns_0)))))))))
(define 1/current-namespace
  (make-parameter
   (make-namespace)
   (lambda (v_0)
     (begin
       (if (1/namespace? v_0)
         (void)
         (raise-argument-error 'current-namespace "namespace?" v_0))
       v_0))
   'current-namespace))
(define namespace-get-root-expand-ctx
  (lambda (ns_0) (force (unbox (namespace-root-expand-ctx ns_0)))))
(define namespace-set-root-expand-ctx!
  (lambda (ns_0 root-ctx_0)
    (set-box! (namespace-root-expand-ctx ns_0) root-ctx_0)))
(define namespace-self-mpi
  (lambda (ns_0)
    (let ((v_0 (namespace-get-root-expand-ctx ns_0)))
      (begin-unsafe
       (root-expand-context/inner-self-mpi
        (root-expand-context/outer-inner v_0))))))
(define namespace-self-mpi/no-top-level
  (lambda (ns_0)
    (let ((mpi_0
           (let ((v_0 (namespace-get-root-expand-ctx ns_0)))
             (begin-unsafe
              (root-expand-context/inner-self-mpi
               (root-expand-context/outer-inner v_0))))))
      (if (if mpi_0 (begin-unsafe (eq? top-level-module-path-index mpi_0)) #f)
        #f
        mpi_0))))
(define namespace->module
  (lambda (ns_0 name_0)
    (let ((or-part_0
           (let ((small-ht_0 (namespace-submodule-declarations ns_0)))
             (begin-unsafe (hash-ref (unbox small-ht_0) name_0 #f)))))
      (if or-part_0
        or-part_0
        (hash-ref
         (module-registry-declarations (namespace-module-registry$1 ns_0))
         name_0
         #f)))))
(define namespace->namespace-at-phase
  (lambda (ns_0 phase_0)
    (let ((or-part_0
           (let ((small-ht_0 (namespace-phase-to-namespace ns_0)))
             (begin-unsafe (hash-ref (unbox small-ht_0) phase_0 #f)))))
      (if or-part_0
        or-part_0
        (let ((p-ns_0
               (if (1/namespace? ns_0)
                 (let ((root-namespace18_0
                        (let ((or-part_1 (namespace-root-namespace ns_0)))
                          (if or-part_1 or-part_1 ns_0))))
                   (let ((app_0 (namespace-inspector ns_0)))
                     (let ((app_1 (namespace-available-module-instances ns_0)))
                       (namespace1.1
                        (namespace-mpi ns_0)
                        (namespace-source-name ns_0)
                        (namespace-root-expand-ctx ns_0)
                        phase_0
                        (namespace-0-phase ns_0)
                        (namespace-phase-to-namespace ns_0)
                        (namespace-phase-level-to-definitions ns_0)
                        (namespace-module-registry$1 ns_0)
                        (namespace-bulk-binding-registry ns_0)
                        (namespace-submodule-declarations ns_0)
                        root-namespace18_0
                        (namespace-declaration-inspector ns_0)
                        app_0
                        app_1
                        (namespace-module-instances ns_0)))))
                 (raise-argument-error 'struct-copy "namespace?" ns_0))))
          (begin
            (let ((small-ht_0 (namespace-phase-to-namespace ns_0)))
              (begin-unsafe
               (set-box!
                small-ht_0
                (hash-set (unbox small-ht_0) phase_0 p-ns_0))))
            p-ns_0))))))
(define namespace->name
  (lambda (ns_0)
    (let ((n_0 (namespace-source-name ns_0)))
      (let ((s_0
             (if (not n_0)
               'top-level
               (if (symbol? n_0)
                 (format "'~s" n_0)
                 (string-append "\"" (path->string n_0) "\"")))))
        (let ((r_0
               (1/resolved-module-path-name
                (1/module-path-index-resolve (namespace-mpi ns_0)))))
          (if (pair? r_0)
            (string-append
             "(submod "
             s_0
             " "
             (substring (format "~s" (cdr r_0)) 1))
            s_0))))))
(define namespace->definitions
  (lambda (ns_0 phase-level_0)
    (let ((d_0
           (let ((small-ht_0 (namespace-phase-level-to-definitions ns_0)))
             (begin-unsafe (hash-ref (unbox small-ht_0) phase-level_0 #f)))))
      (if d_0
        d_0
        (let ((p-ns_0
               (namespace->namespace-at-phase
                ns_0
                (phase+ (namespace-0-phase ns_0) phase-level_0))))
          (let ((d_1
                 (let ((app_0 (make-instance (namespace->name p-ns_0) p-ns_0)))
                   (definitions2.1 app_0 (make-hasheq)))))
            (begin
              (let ((small-ht_0 (namespace-phase-level-to-definitions ns_0)))
                (begin-unsafe
                 (set-box!
                  small-ht_0
                  (hash-set (unbox small-ht_0) phase-level_0 d_1))))
              d_1)))))))
(define namespace-set-variable!
  (let ((namespace-set-variable!_0
         (|#%name|
          namespace-set-variable!
          (lambda (ns10_0 phase-level11_0 name12_0 val13_0 as-constant?9_0)
            (begin
              (let ((d_0 (namespace->definitions ns10_0 phase-level11_0)))
                (instance-set-variable-value!
                 (definitions-variables d_0)
                 name12_0
                 val13_0
                 (if as-constant?9_0 'constant #f))))))))
    (case-lambda
     ((ns_0 phase-level_0 name_0 val_0)
      (namespace-set-variable!_0 ns_0 phase-level_0 name_0 val_0 #f))
     ((ns_0 phase-level_0 name_0 val_0 as-constant?9_0)
      (namespace-set-variable!_0
       ns_0
       phase-level_0
       name_0
       val_0
       as-constant?9_0)))))
(define namespace-set-consistent!
  (lambda (ns_0 phase-level_0 name_0 val_0)
    (let ((d_0 (namespace->definitions ns_0 phase-level_0)))
      (instance-set-variable-value!
       (definitions-variables d_0)
       name_0
       val_0
       'consistent))))
(define namespace-unset-variable!
  (lambda (ns_0 phase-level_0 name_0)
    (let ((d_0 (namespace->definitions ns_0 phase-level_0)))
      (instance-unset-variable! (definitions-variables d_0) name_0))))
(define namespace-set-transformer!
  (lambda (ns_0 phase-level_0 name_0 val_0)
    (let ((d_0 (namespace->definitions ns_0 (add1 phase-level_0))))
      (hash-set! (definitions-transformers d_0) name_0 val_0))))
(define namespace-unset-transformer!
  (lambda (ns_0 phase-level_0 name_0)
    (let ((d_0 (namespace->definitions ns_0 (add1 phase-level_0))))
      (hash-remove! (definitions-transformers d_0) name_0))))
(define namespace-get-variable
  (lambda (ns_0 phase-level_0 name_0 fail-k_0)
    (let ((d_0 (namespace->definitions ns_0 phase-level_0)))
      (instance-variable-value (definitions-variables d_0) name_0 fail-k_0))))
(define namespace-get-transformer
  (lambda (ns_0 phase-level_0 name_0 fail-k_0)
    (let ((d_0 (namespace->definitions ns_0 (add1 phase-level_0))))
      (hash-ref (definitions-transformers d_0) name_0 fail-k_0))))
(define namespace->instance
  (lambda (ns_0 phase-shift_0)
    (definitions-variables (namespace->definitions ns_0 phase-shift_0))))
(define namespace-same-instance?
  (lambda (a-ns_0 b-ns_0)
    (let ((app_0
           (let ((small-ht_0 (namespace-phase-level-to-definitions a-ns_0)))
             (begin-unsafe (hash-ref (unbox small-ht_0) 0 'no-a)))))
      (eq?
       app_0
       (let ((small-ht_0 (namespace-phase-level-to-definitions b-ns_0)))
         (begin-unsafe (hash-ref (unbox small-ht_0) 0 'no-b)))))))
(define original-property-sym (gensym 'original))
(define syntax->list$1
  (|#%name|
   syntax->list
   (lambda (s_0)
     (begin
       (let ((l_0
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (s_1)
                    (begin
                      (if (pair? s_1)
                        (let ((app_0 (car s_1)))
                          (cons app_0 (loop_0 (cdr s_1))))
                        (if (syntax?$1 s_1)
                          (loop_0 (syntax-e$1 s_1))
                          s_1)))))))
               (loop_0 s_0))))
         (if (list? l_0) l_0 #f))))))
(define missing$1 (gensym))
(define syntax-track-origin$1
  (let ((syntax-track-origin_0
         (|#%name|
          syntax-track-origin
          (lambda (new-stx2_0 old-stx3_0 id1_0)
            (begin
              (let ((id_0
                     (if (eq? id1_0 unsafe-undefined)
                       (if (identifier? old-stx3_0)
                         old-stx3_0
                         (let ((v_0 (syntax-e$1 old-stx3_0)))
                           (if (pair? v_0) (car v_0) #f)))
                       id1_0)))
                (let ((old-props_0
                       (hash-remove
                        (syntax-props old-stx3_0)
                        original-property-sym)))
                  (if (zero? (hash-count old-props_0))
                    (if id_0
                      (syntax-property$1
                       new-stx2_0
                       'origin
                       (cons
                        id_0
                        (hash-ref (syntax-props new-stx2_0) 'origin null)))
                      new-stx2_0)
                    (let ((new-props_0 (syntax-props new-stx2_0)))
                      (if (zero? (hash-count new-props_0))
                        (if id_0
                          (let ((old-origin_0
                                 (plain-property-value
                                  (hash-ref old-props_0 'origin missing$1))))
                            (let ((origin_0
                                   (if (eq? old-origin_0 missing$1)
                                     (list id_0)
                                     (cons id_0 old-origin_0))))
                              (if (syntax?$1 new-stx2_0)
                                (let ((props4_0
                                       (hash-set
                                        old-props_0
                                        'origin
                                        origin_0)))
                                  (let ((app_0 (syntax-content* new-stx2_0)))
                                    (let ((app_1 (syntax-scopes new-stx2_0)))
                                      (let ((app_2
                                             (syntax-shifted-multi-scopes
                                              new-stx2_0)))
                                        (let ((app_3
                                               (syntax-mpi-shifts new-stx2_0)))
                                          (let ((app_4
                                                 (syntax-srcloc$1 new-stx2_0)))
                                            (syntax2.1
                                             app_0
                                             app_1
                                             app_2
                                             app_3
                                             app_4
                                             props4_0
                                             (syntax-inspector
                                              new-stx2_0))))))))
                                (raise-argument-error
                                 'struct-copy
                                 "syntax?"
                                 new-stx2_0))))
                          (if (syntax?$1 new-stx2_0)
                            (let ((app_0 (syntax-content* new-stx2_0)))
                              (let ((app_1 (syntax-scopes new-stx2_0)))
                                (let ((app_2
                                       (syntax-shifted-multi-scopes
                                        new-stx2_0)))
                                  (let ((app_3 (syntax-mpi-shifts new-stx2_0)))
                                    (let ((app_4 (syntax-srcloc$1 new-stx2_0)))
                                      (syntax2.1
                                       app_0
                                       app_1
                                       app_2
                                       app_3
                                       app_4
                                       old-props_0
                                       (syntax-inspector new-stx2_0)))))))
                            (raise-argument-error
                             'struct-copy
                             "syntax?"
                             new-stx2_0)))
                        (let ((old-props-with-origin_0
                               (if id_0
                                 (hash-set
                                  old-props_0
                                  'origin
                                  (cons
                                   id_0
                                   (hash-ref old-props_0 'origin null)))
                                 old-props_0)))
                          (let ((updated-props_0
                                 (if (let ((app_0
                                            (hash-count
                                             old-props-with-origin_0)))
                                       (< app_0 (hash-count new-props_0)))
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (new-props_1 i_0)
                                           (begin
                                             (if i_0
                                               (call-with-values
                                                (lambda ()
                                                  (unsafe-immutable-hash-iterate-key+value
                                                   old-props-with-origin_0
                                                   i_0))
                                                (case-lambda
                                                 ((k_0 v_0)
                                                  (let ((new-props_2
                                                         (let ((new-props_2
                                                                (let ((new-v_0
                                                                       (hash-ref
                                                                        new-props_1
                                                                        k_0
                                                                        missing$1)))
                                                                  (hash-set
                                                                   new-props_1
                                                                   k_0
                                                                   (if (eq?
                                                                        new-v_0
                                                                        missing$1)
                                                                     v_0
                                                                     (cons/preserve
                                                                      new-v_0
                                                                      v_0))))))
                                                           (values
                                                            new-props_2))))
                                                    (for-loop_0
                                                     new-props_2
                                                     (unsafe-immutable-hash-iterate-next
                                                      old-props-with-origin_0
                                                      i_0))))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               new-props_1))))))
                                      (for-loop_0
                                       new-props_0
                                       (unsafe-immutable-hash-iterate-first
                                        old-props-with-origin_0))))
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (old-props_1 i_0)
                                           (begin
                                             (if i_0
                                               (call-with-values
                                                (lambda ()
                                                  (unsafe-immutable-hash-iterate-key+value
                                                   new-props_0
                                                   i_0))
                                                (case-lambda
                                                 ((k_0 v_0)
                                                  (let ((old-props_2
                                                         (let ((old-props_2
                                                                (let ((old-v_0
                                                                       (hash-ref
                                                                        old-props_1
                                                                        k_0
                                                                        missing$1)))
                                                                  (hash-set
                                                                   old-props_1
                                                                   k_0
                                                                   (if (eq?
                                                                        old-v_0
                                                                        missing$1)
                                                                     v_0
                                                                     (cons/preserve
                                                                      v_0
                                                                      old-v_0))))))
                                                           (values
                                                            old-props_2))))
                                                    (for-loop_0
                                                     old-props_2
                                                     (unsafe-immutable-hash-iterate-next
                                                      new-props_0
                                                      i_0))))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               old-props_1))))))
                                      (for-loop_0
                                       old-props-with-origin_0
                                       (unsafe-immutable-hash-iterate-first
                                        new-props_0)))))))
                            (if (syntax?$1 new-stx2_0)
                              (let ((app_0 (syntax-content* new-stx2_0)))
                                (let ((app_1 (syntax-scopes new-stx2_0)))
                                  (let ((app_2
                                         (syntax-shifted-multi-scopes
                                          new-stx2_0)))
                                    (let ((app_3
                                           (syntax-mpi-shifts new-stx2_0)))
                                      (let ((app_4
                                             (syntax-srcloc$1 new-stx2_0)))
                                        (syntax2.1
                                         app_0
                                         app_1
                                         app_2
                                         app_3
                                         app_4
                                         updated-props_0
                                         (syntax-inspector new-stx2_0)))))))
                              (raise-argument-error
                               'struct-copy
                               "syntax?"
                               new-stx2_0))))))))))))))
    (|#%name|
     syntax-track-origin
     (case-lambda
      ((new-stx_0 old-stx_0)
       (begin (syntax-track-origin_0 new-stx_0 old-stx_0 unsafe-undefined)))
      ((new-stx_0 old-stx_0 id1_0)
       (syntax-track-origin_0 new-stx_0 old-stx_0 id1_0))))))
(define cons/preserve
  (lambda (a_0 b_0)
    (if (let ((or-part_0 (preserved-property-value? a_0)))
          (if or-part_0 or-part_0 (preserved-property-value? b_0)))
      (preserved-property-value1.1
       (let ((app_0 (plain-property-value a_0)))
         (cons app_0 (plain-property-value b_0))))
      (cons a_0 b_0))))
(define syntax-track-origin*
  (lambda (old-stxes_0 new-stx_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (new-stx_1 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((old-stx_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((new-stx_2
                           (let ((new-stx_2
                                  (syntax-track-origin$1 new-stx_1 old-stx_0)))
                             (values new-stx_2))))
                      (for-loop_0 new-stx_2 rest_0))))
                new-stx_1))))))
       (for-loop_0 new-stx_0 old-stxes_0)))))
(define finish_2245
  (make-struct-type-install-properties
   '(syntax-binding-set)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'syntax-binding-set))
(define struct:syntax-binding-set
  (make-record-type-descriptor
   'syntax-binding-set
   #f
   (|#%nongenerative-uid| syntax-binding-set)
   #f
   #f
   '(1 . 0)))
(define effect_2582 (finish_2245 struct:syntax-binding-set))
(define syntax-binding-set1.1
  (|#%name|
   syntax-binding-set
   (record-constructor
    (make-record-constructor-descriptor struct:syntax-binding-set #f #f))))
(define 1/syntax-binding-set?_3050
  (|#%name| syntax-binding-set? (record-predicate struct:syntax-binding-set)))
(define 1/syntax-binding-set?
  (|#%name|
   syntax-binding-set?
   (lambda (v)
     (if (1/syntax-binding-set?_3050 v)
       #t
       ($value
        (if (impersonator? v)
          (1/syntax-binding-set?_3050 (impersonator-val v))
          #f))))))
(define syntax-binding-set-binds_2873
  (|#%name|
   syntax-binding-set-binds
   (record-accessor struct:syntax-binding-set 0)))
(define syntax-binding-set-binds
  (|#%name|
   syntax-binding-set-binds
   (lambda (s)
     (if (1/syntax-binding-set?_3050 s)
       (syntax-binding-set-binds_2873 s)
       ($value
        (impersonate-ref
         syntax-binding-set-binds_2873
         struct:syntax-binding-set
         0
         s
         'binds))))))
(define finish_2672
  (make-struct-type-install-properties
   '(bind)
   3
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'bind))
(define struct:bind
  (make-record-type-descriptor
   'bind
   #f
   (|#%nongenerative-uid| bind)
   #f
   #f
   '(3 . 0)))
(define effect_2584 (finish_2672 struct:bind))
(define bind2.1
  (|#%name|
   bind
   (record-constructor
    (make-record-constructor-descriptor struct:bind #f #f))))
(define bind?_2465 (|#%name| bind? (record-predicate struct:bind)))
(define bind?
  (|#%name|
   bind?
   (lambda (v)
     (if (bind?_2465 v)
       #t
       ($value (if (impersonator? v) (bind?_2465 (impersonator-val v)) #f))))))
(define bind-sym_2139 (|#%name| bind-sym (record-accessor struct:bind 0)))
(define bind-sym
  (|#%name|
   bind-sym
   (lambda (s)
     (if (bind?_2465 s)
       (bind-sym_2139 s)
       ($value (impersonate-ref bind-sym_2139 struct:bind 0 s 'sym))))))
(define bind-phase_2605 (|#%name| bind-phase (record-accessor struct:bind 1)))
(define bind-phase
  (|#%name|
   bind-phase
   (lambda (s)
     (if (bind?_2465 s)
       (bind-phase_2605 s)
       ($value (impersonate-ref bind-phase_2605 struct:bind 1 s 'phase))))))
(define bind-binding_2667
  (|#%name| bind-binding (record-accessor struct:bind 2)))
(define bind-binding
  (|#%name|
   bind-binding
   (lambda (s)
     (if (bind?_2465 s)
       (bind-binding_2667 s)
       ($value
        (impersonate-ref bind-binding_2667 struct:bind 2 s 'binding))))))
(define syntax-binding-set-extend$1
  (|#%name|
   syntax-binding-set-extend
   (lambda (bs_0
            as-sym_0
            as-phase_0
            mpi_0
            sym_0
            phase_0
            nominal-mpi_0
            nominal-phase+space_0
            nominal-sym_0
            nominal-require-phase+space-shift_0
            inspector_0)
     (begin
       (if (1/syntax-binding-set? bs_0)
         (let ((binds5_0
                (let ((app_0
                       (bind2.1
                        as-sym_0
                        as-phase_0
                        (make-module-binding.1
                         inspector_0
                         null
                         #f
                         #f
                         nominal-mpi_0
                         nominal-phase+space_0
                         nominal-require-phase+space-shift_0
                         nominal-sym_0
                         mpi_0
                         phase_0
                         sym_0))))
                  (cons app_0 (syntax-binding-set-binds bs_0)))))
           (syntax-binding-set1.1 binds5_0))
         (raise-argument-error 'struct-copy "syntax-binding-set?" bs_0))))))
(define syntax-binding-set->syntax$1
  (|#%name|
   syntax-binding-set->syntax
   (lambda (bs_0 datum_0)
     (begin
       (let ((s_0
              (let ((app_0 (datum->syntax$1 #f datum_0)))
                (add-scope app_0 (new-multi-scope 'binding-set)))))
         (begin
           (let ((lst_0 (syntax-binding-set-binds bs_0)))
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (lst_1)
                     (begin
                       (if (pair? lst_1)
                         (let ((bind_0 (unsafe-car lst_1)))
                           (let ((rest_0 (unsafe-cdr lst_1)))
                             (begin
                               (let ((temp14_0
                                      (syntax-scope-set
                                       s_0
                                       (bind-phase bind_0))))
                                 (let ((temp15_0 (bind-sym bind_0)))
                                   (let ((temp16_0 (bind-binding bind_0)))
                                     (let ((temp15_1 temp15_0)
                                           (temp14_1 temp14_0))
                                       (add-binding-in-scopes!.1
                                        #f
                                        temp14_1
                                        temp15_1
                                        temp16_0)))))
                               (for-loop_0 rest_0))))
                         (values)))))))
                (for-loop_0 lst_0))))
           (void)
           s_0))))))
(define-values
 (1/struct:exn:fail:syntax
  make-exn:fail:syntax$1
  1/exn:fail:syntax?
  1/exn:fail:syntax-exprs)
 (call-with-values
  (lambda ()
    (make-struct-type
     'exn:fail:syntax
     struct:exn:fail
     1
     0
     #f
     (list
      (cons
       prop:exn:srclocs
       (lambda (e_0)
         (filter
          values
          (map_1346 syntax-srcloc$1 (|#%app| 1/exn:fail:syntax-exprs e_0))))))
     #f
     #f
     '(0)
     (lambda (str_0 cm_0 exprs_0 info_0)
       (begin
         (if (if (list? exprs_0) (andmap_2344 syntax?$1 exprs_0) #f)
           (void)
           (raise-argument-error 'exn:fail:syntax "(listof syntax?)" exprs_0))
         (values str_0 cm_0 exprs_0)))
     'exn:fail:syntax))
  (case-lambda
   ((struct:_0 make-_0 ?_0 -ref_0 -set!_0)
    (values
     struct:_0
     make-_0
     ?_0
     (make-struct-field-accessor -ref_0 0 'exprs)))
   (args (raise-binding-result-arity-error 5 args)))))
(define-values
 (1/struct:exn:fail:syntax:unbound
  make-exn:fail:syntax:unbound$1
  1/exn:fail:syntax:unbound?)
 (call-with-values
  (lambda ()
    (make-struct-type
     'exn:fail:syntax:unbound
     1/struct:exn:fail:syntax
     0
     0
     #f
     null
     #f
     #f
     '()
     #f
     'exn:fail:syntax:unbound))
  (case-lambda
   ((struct:_0 make-_0 ?_0 -ref_0 -set!_0) (values struct:_0 make-_0 ?_0))
   (args (raise-binding-result-arity-error 5 args)))))
(define raise-syntax-error$1
  (let ((raise-syntax-error_0
         (|#%name|
          raise-syntax-error
          (lambda (given-name5_0
                   message6_0
                   expr1_0
                   sub-expr2_0
                   extra-sources3_0
                   message-suffix4_0)
            (begin
              (1/do-raise-syntax-error
               'raise-syntax-error
               make-exn:fail:syntax$1
               given-name5_0
               message6_0
               expr1_0
               sub-expr2_0
               extra-sources3_0
               message-suffix4_0))))))
    (|#%name|
     raise-syntax-error
     (case-lambda
      ((given-name_0 message_0)
       (begin (raise-syntax-error_0 given-name_0 message_0 #f #f null "")))
      ((given-name_0
        message_0
        expr_0
        sub-expr_0
        extra-sources_0
        message-suffix4_0)
       (raise-syntax-error_0
        given-name_0
        message_0
        expr_0
        sub-expr_0
        extra-sources_0
        message-suffix4_0))
      ((given-name_0 message_0 expr_0 sub-expr_0 extra-sources3_0)
       (raise-syntax-error_0
        given-name_0
        message_0
        expr_0
        sub-expr_0
        extra-sources3_0
        ""))
      ((given-name_0 message_0 expr_0 sub-expr2_0)
       (raise-syntax-error_0
        given-name_0
        message_0
        expr_0
        sub-expr2_0
        null
        ""))
      ((given-name_0 message_0 expr1_0)
       (raise-syntax-error_0 given-name_0 message_0 expr1_0 #f null ""))))))
(define raise-unbound-syntax-error
  (let ((raise-unbound-syntax-error_0
         (|#%name|
          raise-unbound-syntax-error
          (lambda (given-name11_0
                   message12_0
                   expr7_0
                   sub-expr8_0
                   extra-sources9_0
                   message-suffix10_0)
            (begin
              (1/do-raise-syntax-error
               'raise-unbound-syntax-error
               make-exn:fail:syntax:unbound$1
               given-name11_0
               message12_0
               expr7_0
               sub-expr8_0
               extra-sources9_0
               message-suffix10_0))))))
    (case-lambda
     ((given-name_0 message_0)
      (raise-unbound-syntax-error_0 given-name_0 message_0 #f #f null ""))
     ((given-name_0
       message_0
       expr_0
       sub-expr_0
       extra-sources_0
       message-suffix10_0)
      (raise-unbound-syntax-error_0
       given-name_0
       message_0
       expr_0
       sub-expr_0
       extra-sources_0
       message-suffix10_0))
     ((given-name_0 message_0 expr_0 sub-expr_0 extra-sources9_0)
      (raise-unbound-syntax-error_0
       given-name_0
       message_0
       expr_0
       sub-expr_0
       extra-sources9_0
       ""))
     ((given-name_0 message_0 expr_0 sub-expr8_0)
      (raise-unbound-syntax-error_0
       given-name_0
       message_0
       expr_0
       sub-expr8_0
       null
       ""))
     ((given-name_0 message_0 expr7_0)
      (raise-unbound-syntax-error_0
       given-name_0
       message_0
       expr7_0
       #f
       null
       "")))))
(define 1/do-raise-syntax-error
  (|#%name|
   do-raise-syntax-error
   (lambda (who_0
            exn:fail:syntax_0
            given-name_0
            message_0
            expr_0
            sub-expr_0
            extra-sources_0
            message-suffix_0)
     (begin
       (begin
         (if (let ((or-part_0 (not given-name_0)))
               (if or-part_0 or-part_0 (symbol? given-name_0)))
           (void)
           (raise-argument-error who_0 "(or/c symbol? #f)" given-name_0))
         (begin
           (if (string? message_0)
             (void)
             (raise-argument-error who_0 "string?" message_0))
           (begin
             (if (if (list? extra-sources_0)
                   (andmap_2344 syntax?$1 extra-sources_0)
                   #f)
               (void)
               (raise-argument-error who_0 "(listof syntax?)" extra-sources_0))
             (begin
               (if (string? message-suffix_0)
                 (void)
                 (raise-argument-error who_0 "string?" message-suffix_0))
               (let ((name_0
                      (format
                       "~a"
                       (if given-name_0
                         given-name_0
                         (let ((or-part_0 (extract-form-name expr_0)))
                           (if or-part_0 or-part_0 '?))))))
                 (let ((unbound-message_0
                        (let ((ids_0 (|#%app| current-previously-unbound)))
                          (let ((or-part_0
                                 (if (pair? ids_0)
                                   (let ((app_0
                                          (if (null? (cdr ids_0)) "" "s")))
                                     (format
                                      "\n  after encountering unbound identifier~a (which is possibly the real problem):~a"
                                      app_0
                                      (apply
                                       string-append
                                       (reverse$1
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (fold-var_0 lst_0)
                                                (begin
                                                  (if (pair? lst_0)
                                                    (let ((id_0
                                                           (unsafe-car lst_0)))
                                                      (let ((rest_0
                                                             (unsafe-cdr
                                                              lst_0)))
                                                        (let ((fold-var_1
                                                               (let ((fold-var_1
                                                                      (cons
                                                                       (format
                                                                        "\n   ~s"
                                                                        (syntax-e$1
                                                                         id_0))
                                                                       fold-var_0)))
                                                                 (values
                                                                  fold-var_1))))
                                                          (for-loop_0
                                                           fold-var_1
                                                           rest_0))))
                                                    fold-var_0))))))
                                           (for-loop_0 null ids_0)))))))
                                   #f)))
                            (if or-part_0 or-part_0 "")))))
                   (let ((at-message_0
                          (let ((or-part_0
                                 (if sub-expr_0
                                   (if (error-print-source-location)
                                     (string-append
                                      "\n  at:"
                                      (syntax->string sub-expr_0))
                                     #f)
                                   #f)))
                            (if or-part_0 or-part_0 ""))))
                     (let ((in-message_0
                            (let ((or-part_0
                                   (if expr_0
                                     (if (error-print-source-location)
                                       (string-append
                                        "\n  in:"
                                        (syntax->string expr_0))
                                       #f)
                                     #f)))
                              (if or-part_0 or-part_0 ""))))
                       (let ((src-loc-str_0
                              (let ((or-part_0
                                     (if (error-print-source-location)
                                       (let ((or-part_0
                                              (extract-source-location
                                               sub-expr_0)))
                                         (if or-part_0
                                           or-part_0
                                           (extract-source-location expr_0)))
                                       #f)))
                                (if or-part_0 or-part_0 ""))))
                         (let ((e_0
                                (let ((app_0
                                       (string-append
                                        src-loc-str_0
                                        name_0
                                        ": "
                                        message_0
                                        unbound-message_0
                                        at-message_0
                                        in-message_0
                                        message-suffix_0)))
                                  (let ((app_1 (current-continuation-marks)))
                                    (|#%app|
                                     exn:fail:syntax_0
                                     app_0
                                     app_1
                                     (map_1346
                                      syntax-taint$1
                                      (if (if sub-expr_0 sub-expr_0 expr_0)
                                        (let ((with-handlers-handler18_0
                                               (|#%name|
                                                with-handlers-handler18
                                                (lambda (exn_0)
                                                  (begin extra-sources_0)))))
                                          (let ((bpz_0
                                                 (continuation-mark-set-first
                                                  #f
                                                  break-enabled-key)))
                                            (call-handled-body
                                             bpz_0
                                             (lambda (e_0)
                                               (select-handler/no-breaks
                                                e_0
                                                bpz_0
                                                (list
                                                 (cons
                                                  exn:fail:contract?
                                                  with-handlers-handler18_0))))
                                             (lambda ()
                                               (cons
                                                (datum->syntax$1
                                                 #f
                                                 (if sub-expr_0
                                                   sub-expr_0
                                                   expr_0))
                                                extra-sources_0)))))
                                        extra-sources_0)))))))
                           (begin
                             (if (|#%app| 1/exn:fail:syntax? e_0)
                               (void)
                               (raise-result-error
                                who_0
                                "exn:fail:syntax?"
                                e_0))
                             (raise e_0))))))))))))))))
(define extract-form-name
  (lambda (s_0)
    (if (syntax?$1 s_0)
      (let ((e_0 (syntax-e$1 s_0)))
        (if (symbol? e_0)
          e_0
          (if (if (pair? e_0) (identifier? (car e_0)) #f)
            (syntax-e$1 (car e_0))
            #f)))
      #f)))
(define extract-source-location
  (lambda (s_0)
    (if (syntax?$1 s_0)
      (if (syntax-srcloc$1 s_0)
        (let ((str_0 (srcloc->string (syntax-srcloc$1 s_0))))
          (if str_0 (string-append str_0 ": ") #f))
        #f)
      #f)))
(define ->datum
  (lambda (expr_0)
    (let ((with-handlers-handler20_0
           (|#%name| with-handlers-handler20 (lambda (exn_0) (begin expr_0)))))
      (let ((bpz_0 (continuation-mark-set-first #f break-enabled-key)))
        (call-handled-body
         bpz_0
         (lambda (e_0)
           (select-handler/no-breaks
            e_0
            bpz_0
            (list (cons exn:fail:contract? with-handlers-handler20_0))))
         (lambda () (syntax->datum$1 (datum->syntax$1 #f expr_0))))))))
(define current-previously-unbound (lambda () #f))
(define set-current-previously-unbound!
  (lambda (proc_0) (set! current-previously-unbound proc_0)))
(define syntax->string
  (lambda (v_0)
    (let ((str_0
           (let ((app_0 (error-syntax->string-handler)))
             (|#%app| app_0 v_0 (error-print-width)))))
      (if (regexp-match? rx2823 str_0)
        (string-append "\n   " (regexp-replace* rx2823 str_0 "\n   "))
        (string-append " " str_0)))))
(define install-error-syntax->string-handler!
  (lambda ()
    (error-syntax->string-handler
     (|#%name|
      default-error-syntax->string-handler
      (lambda (v_0 len_0)
        (begin
          (begin
            (if (let ((or-part_0 (not len_0)))
                  (if or-part_0 or-part_0 (exact-nonnegative-integer? len_0)))
              (void)
              (raise-argument-error
               'default-error-value->string-handler
               "(or/c exact-nonnegative-integer? #f)"
               len_0))
            (if len_0
              (with-continuation-mark*
               authentic
               parameterization-key
               (let ((app_0
                      (continuation-mark-set-first #f parameterization-key)))
                 (extend-parameterization
                  app_0
                  error-print-width
                  (max 3 len_0)))
               (format "~.s" (->datum v_0)))
              (format "~s" (->datum v_0))))))))))
(define finish_2737
  (make-struct-type-install-properties
   '(module-use)
   2
   0
   #f
   (list
    (cons
     prop:equal+hash
     (list
      (lambda (a_0 b_0 eql?_0)
        (let ((a-mod_0 (module-use-module a_0)))
          (let ((b-mod_0 (module-use-module b_0)))
            (if (|#%app| eql?_0 a-mod_0 b-mod_0)
              (if (let ((app_0 (module-use-phase a_0)))
                    (|#%app| eql?_0 app_0 (module-use-phase b_0)))
                (call-with-values
                 (lambda () (1/module-path-index-split a-mod_0))
                 (case-lambda
                  ((a-path_0 a-base_0)
                   (call-with-values
                    (lambda () (1/module-path-index-split b-mod_0))
                    (case-lambda
                     ((b-path_0 b-base_0)
                      (let ((a-path_1 a-path_0) (a-base_1 a-base_0))
                        (if a-path_1
                          a-path_1
                          (if b-path_0
                            b-path_0
                            (let ((app_0 (module-path-index-resolved a-mod_0)))
                              (eq?
                               app_0
                               (module-path-index-resolved b-mod_0)))))))
                     (args (raise-binding-result-arity-error 2 args)))))
                  (args (raise-binding-result-arity-error 2 args))))
                #f)
              #f))))
      (lambda (a_0 hash-code_0)
        (let ((app_0 (|#%app| hash-code_0 (module-use-module a_0))))
          (+ app_0 (|#%app| hash-code_0 (module-use-phase a_0)))))
      (lambda (a_0 hash-code_0)
        (let ((app_0 (|#%app| hash-code_0 (module-use-module a_0))))
          (+ app_0 (|#%app| hash-code_0 (module-use-phase a_0))))))))
   (current-inspector)
   #f
   '(0 1)
   #f
   'module-use))
(define struct:module-use
  (make-record-type-descriptor
   'module-use
   #f
   (|#%nongenerative-uid| module-use)
   #f
   #f
   '(2 . 0)))
(define effect_2097 (finish_2737 struct:module-use))
(define module-use1.1
  (|#%name|
   module-use
   (record-constructor
    (make-record-constructor-descriptor struct:module-use #f #f))))
(define module-use?_2982
  (|#%name| module-use? (record-predicate struct:module-use)))
(define module-use?
  (|#%name|
   module-use?
   (lambda (v)
     (if (module-use?_2982 v)
       #t
       ($value
        (if (impersonator? v) (module-use?_2982 (impersonator-val v)) #f))))))
(define module-use-module_2384
  (|#%name| module-use-module (record-accessor struct:module-use 0)))
(define module-use-module
  (|#%name|
   module-use-module
   (lambda (s)
     (if (module-use?_2982 s)
       (module-use-module_2384 s)
       ($value
        (impersonate-ref
         module-use-module_2384
         struct:module-use
         0
         s
         'module))))))
(define module-use-phase_2668
  (|#%name| module-use-phase (record-accessor struct:module-use 1)))
(define module-use-phase
  (|#%name|
   module-use-phase
   (lambda (s)
     (if (module-use?_2982 s)
       (module-use-phase_2668 s)
       ($value
        (impersonate-ref
         module-use-phase_2668
         struct:module-use
         1
         s
         'phase))))))
(define finish_2633
  (make-struct-type-install-properties
   '(portal-syntax)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'portal-syntax))
(define struct:portal-syntax
  (make-record-type-descriptor
   'portal-syntax
   #f
   (|#%nongenerative-uid| portal-syntax)
   #f
   #f
   '(1 . 0)))
(define effect_2071 (finish_2633 struct:portal-syntax))
(define portal-syntax1.1
  (|#%name|
   portal-syntax
   (record-constructor
    (make-record-constructor-descriptor struct:portal-syntax #f #f))))
(define 1/portal-syntax?_2790
  (|#%name| portal-syntax? (record-predicate struct:portal-syntax)))
(define 1/portal-syntax?
  (|#%name|
   portal-syntax?
   (lambda (v)
     (if (1/portal-syntax?_2790 v)
       #t
       ($value
        (if (impersonator? v)
          (1/portal-syntax?_2790 (impersonator-val v))
          #f))))))
(define 1/portal-syntax-content_2264
  (|#%name| portal-syntax-content (record-accessor struct:portal-syntax 0)))
(define 1/portal-syntax-content
  (|#%name|
   portal-syntax-content
   (lambda (s)
     (if (1/portal-syntax?_2790 s)
       (1/portal-syntax-content_2264 s)
       ($value
        (impersonate-ref
         1/portal-syntax-content_2264
         struct:portal-syntax
         0
         s
         'content))))))
(define 1/make-portal-syntax
  (|#%name|
   make-portal-syntax
   (lambda (stx_0)
     (begin
       (begin
         (if (syntax?$1 stx_0)
           (void)
           (raise-argument-error 'make-portal-syntax "syntax?" stx_0))
         (portal-syntax1.1 stx_0))))))
(define finish_2611
  (make-struct-type-install-properties
   '(module)
   23
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22)
   #f
   'module))
(define struct:module
  (make-record-type-descriptor
   'module
   #f
   (|#%nongenerative-uid| module)
   #f
   #f
   '(23 . 32)))
(define effect_2640 (finish_2611 struct:module))
(define module1.1
  (|#%name|
   module
   (record-constructor
    (make-record-constructor-descriptor struct:module #f #f))))
(define module? (|#%name| module? (record-predicate struct:module)))
(define module-source-name
  (|#%name| module-source-name (record-accessor struct:module 0)))
(define module-self (|#%name| module-self (record-accessor struct:module 1)))
(define module-requires
  (|#%name| module-requires (record-accessor struct:module 2)))
(define module-recur-requires
  (|#%name| module-recur-requires (record-accessor struct:module 3)))
(define module-provides
  (|#%name| module-provides (record-accessor struct:module 4)))
(define module-access
  (|#%name| module-access (record-accessor struct:module 5)))
(define module-language-info
  (|#%name| module-language-info (record-accessor struct:module 6)))
(define module-realm (|#%name| module-realm (record-accessor struct:module 7)))
(define module-min-phase-level
  (|#%name| module-min-phase-level (record-accessor struct:module 8)))
(define module-max-phase-level
  (|#%name| module-max-phase-level (record-accessor struct:module 9)))
(define module-phase-level-linklet-info-callback
  (|#%name|
   module-phase-level-linklet-info-callback
   (record-accessor struct:module 10)))
(define module-force-bulk-binding
  (|#%name| module-force-bulk-binding (record-accessor struct:module 11)))
(define module-prepare-instance
  (|#%name| module-prepare-instance (record-accessor struct:module 12)))
(define module-instantiate-phase
  (|#%name| module-instantiate-phase (record-accessor struct:module 13)))
(define module-primitive?
  (|#%name| module-primitive? (record-accessor struct:module 14)))
(define module-is-predefined?
  (|#%name| module-is-predefined? (record-accessor struct:module 15)))
(define module-cross-phase-persistent?
  (|#%name| module-cross-phase-persistent? (record-accessor struct:module 16)))
(define module-no-protected?
  (|#%name| module-no-protected? (record-accessor struct:module 17)))
(define module-inspector
  (|#%name| module-inspector (record-accessor struct:module 18)))
(define module-submodule-names
  (|#%name| module-submodule-names (record-accessor struct:module 19)))
(define module-supermodule-name
  (|#%name| module-supermodule-name (record-accessor struct:module 20)))
(define module-get-all-variables
  (|#%name| module-get-all-variables (record-accessor struct:module 21)))
(define module-get-portal-syntax-callback
  (|#%name|
   module-get-portal-syntax-callback
   (record-accessor struct:module 22)))
(define set-module-access!
  (|#%name| set-module-access! (record-mutator struct:module 5)))
(define finish_2550
  (make-struct-type-install-properties
   '(module-linklet-info)
   6
   0
   #f
   (list (cons prop:authentic #t))
   #f
   #f
   '(0 1 2 3 4 5)
   #f
   'module-linklet-info))
(define struct:module-linklet-info
  (make-record-type-descriptor
   'module-linklet-info
   #f
   (|#%nongenerative-uid| module-linklet-info)
   #f
   #f
   '(6 . 0)))
(define effect_2508 (finish_2550 struct:module-linklet-info))
(define module-linklet-info2.1
  (|#%name|
   module-linklet-info
   (record-constructor
    (make-record-constructor-descriptor struct:module-linklet-info #f #f))))
(define module-linklet-info?
  (|#%name|
   module-linklet-info?
   (record-predicate struct:module-linklet-info)))
(define module-linklet-info-linklet-or-instance
  (|#%name|
   module-linklet-info-linklet-or-instance
   (record-accessor struct:module-linklet-info 0)))
(define module-linklet-info-module-uses
  (|#%name|
   module-linklet-info-module-uses
   (record-accessor struct:module-linklet-info 1)))
(define module-linklet-info-self
  (|#%name|
   module-linklet-info-self
   (record-accessor struct:module-linklet-info 2)))
(define module-linklet-info-inspector
  (|#%name|
   module-linklet-info-inspector
   (record-accessor struct:module-linklet-info 3)))
(define module-linklet-info-extra-inspector
  (|#%name|
   module-linklet-info-extra-inspector
   (record-accessor struct:module-linklet-info 4)))
(define module-linklet-info-extra-inspectorsss
  (|#%name|
   module-linklet-info-extra-inspectorsss
   (record-accessor struct:module-linklet-info 5)))
(define make-module.1
  (|#%name|
   make-module
   (lambda (cross-phase-persistent?18_0
            force-bulk-binding-callback11_0
            get-all-variables22_0
            get-portal-syntax-callback23_0
            instantiate-phase-callback10_0
            language-info14_0
            max-phase-level9_0
            min-phase-level8_0
            no-protected?19_0
            phase-level-linklet-info-callback13_0
            predefined?17_0
            prepare-instance-callback12_0
            primitive?16_0
            provides7_0
            realm15_0
            recur-requires6_0
            requires5_0
            self4_0
            source-name3_0
            submodule-names20_0
            supermodule-name21_0)
     (begin
       (let ((recur-requires_0
              (if (eq? recur-requires6_0 unsafe-undefined)
                (reverse$1
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (fold-var_0 lst_0)
                         (begin
                           (if (pair? lst_0)
                             (let ((phase+mps_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((fold-var_1
                                        (let ((fold-var_1
                                               (cons
                                                (reverse$1
                                                 (let ((lst_1
                                                        (cdr phase+mps_0)))
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_1
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (fold-var_1
                                                                  lst_2)
                                                           (begin
                                                             (if (pair? lst_2)
                                                               (let ((mp_0
                                                                      (unsafe-car
                                                                       lst_2)))
                                                                 (let ((rest_1
                                                                        (unsafe-cdr
                                                                         lst_2)))
                                                                   (let ((fold-var_2
                                                                          (cons
                                                                           #t
                                                                           fold-var_1)))
                                                                     (let ((fold-var_3
                                                                            (values
                                                                             fold-var_2)))
                                                                       (for-loop_1
                                                                        fold-var_3
                                                                        rest_1)))))
                                                               fold-var_1))))))
                                                      (for-loop_1
                                                       null
                                                       lst_1)))))
                                                fold-var_0)))
                                          (values fold-var_1))))
                                   (for-loop_0 fold-var_1 rest_0))))
                             fold-var_0))))))
                    (for-loop_0 null requires5_0))))
                recur-requires6_0)))
         (let ((phase-level-linklet-info-callback_0
                (if (eq?
                     phase-level-linklet-info-callback13_0
                     unsafe-undefined)
                  (|#%name|
                   phase-level-linklet-info-callback
                   (lambda (phase-level_0 ns_0 insp_0) (begin #f)))
                  phase-level-linklet-info-callback13_0)))
           (let ((cross-phase-persistent?_0
                  (if (eq? cross-phase-persistent?18_0 unsafe-undefined)
                    primitive?16_0
                    cross-phase-persistent?18_0)))
             (let ((get-all-variables_0
                    (if (eq? get-all-variables22_0 unsafe-undefined)
                      (|#%name| get-all-variables (lambda () (begin null)))
                      get-all-variables22_0)))
               (let ((get-portal-syntax-callback_0
                      (if (eq? get-portal-syntax-callback23_0 unsafe-undefined)
                        (|#%name|
                         get-portal-syntax-callback
                         (lambda (data-box_0 phase_0 sym_0) (begin #f)))
                        get-portal-syntax-callback23_0)))
                 (let ((app_0 (fresh-requires requires5_0)))
                   (module1.1
                    source-name3_0
                    self4_0
                    app_0
                    recur-requires_0
                    provides7_0
                    #f
                    language-info14_0
                    realm15_0
                    min-phase-level8_0
                    max-phase-level9_0
                    phase-level-linklet-info-callback_0
                    force-bulk-binding-callback11_0
                    prepare-instance-callback12_0
                    instantiate-phase-callback10_0
                    primitive?16_0
                    predefined?17_0
                    cross-phase-persistent?_0
                    no-protected?19_0
                    (current-code-inspector)
                    submodule-names20_0
                    supermodule-name21_0
                    get-all-variables_0
                    get-portal-syntax-callback_0)))))))))))
(define finish_2793
  (make-struct-type-install-properties
   '(module-instance)
   8
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 3 6 7)
   #f
   'module-instance))
(define struct:module-instance
  (make-record-type-descriptor
   'module-instance
   #f
   (|#%nongenerative-uid| module-instance)
   #f
   #f
   '(8 . 52)))
(define effect_2382 (finish_2793 struct:module-instance))
(define module-instance46.1
  (|#%name|
   module-instance
   (record-constructor
    (make-record-constructor-descriptor struct:module-instance #f #f))))
(define module-instance?
  (|#%name| module-instance? (record-predicate struct:module-instance)))
(define module-instance-namespace
  (|#%name|
   module-instance-namespace
   (record-accessor struct:module-instance 0)))
(define module-instance-module
  (|#%name| module-instance-module (record-accessor struct:module-instance 1)))
(define module-instance-shifted-requires
  (|#%name|
   module-instance-shifted-requires
   (record-accessor struct:module-instance 2)))
(define module-instance-phase-level-to-state
  (|#%name|
   module-instance-phase-level-to-state
   (record-accessor struct:module-instance 3)))
(define module-instance-made-available?
  (|#%name|
   module-instance-made-available?
   (record-accessor struct:module-instance 4)))
(define module-instance-attached?
  (|#%name|
   module-instance-attached?
   (record-accessor struct:module-instance 5)))
(define module-instance-data-box
  (|#%name|
   module-instance-data-box
   (record-accessor struct:module-instance 6)))
(define module-instance-portal-syntaxes
  (|#%name|
   module-instance-portal-syntaxes
   (record-accessor struct:module-instance 7)))
(define set-module-instance-shifted-requires!
  (|#%name|
   set-module-instance-shifted-requires!
   (record-mutator struct:module-instance 2)))
(define set-module-instance-made-available?!
  (|#%name|
   set-module-instance-made-available?!
   (record-mutator struct:module-instance 4)))
(define set-module-instance-attached?!
  (|#%name|
   set-module-instance-attached?!
   (record-mutator struct:module-instance 5)))
(define make-module-instance
  (lambda (m-ns_0 m_0 portal-syntaxes_0)
    (let ((app_0 (make-small-hasheqv)))
      (module-instance46.1
       m-ns_0
       m_0
       #f
       app_0
       #f
       #f
       (box #f)
       portal-syntaxes_0))))
(define make-module-namespace.1
  (|#%name|
   make-module-namespace
   (lambda (for-submodule?49_0
            mpi47_0
            portal-syntaxes50_0
            root-expand-context48_0
            ns55_0)
     (begin
       (let ((name_0 (1/module-path-index-resolve mpi47_0)))
         (let ((m-ns_0
                (let ((the-struct_0
                       (new-namespace.1 #f root-expand-context48_0 ns55_0)))
                  (if (1/namespace? the-struct_0)
                    (let ((source-name151_0
                           (resolved-module-path-root-name name_0)))
                      (let ((submodule-declarations154_0
                             (if for-submodule?49_0
                               (namespace-submodule-declarations ns55_0)
                               (make-small-hasheq))))
                        (let ((available-module-instances155_0 (make-hasheqv)))
                          (let ((module-instances156_0 (make-hasheqv)))
                            (let ((declaration-inspector157_0
                                   (current-code-inspector)))
                              (let ((module-instances156_1
                                     module-instances156_0)
                                    (available-module-instances155_1
                                     available-module-instances155_0)
                                    (submodule-declarations154_1
                                     submodule-declarations154_0)
                                    (source-name151_1 source-name151_0))
                                (namespace1.1
                                 mpi47_0
                                 source-name151_1
                                 (namespace-root-expand-ctx the-struct_0)
                                 0
                                 0
                                 (namespace-phase-to-namespace the-struct_0)
                                 (namespace-phase-level-to-definitions
                                  the-struct_0)
                                 (namespace-module-registry$1 the-struct_0)
                                 (namespace-bulk-binding-registry the-struct_0)
                                 submodule-declarations154_1
                                 (namespace-root-namespace the-struct_0)
                                 declaration-inspector157_0
                                 (namespace-inspector the-struct_0)
                                 available-module-instances155_1
                                 module-instances156_1)))))))
                    (raise-argument-error
                     'struct-copy
                     "namespace?"
                     the-struct_0)))))
           (begin
             (let ((small-ht_0 (namespace-phase-to-namespace m-ns_0)))
               (begin-unsafe
                (set-box! small-ht_0 (hash-set (unbox small-ht_0) 0 m-ns_0))))
             (let ((at-phase_0 (make-hasheq)))
               (begin
                 (hash-set! (namespace-module-instances m-ns_0) 0 at-phase_0)
                 (hash-set!
                  at-phase_0
                  name_0
                  (make-module-instance m-ns_0 #f portal-syntaxes50_0))
                 m-ns_0)))))))))
(define declare-module!.1
  (|#%name|
   declare-module!
   (lambda (with-submodules?57_0 ns59_0 m60_0 mod-name61_0)
     (begin
       (let ((prior-m_0
              (if with-submodules?57_0
                (hash-ref
                 (module-registry-declarations
                  (namespace-module-registry$1 ns59_0))
                 mod-name61_0
                 #f)
                #f)))
         (let ((prior-mi_0
                (if prior-m_0
                  (if (not (eq? m60_0 prior-m_0))
                    (let ((temp163_0 (namespace-phase ns59_0)))
                      (namespace->module-instance.1
                       #f
                       #f
                       void
                       ns59_0
                       mod-name61_0
                       temp163_0))
                    #f)
                  #f)))
           (begin
             (if (if prior-m_0 (not (eq? m60_0 prior-m_0)) #f)
               (check-redeclaration-ok prior-m_0 prior-mi_0 mod-name61_0)
               (void))
             (if with-submodules?57_0
               (hash-set!
                (module-registry-declarations
                 (namespace-module-registry$1 ns59_0))
                mod-name61_0
                m60_0)
               (let ((small-ht_0 (namespace-submodule-declarations ns59_0)))
                 (begin-unsafe
                  (set-box!
                   small-ht_0
                   (hash-set (unbox small-ht_0) mod-name61_0 m60_0)))))
             (if with-submodules?57_0
               (begin
                 (let ((bulk-binding-registry_0
                        (namespace-bulk-binding-registry ns59_0)))
                   (let ((self_0 (module-self m60_0)))
                     (let ((provides_0 (module-provides m60_0)))
                       (begin-unsafe
                        (let ((app_0
                               (bulk-binding-registry-table
                                bulk-binding-registry_0)))
                          (hash-set!
                           app_0
                           mod-name61_0
                           (bulk-provide13.1 self_0 provides_0)))))))
                 (|#%app| (1/current-module-name-resolver) mod-name61_0 #f))
               (void))
             (if prior-mi_0
               (let ((m-ns_0 (module-instance-namespace prior-mi_0)))
                 (let ((states_0
                        (module-instance-phase-level-to-state prior-mi_0)))
                   (let ((phase_0 (namespace-phase ns59_0)))
                     (let ((visit?_0
                            (eq?
                             'started
                             (let ((key_0 (add1 phase_0)))
                               (begin-unsafe
                                (hash-ref (unbox states_0) key_0 #f))))))
                       (let ((run?_0
                              (eq?
                               'started
                               (begin-unsafe
                                (hash-ref (unbox states_0) phase_0 #f)))))
                         (let ((at-phase_0
                                (hash-ref
                                 (namespace-module-instances ns59_0)
                                 phase_0)))
                           (begin
                             (hash-set!
                              at-phase_0
                              mod-name61_0
                              (make-module-instance m-ns_0 m60_0 #f))
                             (set-module-instance-shifted-requires!
                              prior-mi_0
                              #f)
                             (if visit?_0
                               (let ((temp165_0 (namespace-mpi m-ns_0)))
                                 (namespace-module-visit!.1
                                  #f
                                  unsafe-undefined
                                  ns59_0
                                  temp165_0
                                  phase_0))
                               (void))
                             (if run?_0
                               (let ((temp168_0 (namespace-mpi m-ns_0)))
                                 (namespace-module-instantiate!.1
                                  #f
                                  #t
                                  unsafe-undefined
                                  hash2610
                                  null
                                  #f
                                  #f
                                  ns59_0
                                  temp168_0
                                  phase_0))
                               (void)))))))))
               (void)))))))))
(define check-redeclaration-ok
  (lambda (prior-m_0 prior-mi_0 mod-name_0)
    (begin
      (if (module-cross-phase-persistent? prior-m_0)
        (raise-arguments-error
         'module
         "cannot redeclare cross-phase persistent module"
         "module name"
         (module-name->error-string mod-name_0))
        (void))
      (if (if prior-mi_0
            (let ((or-part_0 (module-instance-attached? prior-mi_0)))
              (if or-part_0
                or-part_0
                (not
                 (let ((app_0 (current-code-inspector)))
                   (inspector-superior?
                    app_0
                    (namespace-inspector
                     (module-instance-namespace prior-mi_0)))))))
            #f)
        (raise-arguments-error
         'module
         "current code inspector cannot redeclare module"
         "module name"
         (module-name->error-string mod-name_0))
        (void)))))
(define raise-unknown-module-error
  (lambda (who_0 mod-name_0)
    (raise-arguments-error
     who_0
     "unknown module"
     "module name"
     (module-name->error-string mod-name_0))))
(define namespace->module-linklet-info
  (lambda (ns_0 name_0 phase-level_0)
    (let ((m_0 (namespace->module ns_0 name_0)))
      (if m_0
        (|#%app|
         (module-phase-level-linklet-info-callback m_0)
         phase-level_0
         ns_0
         (module-inspector m_0))
        #f))))
(define module-name->error-string
  (lambda (mod-name_0) (unquoted-printing-string (format "~a" mod-name_0))))
(define namespace->module-instance.1
  (|#%name|
   namespace->module-instance
   (lambda (check-available-at-phase-level64_0
            complain-on-failure?63_0
            unavailable-callback65_0
            ns69_0
            name70_0
            0-phase71_0)
     (begin
       (let ((mi_0
              (let ((or-part_0
                     (hash-ref
                      (hash-ref
                       (namespace-module-instances ns69_0)
                       0-phase71_0
                       hash2610)
                      name70_0
                      #f)))
                (if or-part_0
                  or-part_0
                  (let ((or-part_1
                         (let ((c-ns_0
                                (let ((or-part_1
                                       (namespace-root-namespace ns69_0)))
                                  (if or-part_1 or-part_1 ns69_0))))
                           (hash-ref
                            (namespace-module-instances c-ns_0)
                            name70_0
                            #f))))
                    (if or-part_1
                      or-part_1
                      (if complain-on-failure?63_0
                        (error
                         'require
                         (string-append
                          "namespace mismatch;\n"
                          " reference to a module that is not instantiated\n"
                          "  module: ~a\n"
                          "  phase: ~a")
                         name70_0
                         0-phase71_0)
                        #f)))))))
         (if (if mi_0 check-available-at-phase-level64_0 #f)
           (check-availablilty
            mi_0
            check-available-at-phase-level64_0
            unavailable-callback65_0)
           mi_0))))))
(define namespace-install-module-namespace!
  (lambda (ns_0 name_0 0-phase_0 m_0 existing-m-ns_0)
    (let ((m-ns_0
           (if (1/namespace? ns_0)
             (let ((mpi170_0 (namespace-mpi existing-m-ns_0)))
               (let ((source-name171_0
                      (namespace-source-name existing-m-ns_0)))
                 (let ((root-expand-ctx172_0
                        (box
                         (unbox (namespace-root-expand-ctx existing-m-ns_0)))))
                   (let ((phase173_0 (namespace-phase existing-m-ns_0)))
                     (let ((0-phase174_0 (namespace-0-phase existing-m-ns_0)))
                       (let ((phase-to-namespace175_0 (make-small-hasheqv)))
                         (let ((phase-level-to-definitions176_0
                                (if (module-cross-phase-persistent? m_0)
                                  (namespace-phase-level-to-definitions
                                   existing-m-ns_0)
                                  (make-small-hasheqv))))
                           (let ((declaration-inspector177_0
                                  (module-inspector m_0)))
                             (let ((inspector178_0
                                    (namespace-inspector existing-m-ns_0)))
                               (let ((declaration-inspector177_1
                                      declaration-inspector177_0)
                                     (phase-level-to-definitions176_1
                                      phase-level-to-definitions176_0)
                                     (phase-to-namespace175_1
                                      phase-to-namespace175_0)
                                     (0-phase174_1 0-phase174_0)
                                     (phase173_1 phase173_0)
                                     (root-expand-ctx172_1
                                      root-expand-ctx172_0)
                                     (source-name171_1 source-name171_0)
                                     (mpi170_1 mpi170_0))
                                 (namespace1.1
                                  mpi170_1
                                  source-name171_1
                                  root-expand-ctx172_1
                                  phase173_1
                                  0-phase174_1
                                  phase-to-namespace175_1
                                  phase-level-to-definitions176_1
                                  (namespace-module-registry$1 ns_0)
                                  (namespace-bulk-binding-registry ns_0)
                                  (namespace-submodule-declarations ns_0)
                                  (namespace-root-namespace ns_0)
                                  declaration-inspector177_1
                                  inspector178_0
                                  (namespace-available-module-instances ns_0)
                                  (namespace-module-instances ns_0))))))))))))
             (raise-argument-error 'struct-copy "namespace?" ns_0))))
      (let ((mi_0 (make-module-instance m-ns_0 m_0 #f)))
        (begin
          (set-module-instance-attached?! mi_0 #t)
          (if (module-cross-phase-persistent? m_0)
            (begin
              (let ((small-ht_0 (namespace-phase-to-namespace m-ns_0)))
                (begin-unsafe
                 (set-box! small-ht_0 (hash-set (unbox small-ht_0) 0 m-ns_0))))
              (let ((small-ht_0 (namespace-phase-level-to-definitions m-ns_0)))
                (let ((val_0 (namespace->definitions existing-m-ns_0 0)))
                  (let ((small-ht_1 small-ht_0))
                    (begin-unsafe
                     (set-box!
                      small-ht_1
                      (hash-set (unbox small-ht_1) 0 val_0))))))
              (let ((small-ht_0 (namespace-phase-to-namespace m-ns_0)))
                (let ((val_0 (namespace->namespace-at-phase m-ns_0 1)))
                  (let ((small-ht_1 small-ht_0))
                    (begin-unsafe
                     (set-box!
                      small-ht_1
                      (hash-set (unbox small-ht_1) 1 val_0))))))
              (let ((small-ht_0 (namespace-phase-level-to-definitions m-ns_0)))
                (let ((val_0 (namespace->definitions existing-m-ns_0 1)))
                  (let ((small-ht_1 small-ht_0))
                    (begin-unsafe
                     (set-box!
                      small-ht_1
                      (hash-set (unbox small-ht_1) 1 val_0))))))
              (hash-set!
               (namespace-module-instances
                (let ((or-part_0 (namespace-root-namespace ns_0)))
                  (if or-part_0 or-part_0 ns_0)))
               name_0
               mi_0)
              (let ((small-ht_0 (module-instance-phase-level-to-state mi_0)))
                (begin-unsafe
                 (set-box!
                  small-ht_0
                  (hash-set (unbox small-ht_0) 0 'started)))))
            (begin
              (let ((small-ht_0 (namespace-phase-to-namespace m-ns_0)))
                (begin-unsafe
                 (set-box!
                  small-ht_0
                  (hash-set (unbox small-ht_0) 0-phase_0 m-ns_0))))
              (begin
                (let ((small-ht_0
                       (namespace-phase-level-to-definitions m-ns_0)))
                  (let ((val_0 (namespace->definitions existing-m-ns_0 0)))
                    (let ((small-ht_1 small-ht_0))
                      (begin-unsafe
                       (set-box!
                        small-ht_1
                        (hash-set (unbox small-ht_1) 0 val_0))))))
                (begin
                  (let ((small-ht_0
                         (module-instance-phase-level-to-state mi_0)))
                    (begin-unsafe
                     (set-box!
                      small-ht_0
                      (hash-set (unbox small-ht_0) 0 'started))))
                  (let ((at-phase_0
                         (let ((or-part_0
                                (hash-ref
                                 (namespace-module-instances ns_0)
                                 0-phase_0
                                 #f)))
                           (if or-part_0
                             or-part_0
                             (let ((at-phase_0 (make-hasheq)))
                               (begin
                                 (hash-set!
                                  (namespace-module-instances ns_0)
                                  0-phase_0
                                  at-phase_0)
                                 at-phase_0))))))
                    (hash-set! at-phase_0 name_0 mi_0)))))))))))
(define namespace-create-module-instance!
  (lambda (ns_0 name_0 0-phase_0 m_0 mpi_0)
    (let ((m-ns_0
           (if (1/namespace? ns_0)
             (let ((source-name180_0
                    (let ((or-part_0 (module-source-name m_0)))
                      (if or-part_0
                        or-part_0
                        (resolved-module-path-root-name
                         (1/module-path-index-resolve mpi_0))))))
               (let ((root-expand-ctx181_0 (box #f)))
                 (let ((phase-to-namespace184_0 (make-small-hasheqv)))
                   (let ((phase-level-to-definitions185_0
                          (make-small-hasheqv)))
                     (let ((declaration-inspector186_0 (module-inspector m_0)))
                       (let ((inspector187_0
                              (make-inspector (module-inspector m_0))))
                         (let ((declaration-inspector186_1
                                declaration-inspector186_0)
                               (phase-level-to-definitions185_1
                                phase-level-to-definitions185_0)
                               (phase-to-namespace184_1
                                phase-to-namespace184_0)
                               (root-expand-ctx181_1 root-expand-ctx181_0)
                               (source-name180_1 source-name180_0))
                           (namespace1.1
                            mpi_0
                            source-name180_1
                            root-expand-ctx181_1
                            0-phase_0
                            0-phase_0
                            phase-to-namespace184_1
                            phase-level-to-definitions185_1
                            (namespace-module-registry$1 ns_0)
                            (namespace-bulk-binding-registry ns_0)
                            (namespace-submodule-declarations ns_0)
                            (namespace-root-namespace ns_0)
                            declaration-inspector186_1
                            inspector187_0
                            (namespace-available-module-instances ns_0)
                            (namespace-module-instances ns_0)))))))))
             (raise-argument-error 'struct-copy "namespace?" ns_0))))
      (begin
        (let ((small-ht_0 (namespace-phase-to-namespace m-ns_0)))
          (begin-unsafe
           (set-box!
            small-ht_0
            (hash-set (unbox small-ht_0) 0-phase_0 m-ns_0))))
        (let ((mi_0 (make-module-instance m-ns_0 m_0 #f)))
          (begin
            (if (module-cross-phase-persistent? m_0)
              (hash-set! (namespace-module-instances ns_0) name_0 mi_0)
              (let ((at-phase_0
                     (let ((or-part_0
                            (hash-ref
                             (namespace-module-instances ns_0)
                             0-phase_0
                             #f)))
                       (if or-part_0
                         or-part_0
                         (let ((at-phase_0 (make-hasheq)))
                           (begin
                             (hash-set!
                              (namespace-module-instances ns_0)
                              0-phase_0
                              at-phase_0)
                             at-phase_0))))))
                (hash-set! at-phase_0 name_0 mi_0)))
            mi_0))))))
(define check-availablilty
  (lambda (mi_0 check-available-at-phase-level_0 unavailable-callback_0)
    (let ((m_0 (module-instance-module mi_0)))
      (if (if m_0
            (if (let ((app_0 (add1 check-available-at-phase-level_0)))
                  (<=
                   (module-min-phase-level m_0)
                   app_0
                   (module-max-phase-level m_0)))
              (not
               (let ((small-ht_0 (module-instance-phase-level-to-state mi_0)))
                 (let ((key_0 (add1 check-available-at-phase-level_0)))
                   (let ((small-ht_1 small-ht_0))
                     (begin-unsafe (hash-ref (unbox small-ht_1) key_0 #f))))))
              #f)
            #f)
        (|#%app| unavailable-callback_0 mi_0)
        mi_0))))
(define namespace->module-namespace.1
  (|#%name|
   namespace->module-namespace
   (lambda (check-available-at-phase-level74_0
            complain-on-failure?73_0
            unavailable-callback75_0
            ns79_0
            name80_0
            0-phase81_0)
     (begin
       (let ((mi_0
              (namespace->module-instance.1
               check-available-at-phase-level74_0
               complain-on-failure?73_0
               unavailable-callback75_0
               ns79_0
               name80_0
               0-phase81_0)))
         (if mi_0 (module-instance-namespace mi_0) #f))))))
(define namespace-record-module-instance-attached!
  (lambda (ns_0 mod-name_0 phase_0)
    (let ((mi_0
           (namespace->module-instance.1 #f #f void ns_0 mod-name_0 phase_0)))
      (set-module-instance-attached?! mi_0 #t))))
(define module-force-bulk-binding!
  (lambda (m_0 ns_0)
    (|#%app|
     (module-force-bulk-binding m_0)
     (namespace-bulk-binding-registry ns_0))))
(define namespace-module-instantiate!.1
  (|#%name|
   namespace-module-instantiate!
   (lambda (minimum-inspector88_0
            otherwise-available?85_0
            run-phase83_0
            seen86_0
            seen-list87_0
            skip-run?84_0
            transitive-record89_0
            ns97_0
            mpi98_0
            instance-phase99_0)
     (begin
       (let ((run-phase_0
              (if (eq? run-phase83_0 unsafe-undefined)
                (namespace-phase ns97_0)
                run-phase83_0)))
         (begin
           (if (1/module-path-index? mpi98_0)
             (void)
             (error "not a module path index:" mpi98_0))
           (let ((name_0 (1/module-path-index-resolve mpi98_0 #t)))
             (begin
               (if (if transitive-record89_0 (pair? seen-list87_0) #f)
                 (hash-set!
                  transitive-record89_0
                  name_0
                  (hash-set
                   (hash-ref transitive-record89_0 name_0 hash2589)
                   instance-phase99_0
                   #t))
                 (void))
               (let ((m_0 (namespace->module ns97_0 name_0)))
                 (begin
                   (if m_0
                     (void)
                     (begin-unsafe
                      (raise-arguments-error
                       'instantiate
                       "unknown module"
                       "module name"
                       (module-name->error-string name_0))))
                   (let ((instantiate!_0
                          (|#%name|
                           instantiate!
                           (lambda (instance-phase_0 run-phase_1 ns_0)
                             (begin
                               (let ((mi_0
                                      (let ((or-part_0
                                             (namespace->module-instance.1
                                              #f
                                              #f
                                              void
                                              ns_0
                                              name_0
                                              instance-phase_0)))
                                        (if or-part_0
                                          or-part_0
                                          (namespace-create-module-instance!
                                           ns_0
                                           name_0
                                           instance-phase_0
                                           m_0
                                           mpi98_0)))))
                                 (run-module-instance!.1
                                  minimum-inspector88_0
                                  otherwise-available?85_0
                                  run-phase_1
                                  seen86_0
                                  seen-list87_0
                                  skip-run?84_0
                                  transitive-record89_0
                                  mi_0
                                  ns_0)))))))
                     (if (module-cross-phase-persistent? m_0)
                       (instantiate!_0
                        0
                        0
                        (let ((or-part_0 (namespace-root-namespace ns97_0)))
                          (if or-part_0 or-part_0 ns97_0)))
                       (instantiate!_0
                        instance-phase99_0
                        run-phase_0
                        ns97_0)))))))))))))
(define namespace-module-visit!.1
  (|#%name|
   namespace-module-visit!
   (lambda (transitive-record102_0
            visit-phase101_0
            ns105_0
            mpi106_0
            instance-phase107_0)
     (begin
       (let ((visit-phase_0
              (if (eq? visit-phase101_0 unsafe-undefined)
                (namespace-phase ns105_0)
                visit-phase101_0)))
         (let ((temp212_0 (add1 visit-phase_0)))
           (namespace-module-instantiate!.1
            #f
            #t
            temp212_0
            hash2610
            null
            #f
            transitive-record102_0
            ns105_0
            mpi106_0
            instance-phase107_0)))))))
(define namespace-module-make-available!.1
  (|#%name|
   namespace-module-make-available!
   (lambda (transitive-record110_0
            visit-phase109_0
            ns113_0
            mpi114_0
            instance-phase115_0)
     (begin
       (let ((visit-phase_0
              (if (eq? visit-phase109_0 unsafe-undefined)
                (namespace-phase ns113_0)
                visit-phase109_0)))
         (let ((temp217_0 (add1 visit-phase_0)))
           (namespace-module-instantiate!.1
            #f
            #t
            temp217_0
            hash2610
            null
            #t
            transitive-record110_0
            ns113_0
            mpi114_0
            instance-phase115_0)))))))
(define namespace-module-get-portal-syntax-lookup
  (lambda (ns_0 mpi_0 phase-shift_0)
    (let ((name_0 (1/module-path-index-resolve mpi_0 #t)))
      (let ((ready-mi_0
             (namespace->module-instance.1
              #f
              #f
              void
              ns_0
              name_0
              phase-shift_0)))
        (let ((try-namespace-lookup_0
               (|#%name|
                try-namespace-lookup
                (lambda (ns_1 phase_0 sym_0)
                  (begin
                    (let ((v_0
                           (namespace-get-transformer
                            ns_1
                            phase_0
                            sym_0
                            (lambda () #f))))
                      (if (1/portal-syntax? v_0)
                        (1/portal-syntax-content v_0)
                        #f)))))))
          (let ((c1_0
                 (if ready-mi_0
                   (module-instance-portal-syntaxes ready-mi_0)
                   #f)))
            (if c1_0
              (lambda (phase_0 sym_0)
                (hash-ref (hash-ref c1_0 phase_0 hash2589) sym_0 #f))
              (if (begin-unsafe (eq? top-level-module-path-index mpi_0))
                (lambda (phase_0 sym_0)
                  (try-namespace-lookup_0
                   ns_0
                   (phase+ phase_0 phase-shift_0)
                   sym_0))
                (let ((mi_0
                       (if ready-mi_0
                         ready-mi_0
                         (let ((m_0 (namespace->module ns_0 name_0)))
                           (begin
                             (if m_0
                               (void)
                               (begin-unsafe
                                (raise-arguments-error
                                 'identifier-binding-portal-syntax
                                 "unknown module"
                                 "module name"
                                 (module-name->error-string name_0))))
                             (namespace-create-module-instance!
                              ns_0
                              name_0
                              phase-shift_0
                              m_0
                              mpi_0))))))
                  (let ((m-ns_0 (module-instance-namespace mi_0)))
                    (let ((bulk-binding-registry_0
                           (namespace-bulk-binding-registry m-ns_0)))
                      (let ((m_0 (module-instance-module mi_0)))
                        (let ((insp_0 (module-inspector m_0)))
                          (let ((data-box_0 (module-instance-data-box mi_0)))
                            (let ((prep_0 (module-prepare-instance m_0)))
                              (begin
                                (|#%app|
                                 prep_0
                                 data-box_0
                                 m-ns_0
                                 phase-shift_0
                                 mpi_0
                                 bulk-binding-registry_0
                                 insp_0)
                                (let ((get_0
                                       (module-get-portal-syntax-callback
                                        m_0)))
                                  (lambda (phase_0 sym_0)
                                    (let ((or-part_0
                                           (|#%app|
                                            get_0
                                            data-box_0
                                            phase_0
                                            sym_0)))
                                      (if or-part_0
                                        or-part_0
                                        (try-namespace-lookup_0
                                         m-ns_0
                                         phase_0
                                         sym_0)))))))))))))))))))))
(define run-module-instance!.1
  (|#%name|
   run-module-instance!
   (lambda (minimum-inspector122_0
            otherwise-available?119_0
            run-phase117_0
            seen120_0
            seen-list121_0
            skip-run?118_0
            transitive-record123_0
            mi131_0
            ns132_0)
     (begin
       (begin
         (if log-performance?
           (start-performance-region 'eval 'requires)
           (void))
         (begin0
           (let ((m-ns_0 (module-instance-namespace mi131_0)))
             (let ((instance-phase_0 (namespace-0-phase m-ns_0)))
               (let ((run-phase-level_0
                      (phase- run-phase117_0 instance-phase_0)))
                 (let ((m_0 (module-instance-module mi131_0)))
                   (let ((inspector_0 (if m_0 (module-inspector m_0) #f)))
                     (begin
                       (if (if minimum-inspector122_0 inspector_0 #f)
                         (if (let ((or-part_0
                                    (eq? inspector_0 minimum-inspector122_0)))
                               (if or-part_0
                                 or-part_0
                                 (inspector-superior?
                                  inspector_0
                                  minimum-inspector122_0)))
                           (void)
                           (error
                            'require
                            "cannot import module with weaker code inspector\n  module: ~a"
                            (1/module-path-index-resolve
                             (namespace-mpi
                              (module-instance-namespace mi131_0)))))
                         (void))
                       (if (if (if skip-run?118_0
                                 skip-run?118_0
                                 (eq?
                                  'started
                                  (let ((small-ht_0
                                         (module-instance-phase-level-to-state
                                          mi131_0)))
                                    (begin-unsafe
                                     (hash-ref
                                      (unbox small-ht_0)
                                      run-phase-level_0
                                      #f)))))
                             (if (let ((or-part_0
                                        (not otherwise-available?119_0)))
                                   (if or-part_0
                                     or-part_0
                                     (module-instance-made-available?
                                      mi131_0)))
                               (let ((or-part_0 (not transitive-record123_0)))
                                 (if or-part_0
                                   or-part_0
                                   (not
                                    (module-cross-phase-persistent?
                                     (module-instance-module mi131_0)))))
                               #f)
                             #f)
                         (void)
                         (let ((m_1 (module-instance-module mi131_0)))
                           (begin
                             (if m_1
                               (void)
                               (error
                                'require
                                "import cycle detected; trying to run module being expanded"))
                             (let ((mpi_0 (namespace-mpi m-ns_0)))
                               (let ((bulk-binding-registry_0
                                      (namespace-bulk-binding-registry
                                       m-ns_0)))
                                 (begin
                                   (if (hash-ref seen120_0 mi131_0 #f)
                                     (error
                                      'require
                                      (apply
                                       string-append
                                       "import cycle detected during module instantiation\n"
                                       "  dependency chain:"
                                       (module-instances->indented-module-names
                                        mi131_0
                                        seen-list121_0)))
                                     (void))
                                   (if (module-instance-shifted-requires
                                        mi131_0)
                                     (void)
                                     (set-module-instance-shifted-requires!
                                      mi131_0
                                      (reverse$1
                                       (let ((lst_0 (module-requires m_1)))
                                         (let ((lst_1
                                                (module-recur-requires m_1)))
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0
                                                          lst_2
                                                          lst_3)
                                                   (begin
                                                     (if (if (pair? lst_2)
                                                           (pair? lst_3)
                                                           #f)
                                                       (let ((phase+mpis_0
                                                              (unsafe-car
                                                               lst_2)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_2)))
                                                           (let ((recurs_0
                                                                  (unsafe-car
                                                                   lst_3)))
                                                             (let ((rest_1
                                                                    (unsafe-cdr
                                                                     lst_3)))
                                                               (let ((fold-var_1
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              (let ((app_0
                                                                                     (car
                                                                                      phase+mpis_0)))
                                                                                (cons
                                                                                 app_0
                                                                                 (reverse$1
                                                                                  (let ((lst_4
                                                                                         (cdr
                                                                                          phase+mpis_0)))
                                                                                    (begin
                                                                                      (letrec*
                                                                                       ((for-loop_1
                                                                                         (|#%name|
                                                                                          for-loop
                                                                                          (lambda (fold-var_1
                                                                                                   lst_5
                                                                                                   lst_6)
                                                                                            (begin
                                                                                              (if (if (pair?
                                                                                                       lst_5)
                                                                                                    (pair?
                                                                                                     lst_6)
                                                                                                    #f)
                                                                                                (let ((req-mpi_0
                                                                                                       (unsafe-car
                                                                                                        lst_5)))
                                                                                                  (let ((rest_2
                                                                                                         (unsafe-cdr
                                                                                                          lst_5)))
                                                                                                    (let ((recur?_0
                                                                                                           (unsafe-car
                                                                                                            lst_6)))
                                                                                                      (let ((rest_3
                                                                                                             (unsafe-cdr
                                                                                                              lst_6)))
                                                                                                        (let ((fold-var_2
                                                                                                               (if recur?_0
                                                                                                                 (let ((fold-var_2
                                                                                                                        (cons
                                                                                                                         (module-path-index-shift
                                                                                                                          req-mpi_0
                                                                                                                          (module-self
                                                                                                                           m_1)
                                                                                                                          mpi_0)
                                                                                                                         fold-var_1)))
                                                                                                                   (values
                                                                                                                    fold-var_2))
                                                                                                                 fold-var_1)))
                                                                                                          (for-loop_1
                                                                                                           fold-var_2
                                                                                                           rest_2
                                                                                                           rest_3))))))
                                                                                                fold-var_1))))))
                                                                                       (for-loop_1
                                                                                        null
                                                                                        lst_4
                                                                                        recurs_0)))))))
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))))
                                                                 (for-loop_0
                                                                  fold-var_1
                                                                  rest_0
                                                                  rest_1))))))
                                                       fold-var_0))))))
                                              (for-loop_0
                                               null
                                               lst_0
                                               lst_1))))))))
                                   (let ((lst_0
                                          (module-instance-shifted-requires
                                           mi131_0)))
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (lst_1)
                                             (begin
                                               (if (pair? lst_1)
                                                 (let ((phase+mpis_0
                                                        (unsafe-car lst_1)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_1)))
                                                     (begin
                                                       (let ((req-phase_0
                                                              (car
                                                               phase+mpis_0)))
                                                         (begin
                                                           (let ((lst_2
                                                                  (cdr
                                                                   phase+mpis_0)))
                                                             (begin
                                                               (letrec*
                                                                ((for-loop_1
                                                                  (|#%name|
                                                                   for-loop
                                                                   (lambda (lst_3)
                                                                     (begin
                                                                       (if (pair?
                                                                            lst_3)
                                                                         (let ((req-mpi_0
                                                                                (unsafe-car
                                                                                 lst_3)))
                                                                           (let ((rest_1
                                                                                  (unsafe-cdr
                                                                                   lst_3)))
                                                                             (begin
                                                                               (let ((temp225_0
                                                                                      (phase+
                                                                                       instance-phase_0
                                                                                       req-phase_0)))
                                                                                 (let ((temp229_0
                                                                                        (hash-set
                                                                                         seen120_0
                                                                                         mi131_0
                                                                                         #t)))
                                                                                   (let ((temp230_0
                                                                                          (cons
                                                                                           mi131_0
                                                                                           seen-list121_0)))
                                                                                     (let ((temp229_1
                                                                                            temp229_0)
                                                                                           (temp225_1
                                                                                            temp225_0))
                                                                                       (namespace-module-instantiate!.1
                                                                                        inspector_0
                                                                                        otherwise-available?119_0
                                                                                        run-phase117_0
                                                                                        temp229_1
                                                                                        temp230_0
                                                                                        skip-run?118_0
                                                                                        transitive-record123_0
                                                                                        ns132_0
                                                                                        req-mpi_0
                                                                                        temp225_1)))))
                                                                               (for-loop_1
                                                                                rest_1))))
                                                                         (values)))))))
                                                                (for-loop_1
                                                                 lst_2))))
                                                           (void)))
                                                       (for-loop_0 rest_0))))
                                                 (values)))))))
                                        (for-loop_0 lst_0))))
                                   (void)
                                   (if (begin-unsafe (not instance-phase_0))
                                     (void)
                                     (begin
                                       (let ((start_0
                                              (module-max-phase-level m_1)))
                                         (let ((end_0
                                                (sub1
                                                 (module-min-phase-level
                                                  m_1))))
                                           (let ((start_1 start_0))
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (pos_0)
                                                     (begin
                                                       (if (> pos_0 end_0)
                                                         (begin
                                                           (let ((phase_0
                                                                  (phase+
                                                                   pos_0
                                                                   instance-phase_0)))
                                                             (if (if (not
                                                                      skip-run?118_0)
                                                                   (eqv?
                                                                    phase_0
                                                                    run-phase117_0)
                                                                   #f)
                                                               (if (eq?
                                                                    'started
                                                                    (let ((small-ht_0
                                                                           (module-instance-phase-level-to-state
                                                                            mi131_0)))
                                                                      (begin-unsafe
                                                                       (hash-ref
                                                                        (unbox
                                                                         small-ht_0)
                                                                        pos_0
                                                                        #f))))
                                                                 (void)
                                                                 (begin
                                                                   (let ((small-ht_0
                                                                          (module-instance-phase-level-to-state
                                                                           mi131_0)))
                                                                     (begin-unsafe
                                                                      (set-box!
                                                                       small-ht_0
                                                                       (hash-set
                                                                        (unbox
                                                                         small-ht_0)
                                                                        pos_0
                                                                        'started))))
                                                                   (begin
                                                                     (void
                                                                      (namespace->definitions
                                                                       m-ns_0
                                                                       pos_0))
                                                                     (let ((p-ns_0
                                                                            (namespace->namespace-at-phase
                                                                             m-ns_0
                                                                             phase_0)))
                                                                       (let ((insp_0
                                                                              (module-inspector
                                                                               m_1)))
                                                                         (let ((data-box_0
                                                                                (module-instance-data-box
                                                                                 mi131_0)))
                                                                           (let ((prep_0
                                                                                  (module-prepare-instance
                                                                                   m_1)))
                                                                             (let ((go_0
                                                                                    (module-instantiate-phase
                                                                                     m_1)))
                                                                               (begin
                                                                                 (|#%app|
                                                                                  prep_0
                                                                                  data-box_0
                                                                                  p-ns_0
                                                                                  instance-phase_0
                                                                                  mpi_0
                                                                                  bulk-binding-registry_0
                                                                                  insp_0)
                                                                                 (|#%app|
                                                                                  go_0
                                                                                  data-box_0
                                                                                  p-ns_0
                                                                                  instance-phase_0
                                                                                  pos_0
                                                                                  mpi_0
                                                                                  bulk-binding-registry_0
                                                                                  insp_0))))))))))
                                                               (if (if otherwise-available?119_0
                                                                     (if (not
                                                                          (negative?
                                                                           run-phase117_0))
                                                                       (not
                                                                        (let ((small-ht_0
                                                                               (module-instance-phase-level-to-state
                                                                                mi131_0)))
                                                                          (begin-unsafe
                                                                           (hash-ref
                                                                            (unbox
                                                                             small-ht_0)
                                                                            pos_0
                                                                            #f))))
                                                                       #f)
                                                                     #f)
                                                                 (begin
                                                                   (let ((ht_0
                                                                          (namespace-available-module-instances
                                                                           ns132_0)))
                                                                     (let ((xform_0
                                                                            (lambda (l_0)
                                                                              (cons
                                                                               mi131_0
                                                                               l_0))))
                                                                       (begin-unsafe
                                                                        (do-hash-update
                                                                         'hash-update!
                                                                         #t
                                                                         hash-set!
                                                                         ht_0
                                                                         phase_0
                                                                         xform_0
                                                                         null))))
                                                                   (let ((small-ht_0
                                                                          (module-instance-phase-level-to-state
                                                                           mi131_0)))
                                                                     (begin-unsafe
                                                                      (set-box!
                                                                       small-ht_0
                                                                       (hash-set
                                                                        (unbox
                                                                         small-ht_0)
                                                                        pos_0
                                                                        'available)))))
                                                                 (void))))
                                                           (for-loop_0
                                                            (+ pos_0 -1)))
                                                         (values)))))))
                                                (for-loop_0 start_1))))))
                                       (void)))
                                   (if otherwise-available?119_0
                                     (set-module-instance-made-available?!
                                      mi131_0
                                      #t)
                                     (void))
                                   (if skip-run?118_0
                                     (void)
                                     (let ((small-ht_0
                                            (module-instance-phase-level-to-state
                                             mi131_0)))
                                       (begin-unsafe
                                        (set-box!
                                         small-ht_0
                                         (hash-set
                                          (unbox small-ht_0)
                                          run-phase-level_0
                                          'started)))))))))))))))))
           (if log-performance? (end-performance-region) (void))))))))
(define namespace-visit-available-modules!
  (let ((namespace-visit-available-modules!_0
         (|#%name|
          namespace-visit-available-modules!
          (lambda (ns135_0 run-phase134_0)
            (begin
              (let ((run-phase_0
                     (if (eq? run-phase134_0 unsafe-undefined)
                       (namespace-phase ns135_0)
                       run-phase134_0)))
                (namespace-run-available-modules!
                 ns135_0
                 (add1 run-phase_0))))))))
    (case-lambda
     ((ns_0) (namespace-visit-available-modules!_0 ns_0 unsafe-undefined))
     ((ns_0 run-phase134_0)
      (namespace-visit-available-modules!_0 ns_0 run-phase134_0)))))
(define namespace-run-available-modules!
  (let ((namespace-run-available-modules!_0
         (|#%name|
          namespace-run-available-modules!
          (lambda (ns137_0 run-phase136_0)
            (begin
              (let ((run-phase_0
                     (if (eq? run-phase136_0 unsafe-undefined)
                       (namespace-phase ns137_0)
                       run-phase136_0)))
                (registry-call-with-lock
                 (namespace-module-registry$1 ns137_0)
                 (lambda ()
                   (letrec*
                    ((loop_0
                      (|#%name|
                       loop
                       (lambda ()
                         (begin
                           (let ((mis_0
                                  (hash-ref
                                   (namespace-available-module-instances
                                    ns137_0)
                                   run-phase_0
                                   null)))
                             (if (null? mis_0)
                               (void)
                               (begin
                                 (hash-set!
                                  (namespace-available-module-instances
                                   ns137_0)
                                  run-phase_0
                                  null)
                                 (let ((lst_0 (reverse$1 mis_0)))
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (lst_1)
                                           (begin
                                             (if (pair? lst_1)
                                               (let ((mi_0 (unsafe-car lst_1)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_1)))
                                                   (begin
                                                     (run-module-instance!.1
                                                      #f
                                                      #f
                                                      run-phase_0
                                                      hash2610
                                                      null
                                                      #f
                                                      #f
                                                      mi_0
                                                      ns137_0)
                                                     (for-loop_0 rest_0))))
                                               (values)))))))
                                      (for-loop_0 lst_0))))
                                 (void)
                                 (loop_0)))))))))
                    (loop_0))))))))))
    (case-lambda
     ((ns_0) (namespace-run-available-modules!_0 ns_0 unsafe-undefined))
     ((ns_0 run-phase136_0)
      (namespace-run-available-modules!_0 ns_0 run-phase136_0)))))
(define namespace-primitive-module-visit!
  (lambda (ns_0 name_0)
    (let ((mi_0
           (hash-ref
            (namespace-module-instances ns_0)
            (1/make-resolved-module-path name_0))))
      (run-module-instance!.1 #f #t 1 hash2610 null #f #f mi_0 ns_0))))
(define namespace-module-use->module+linklet-instances.1
  (|#%name|
   namespace-module-use->module+linklet-instances
   (lambda (phase-shift140_0 shift-from138_0 shift-to139_0 ns144_0 mu145_0)
     (begin
       (let ((mod_0 (module-use-module mu145_0)))
         (let ((mi_0
                (let ((temp244_0
                       (1/module-path-index-resolve
                        (if shift-from138_0
                          (module-path-index-shift
                           mod_0
                           shift-from138_0
                           shift-to139_0)
                          mod_0))))
                  (namespace->module-instance.1
                   #f
                   #t
                   void
                   ns144_0
                   temp244_0
                   phase-shift140_0))))
           (let ((m-ns_0 (module-instance-namespace mi_0)))
             (let ((d_0
                    (let ((small-ht_0
                           (namespace-phase-level-to-definitions m-ns_0)))
                      (let ((key_0 (module-use-phase mu145_0)))
                        (let ((small-ht_1 small-ht_0))
                          (begin-unsafe
                           (hash-ref (unbox small-ht_1) key_0 #f)))))))
               (if d_0
                 (values mi_0 (definitions-variables d_0))
                 (let ((app_0
                        (string-append
                         "namespace mismatch: phase level not found;\n"
                         "  module: ~a\n"
                         "  phase level: ~a\n"
                         "  found phase levels: ~a")))
                   (let ((app_1 (module-use-phase mu145_0)))
                     (error
                      'eval
                      app_0
                      mod_0
                      app_1
                      (let ((small-ht_0
                             (namespace-phase-level-to-definitions m-ns_0)))
                        (begin-unsafe
                         (hash-keys (unbox small-ht_0))))))))))))))))
(define fresh-requires
  (lambda (requires_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((phase+mpis_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (let ((fold-var_1
                                   (cons
                                    (let ((app_0 (car phase+mpis_0)))
                                      (cons
                                       app_0
                                       (reverse$1
                                        (let ((lst_1 (cdr phase+mpis_0)))
                                          (begin
                                            (letrec*
                                             ((for-loop_1
                                               (|#%name|
                                                for-loop
                                                (lambda (fold-var_1 lst_2)
                                                  (begin
                                                    (if (pair? lst_2)
                                                      (let ((req-mpi_0
                                                             (unsafe-car
                                                              lst_2)))
                                                        (let ((rest_1
                                                               (unsafe-cdr
                                                                lst_2)))
                                                          (let ((fold-var_2
                                                                 (let ((fold-var_2
                                                                        (cons
                                                                         (module-path-index-fresh
                                                                          req-mpi_0)
                                                                         fold-var_1)))
                                                                   (values
                                                                    fold-var_2))))
                                                            (for-loop_1
                                                             fold-var_2
                                                             rest_1))))
                                                      fold-var_1))))))
                                             (for-loop_1 null lst_1)))))))
                                    fold-var_0)))
                              (values fold-var_1))))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null requires_0))))))
(define module-compute-access!
  (lambda (m_0)
    (let ((access_0
           (let ((ht_0 (module-provides m_0)))
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (table_0 i_0)
                     (begin
                       (if i_0
                         (call-with-values
                          (lambda () (hash-iterate-key+value ht_0 i_0))
                          (case-lambda
                           ((phase_0 at-phase_0)
                            (let ((table_1
                                   (let ((table_1
                                          (call-with-values
                                           (lambda ()
                                             (values
                                              phase_0
                                              (begin
                                                (letrec*
                                                 ((for-loop_1
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (table_1 i_1)
                                                      (begin
                                                        (if i_1
                                                          (call-with-values
                                                           (lambda ()
                                                             (hash-iterate-key+value
                                                              at-phase_0
                                                              i_1))
                                                           (case-lambda
                                                            ((sym_0
                                                              binding/p_0)
                                                             (let ((table_2
                                                                    (let ((table_2
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((app_0
                                                                                     (module-binding-sym
                                                                                      (provided-as-binding
                                                                                       binding/p_0))))
                                                                                (values
                                                                                 app_0
                                                                                 (if (provided-as-protected?
                                                                                      binding/p_0)
                                                                                   'protected
                                                                                   'provided))))
                                                                            (case-lambda
                                                                             ((key_0
                                                                               val_0)
                                                                              (hash-set
                                                                               table_1
                                                                               key_0
                                                                               val_0))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args))))))
                                                                      (values
                                                                       table_2))))
                                                               (for-loop_1
                                                                table_2
                                                                (hash-iterate-next
                                                                 at-phase_0
                                                                 i_1))))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args))))
                                                          table_1))))))
                                                 (for-loop_1
                                                  hash2725
                                                  (hash-iterate-first
                                                   at-phase_0))))))
                                           (case-lambda
                                            ((key_0 val_0)
                                             (hash-set table_0 key_0 val_0))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))
                                     (values table_1))))
                              (for-loop_0
                               table_1
                               (hash-iterate-next ht_0 i_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         table_0))))))
                (for-loop_0 hash2589 (hash-iterate-first ht_0)))))))
      (begin (set-module-access! m_0 access_0) access_0))))
(define module-instances->indented-module-names
  (lambda (mi_0 seen-list_0)
    (let ((mi->name_0
           (|#%name|
            mi->name
            (lambda (mi_1)
              (begin
                (format
                 "\n   ~a"
                 (1/module-path-index-resolve
                  (namespace-mpi (module-instance-namespace mi_1)))))))))
      (let ((app_0 (mi->name_0 mi_0)))
        (cons
         app_0
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (seen-list_1)
               (begin
                 (if (null? seen-list_1)
                   '()
                   (if (eq? mi_0 (car seen-list_1))
                     (list (mi->name_0 mi_0))
                     (let ((app_1 (mi->name_0 (car seen-list_1))))
                       (cons app_1 (loop_0 (cdr seen-list_1)))))))))))
          (loop_0 seen-list_0)))))))
(define binding->module-instance
  (lambda (b_0 ns_0 phase_0 id_0)
    (let ((at-phase_0 (phase- phase_0 (module-binding-phase b_0))))
      (let ((mi_0
             (let ((temp2_0
                    (1/module-path-index-resolve (module-binding-module b_0))))
               (let ((temp4_0 (module-binding-phase b_0)))
                 (let ((temp5_0 (lambda (mi_0) 'unavailable)))
                   (let ((temp4_1 temp4_0) (temp2_1 temp2_0))
                     (namespace->module-instance.1
                      temp4_1
                      #f
                      temp5_0
                      ns_0
                      temp2_1
                      at-phase_0)))))))
        (begin
          (if (eq? mi_0 'unavailable)
            (raise-syntax-error$1
             #f
             (let ((app_0
                    (string-append
                     "module mismatch;\n"
                     " attempted to use a module that is not available\n"
                     "  possible cause:\n"
                     "   using (dynamic-require .... #f)\n"
                     "   but need (dynamic-require .... 0)\n"
                     "  module: ~s\n"
                     "  phase: ~s")))
               (let ((app_1 (module-binding-module b_0)))
                 (format
                  app_0
                  app_1
                  (phase+ at-phase_0 (module-binding-phase b_0)))))
             id_0)
            (void))
          (if mi_0
            (void)
            (raise-syntax-error$1
             #f
             (let ((app_0
                    (string-append
                     "namespace mismatch;\n"
                     " cannot locate module instance\n"
                     "  module: ~a\n"
                     "  use phase: ~a\n"
                     "  definition phase: ~a")))
               (let ((app_1
                      (1/module-path-index-resolve
                       (module-binding-module b_0))))
                 (format app_0 app_1 phase_0 (module-binding-phase b_0))))
             id_0))
          mi_0)))))
(define check-access
  (lambda (b_0 mi_0 id_0 in-s_0 what_0)
    (let ((m_0 (module-instance-module mi_0)))
      (if (if m_0 (not (module-no-protected? m_0)) #f)
        (let ((access_0
               (let ((or-part_0 (module-access m_0)))
                 (if or-part_0 or-part_0 (module-compute-access! m_0)))))
          (let ((a_0
                 (let ((app_0
                        (hash-ref
                         access_0
                         (module-binding-phase b_0)
                         hash2610)))
                   (hash-ref app_0 (module-binding-sym b_0) 'unexported))))
            (if (let ((or-part_0 (eq? a_0 'unexported)))
                  (if or-part_0 or-part_0 (eq? a_0 'protected)))
              (begin
                (if (let ((or-part_0
                           (let ((app_0
                                  (let ((or-part_0 (syntax-inspector id_0)))
                                    (if or-part_0
                                      or-part_0
                                      (current-code-inspector)))))
                             (inspector-superior?
                              app_0
                              (namespace-inspector
                               (module-instance-namespace mi_0))))))
                      (if or-part_0
                        or-part_0
                        (if (module-binding-extra-inspector b_0)
                          (let ((app_0 (module-binding-extra-inspector b_0)))
                            (inspector-superior?
                             app_0
                             (namespace-inspector
                              (module-instance-namespace mi_0))))
                          #f)))
                  (void)
                  (let ((complain-id_0
                         (let ((c-id_0
                                (if in-s_0 in-s_0 (module-binding-sym b_0))))
                           (if (not
                                (let ((app_0
                                       (if (syntax?$1 c-id_0)
                                         (syntax-content c-id_0)
                                         c-id_0)))
                                  (eq? app_0 (syntax-content id_0))))
                             c-id_0
                             #f))))
                    (raise-syntax-error$1
                     #f
                     (format
                      "access disallowed by code inspector to ~a ~a\n  from module: ~a"
                      a_0
                      what_0
                      (1/module-path-index-resolve
                       (namespace-mpi (module-instance-namespace mi_0))))
                     complain-id_0
                     id_0
                     null)))
                #t)
              #f)))
        #f))))
(define resolve+shift/extra-inspector
  (lambda (id_0 phase_0 ns_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (id_1 in-s_0)
          (begin
            (let ((b_0 (resolve+shift.1 #f #f null #t #f id_1 phase_0)))
              (let ((c1_0 (binding-free=id b_0)))
                (if c1_0
                  (begin
                    (if (if (module-binding? b_0)
                          (not
                           (let ((mpi_0 (module-binding-module b_0)))
                             (begin-unsafe
                              (eq? top-level-module-path-index mpi_0))))
                          #f)
                      (let ((mi_0
                             (binding->module-instance b_0 ns_0 phase_0 id_1)))
                        (check-access b_0 mi_0 id_1 in-s_0 "provided binding"))
                      (void))
                    (let ((next-b_0 (loop_0 c1_0 (if in-s_0 in-s_0 id_1))))
                      (if (not next-b_0)
                        b_0
                        (if (if (module-binding? next-b_0)
                              (if (not
                                   (module-binding-extra-inspector next-b_0))
                                (syntax-inspector id_1)
                                #f)
                              #f)
                          (let ((temp5_0 (syntax-inspector id_1)))
                            (module-binding-update.1
                             temp5_0
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             unsafe-undefined
                             next-b_0))
                          next-b_0))))
                  b_0))))))))
     (loop_0 id_0 #f))))
(define-values
 (1/prop:set!-transformer 1/set!-transformer? set!-transformer-value)
 (make-struct-type-property
  'set!-transformer
  (lambda (v_0 info_0)
    (begin
      (if (let ((or-part_0
                 (if (procedure? v_0)
                   (let ((or-part_0 (procedure-arity-includes? v_0 1)))
                     (if or-part_0
                       or-part_0
                       (procedure-arity-includes? v_0 2)))
                   #f)))
            (if or-part_0 or-part_0 (exact-nonnegative-integer? v_0)))
        (void)
        (raise-argument-error
         'guard-for-prop:set!-transformer
         (string-append
          "(or/c (procedure-arity-includes? proc 1)\n"
          "      (procedure-arity-includes? proc 2)\n"
          "      exact-nonnegative-integer?)")
         v_0))
      (begin
        (if (exact-nonnegative-integer? v_0)
          (begin
            (if (<= v_0 (list-ref info_0 1))
              (void)
              (raise-arguments-error
               'guard-for-prop:set!-transformer
               "field index >= initialized-field count for structure type"
               "field index"
               v_0
               "initialized-field count"
               (list-ref info_0 1)))
            (if (member v_0 (list-ref info_0 5))
              (void)
              (raise-arguments-error
               'guard-for-prop:set!-transformer
               "field index not declared immutable"
               "field index"
               v_0)))
          (void))
        (let ((ref_0 (list-ref info_0 3)))
          (if (integer? v_0)
            (lambda (t_0)
              (let ((p_0 (|#%app| ref_0 t_0 v_0)))
                (if (if (procedure? p_0) (procedure-arity-includes? p_0 1) #f)
                  p_0
                  (lambda (s_0) (error "bad syntax:" s_0)))))
            (lambda (t_0) v_0))))))))
(define 1/make-set!-transformer
  (let ((finish804
         (make-struct-type-install-properties
          '(set!-transformer)
          1
          0
          #f
          (list (cons 1/prop:set!-transformer 0))
          (current-inspector)
          #f
          '(0)
          #f
          'set!-transformer)))
    (let ((struct:set!-transformer_0
           (make-record-type-descriptor
            'set!-transformer
            #f
            #f
            #f
            #f
            '(1 . 0))))
      (let ((effect805 (finish804 struct:set!-transformer_0)))
        (let ((set!-transformer1_0
               (|#%name|
                set!-transformer
                (record-constructor
                 (make-record-constructor-descriptor
                  struct:set!-transformer_0
                  #f
                  #f)))))
          (let ((set!-transformer?_0
                 (|#%name|
                  set!-transformer?
                  (record-predicate struct:set!-transformer_0))))
            (let ((set!-transformer?_1
                   (|#%name|
                    set!-transformer?
                    (lambda (v)
                      (if (set!-transformer?_0 v)
                        #t
                        ($value
                         (if (impersonator? v)
                           (set!-transformer?_0 (impersonator-val v))
                           #f)))))))
              (let ((set!-transformer-proc_0
                     (|#%name|
                      set!-transformer-proc
                      (record-accessor struct:set!-transformer_0 0))))
                (let ((set!-transformer-proc_1
                       (|#%name|
                        set!-transformer-proc
                        (lambda (s)
                          (if (set!-transformer?_0 s)
                            (set!-transformer-proc_0 s)
                            ($value
                             (impersonate-ref
                              set!-transformer-proc_0
                              struct:set!-transformer_0
                              0
                              s
                              'proc)))))))
                  (|#%name|
                   make-set!-transformer
                   (lambda (proc_0)
                     (begin
                       (begin
                         (if (if (procedure? proc_0)
                               (procedure-arity-includes? proc_0 1)
                               #f)
                           (void)
                           (raise-argument-error
                            'make-set!-transformer
                            "(procedure-arity-includes/c 1)"
                            proc_0))
                         (set!-transformer1_0 proc_0))))))))))))))
(define 1/set!-transformer-procedure
  (|#%name|
   set!-transformer-procedure
   (lambda (t_0)
     (begin
       (let ((v_0 (|#%app| (set!-transformer-value t_0) t_0)))
         (if (procedure-arity-includes? v_0 1)
           v_0
           (lambda (s_0) (|#%app| v_0 t_0 s_0))))))))
(define empty-env hash2610)
(define env-extend (lambda (env_0 key_0 val_0) (hash-set env_0 key_0 val_0)))
(define lookup
  (lambda (env_0 key_0 default_0) (hash-ref env_0 key_0 default_0)))
(define variable (gensym 'variable))
(define variable?
  (lambda (t_0)
    (let ((or-part_0 (eq? t_0 variable)))
      (if or-part_0 or-part_0 (local-variable? t_0)))))
(define finish_2125
  (make-struct-type-install-properties
   '(local-variable)
   1
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'local-variable))
(define struct:local-variable
  (make-record-type-descriptor
   'local-variable
   #f
   (|#%nongenerative-uid| local-variable)
   #f
   #f
   '(1 . 0)))
(define effect_2625 (finish_2125 struct:local-variable))
(define local-variable1.1
  (|#%name|
   local-variable
   (record-constructor
    (make-record-constructor-descriptor struct:local-variable #f #f))))
(define local-variable?
  (|#%name| local-variable? (record-predicate struct:local-variable)))
(define local-variable-id
  (|#%name| local-variable-id (record-accessor struct:local-variable 0)))
(define substitute-variable.1
  (|#%name|
   substitute-variable
   (lambda (no-stops?2_0 id4_0 t5_0)
     (begin
       (if (if no-stops?2_0 (local-variable? t5_0) #f)
         (let ((bind-id_0 (local-variable-id t5_0)))
           (let ((pruned-id_0
                  (datum->syntax$1
                   bind-id_0
                   (syntax-e$1 bind-id_0)
                   id4_0
                   id4_0)))
             (if (syntax-any-macro-scopes? id4_0)
               (1/syntax-property-remove pruned-id_0 original-property-sym)
               pruned-id_0)))
         id4_0)))))
(define missing (gensym 'missing))
(define transformer?
  (lambda (t_0)
    (let ((or-part_0 (procedure? t_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (1/set!-transformer? t_0)))
          (if or-part_1 or-part_1 (1/rename-transformer? t_0)))))))
(define transformer->procedure
  (lambda (t_0)
    (if (1/set!-transformer? t_0)
      (1/set!-transformer-procedure t_0)
      (if (1/rename-transformer? t_0) (lambda (s_0) s_0) t_0))))
(define finish_2414
  (make-struct-type-install-properties
   '(core-form)
   2
   0
   #f
   (list (cons prop:authentic #t))
   #f
   #f
   '(0 1)
   #f
   'core-form))
(define struct:core-form
  (make-record-type-descriptor
   'core-form
   #f
   (|#%nongenerative-uid| core-form)
   #f
   #f
   '(2 . 0)))
(define effect_2077 (finish_2414 struct:core-form))
(define core-form7.1
  (|#%name|
   core-form
   (record-constructor
    (make-record-constructor-descriptor struct:core-form #f #f))))
(define core-form? (|#%name| core-form? (record-predicate struct:core-form)))
(define core-form-expander
  (|#%name| core-form-expander (record-accessor struct:core-form 0)))
(define core-form-name
  (|#%name| core-form-name (record-accessor struct:core-form 1)))
(define add-binding!.1
  (|#%name|
   add-binding!
   (lambda (in8_0 just-for-nominal?9_0 id12_0 binding13_0 phase14_0)
     (begin
       (begin
         (check-id-taint id12_0 in8_0)
         (let ((temp49_0 (syntax-scope-set id12_0 phase14_0)))
           (let ((temp50_0 (syntax-e$1 id12_0)))
             (let ((temp49_1 temp49_0))
               (add-binding-in-scopes!.1
                just-for-nominal?9_0
                temp49_1
                temp50_0
                binding13_0)))))))))
(define add-bulk-binding!.1
  (|#%name|
   add-bulk-binding!
   (lambda (in16_0 shadow-except17_0 s20_0 binding21_0 phase22_0)
     (begin
       (begin
         (if (syntax-tainted?$1 s20_0)
           (raise-syntax-error$1
            #f
            "cannot bind from tainted syntax"
            in16_0
            s20_0)
           (void))
         (let ((temp53_0 (syntax-scope-set s20_0 phase22_0)))
           (add-bulk-binding-in-scopes!.1
            shadow-except17_0
            temp53_0
            binding21_0)))))))
(define add-local-binding!.1
  (|#%name|
   add-local-binding!
   (lambda (frame-id25_0 in26_0 local-sym24_0 id30_0 phase31_0 counter32_0)
     (begin
       (begin
         (check-id-taint id30_0 in26_0)
         (let ((c_0 (add1 (unbox counter32_0))))
           (begin
             (set-box! counter32_0 c_0)
             (let ((sym_0 (syntax-content id30_0)))
               (let ((key_0
                      (string->uninterned-symbol
                       (let ((app_0
                              (symbol->immutable-string
                               (if local-sym24_0 local-sym24_0 sym_0))))
                         (string-append-immutable
                          app_0
                          "_"
                          (number->string c_0))))))
                 (begin
                   (let ((temp56_0 (syntax-scope-set id30_0 phase31_0)))
                     (let ((temp58_0
                            (make-local-binding.1 frame-id25_0 #f key_0)))
                       (let ((temp56_1 temp56_0))
                         (add-binding-in-scopes!.1
                          #f
                          temp56_1
                          sym_0
                          temp58_0))))
                   key_0))))))))))
(define check-id-taint
  (lambda (id_0 in-s_0)
    (if (syntax-tainted?$1 id_0)
      (raise-syntax-error$1 #f "cannot bind tainted identifier" in-s_0 id_0)
      (void))))
(define binding-lookup.1
  (|#%name|
   binding-lookup
   (lambda (check-access?36_0
            in34_0
            out-of-context-as-variable?35_0
            b40_0
            env41_0
            lift-envs42_0
            ns43_0
            phase44_0
            id45_0)
     (begin
       (if (module-binding? b40_0)
         (let ((top-level?_0
                (let ((mpi_0 (module-binding-module b40_0)))
                  (begin-unsafe (eq? top-level-module-path-index mpi_0)))))
           (let ((mi_0
                  (if (not top-level?_0)
                    (binding->module-instance b40_0 ns43_0 phase44_0 id45_0)
                    #f)))
             (let ((m_0 (if mi_0 (module-instance-module mi_0) #f)))
               (let ((primitive?_0 (if m_0 (module-primitive? m_0) #f)))
                 (let ((m-ns_0
                        (if top-level?_0
                          ns43_0
                          (if mi_0 (module-instance-namespace mi_0) #f))))
                   (begin
                     (check-taint id45_0)
                     (let ((t_0
                            (let ((app_0 (module-binding-phase b40_0)))
                              (namespace-get-transformer
                               m-ns_0
                               app_0
                               (module-binding-sym b40_0)
                               variable))))
                       (let ((protected?_0
                              (if check-access?36_0
                                (if mi_0
                                  (check-access
                                   b40_0
                                   mi_0
                                   id45_0
                                   in34_0
                                   (if (variable? t_0)
                                     "variable"
                                     "transformer"))
                                  #f)
                                #f)))
                         (let ((insp_0
                                (if mi_0
                                  (if (module-instance-module mi_0)
                                    (module-inspector
                                     (module-instance-module mi_0))
                                    #f)
                                  #f)))
                           (values
                            t_0
                            primitive?_0
                            insp_0
                            protected?_0))))))))))
         (if (local-binding? b40_0)
           (let ((t_0
                  (let ((key_0 (local-binding-key b40_0)))
                    (begin-unsafe (hash-ref env41_0 key_0 missing)))))
             (if (eq? t_0 missing)
               (values
                (let ((or-part_0
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (result_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((lift-env_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((result_1
                                              (let ((result_1
                                                     (let ((env_0
                                                            (unbox
                                                             lift-env_0)))
                                                       (let ((key_0
                                                              (local-binding-key
                                                               b40_0)))
                                                         (let ((env_1 env_0))
                                                           (begin-unsafe
                                                            (hash-ref
                                                             env_1
                                                             key_0
                                                             #f)))))))
                                                (values result_1))))
                                         (if (if (not
                                                  (let ((x_0
                                                         (list lift-env_0)))
                                                    result_1))
                                               #t
                                               #f)
                                           (for-loop_0 result_1 rest_0)
                                           result_1))))
                                   result_0))))))
                          (for-loop_0 #f lift-envs42_0)))))
                  (if or-part_0
                    or-part_0
                    (if out-of-context-as-variable?35_0
                      variable
                      (raise-syntax-error$1
                       #f
                       "identifier used out of context"
                       id45_0))))
                #f
                #f
                #f)
               (begin (check-taint id45_0) (values t_0 #f #f #f))))
           (error "internal error: unknown binding for lookup:" b40_0)))))))
(define check-taint
  (lambda (id_0)
    (if (syntax-tainted?$1 id_0)
      (raise-syntax-error$1
       #f
       "cannot use identifier tainted by macro transformation"
       id_0)
      (void))))
(define existing-binding-key
  (lambda (id_0 phase_0)
    (let ((b_0 (resolve+shift.1 #f #f null #t #f id_0 phase_0)))
      (begin
        (if (local-binding? b_0)
          (void)
          (raise-syntax-error$1
           #f
           "expected an existing local binding for an already-expanded identifier"
           id_0))
        (local-binding-key b_0)))))
(define cons-ish (lambda (a_0 b_0) (if (null? b_0) a_0 (cons a_0 b_0))))
(define free-id-set
  (lambda (phase_0 ids_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (ht_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((id_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((ht_1
                           (let ((ht_1
                                  (let ((sym_0
                                         (identifier-binding-symbol$1
                                          id_0
                                          phase_0)))
                                    (hash-set
                                     ht_0
                                     sym_0
                                     (cons-ish
                                      id_0
                                      (hash-ref ht_0 sym_0 null))))))
                             (values ht_1))))
                      (for-loop_0 ht_1 rest_0))))
                ht_0))))))
       (for-loop_0 hash2610 ids_0)))))
(define empty-free-id-set (free-id-set 0 null))
(define free-id-set-empty? (lambda (fs_0) (eq? fs_0 empty-free-id-set)))
(define free-id-set-member?
  (lambda (fs_0 phase_0 given-id_0)
    (if (begin-unsafe (eq? fs_0 empty-free-id-set))
      #f
      (let ((lst_0
             (hash-ref
              fs_0
              (identifier-binding-symbol$1 given-id_0 phase_0)
              null)))
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (result_0 lst_1)
                (begin
                  (if (not (null? lst_1))
                    (let ((id_0 (if (pair? lst_1) (car lst_1) lst_1)))
                      (let ((rest_0 (if (pair? lst_1) (cdr lst_1) null)))
                        (let ((id_1 id_0))
                          (let ((result_1
                                 (let ((result_1
                                        (free-identifier=?$1
                                         id_1
                                         given-id_0
                                         phase_0
                                         phase_0)))
                                   (values result_1))))
                            (if (if (not (let ((x_0 (list id_1))) result_1))
                                  #t
                                  #f)
                              (for-loop_0 result_1 rest_0)
                              result_1)))))
                    result_0))))))
           (for-loop_0 #f lst_0)))))))
(define free-id-set-empty-or-just-module*?
  (lambda (fs_0) (let ((c_0 (hash-count fs_0))) (<= c_0 1))))
(define finish_2652
  (make-struct-type-install-properties
   '(expand-context)
   11
   0
   struct:root-expand-context/outer
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10)
   #f
   'expand-context/outer))
(define struct:expand-context/outer
  (make-record-type-descriptor
   'expand-context
   struct:root-expand-context/outer
   (|#%nongenerative-uid| expand-context)
   #f
   #f
   '(11 . 0)))
(define effect_2851 (finish_2652 struct:expand-context/outer))
(define expand-context/outer1.1
  (|#%name|
   expand-context/outer
   (record-constructor
    (make-record-constructor-descriptor struct:expand-context/outer #f #f))))
(define expand-context/outer?
  (|#%name| expand-context? (record-predicate struct:expand-context/outer)))
(define expand-context/outer-context
  (|#%name|
   expand-context-context
   (record-accessor struct:expand-context/outer 0)))
(define expand-context/outer-env
  (|#%name|
   expand-context-env
   (record-accessor struct:expand-context/outer 1)))
(define expand-context/outer-scopes
  (|#%name|
   expand-context-scopes
   (record-accessor struct:expand-context/outer 2)))
(define expand-context/outer-def-ctx-scopes
  (|#%name|
   expand-context-def-ctx-scopes
   (record-accessor struct:expand-context/outer 3)))
(define expand-context/outer-binding-layer
  (|#%name|
   expand-context-binding-layer
   (record-accessor struct:expand-context/outer 4)))
(define expand-context/outer-reference-records
  (|#%name|
   expand-context-reference-records
   (record-accessor struct:expand-context/outer 5)))
(define expand-context/outer-only-immediate?
  (|#%name|
   expand-context-only-immediate?
   (record-accessor struct:expand-context/outer 6)))
(define expand-context/outer-need-eventually-defined
  (|#%name|
   expand-context-need-eventually-defined
   (record-accessor struct:expand-context/outer 7)))
(define expand-context/outer-current-introduction-scopes
  (|#%name|
   expand-context-current-introduction-scopes
   (record-accessor struct:expand-context/outer 8)))
(define expand-context/outer-current-use-scopes
  (|#%name|
   expand-context-current-use-scopes
   (record-accessor struct:expand-context/outer 9)))
(define expand-context/outer-name
  (|#%name|
   expand-context-name
   (record-accessor struct:expand-context/outer 10)))
(define finish_2648
  (make-struct-type-install-properties
   '(expand-context/inner)
   22
   0
   struct:root-expand-context/inner
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21)
   #f
   'expand-context/inner))
(define struct:expand-context/inner
  (make-record-type-descriptor
   'expand-context/inner
   struct:root-expand-context/inner
   (|#%nongenerative-uid| expand-context/inner)
   #f
   #f
   '(22 . 0)))
(define effect_3326 (finish_2648 struct:expand-context/inner))
(define expand-context/inner2.1
  (|#%name|
   expand-context/inner
   (record-constructor
    (make-record-constructor-descriptor struct:expand-context/inner #f #f))))
(define expand-context/inner?
  (|#%name|
   expand-context/inner?
   (record-predicate struct:expand-context/inner)))
(define expand-context/inner-to-parsed?
  (|#%name|
   expand-context/inner-to-parsed?
   (record-accessor struct:expand-context/inner 0)))
(define expand-context/inner-phase
  (|#%name|
   expand-context/inner-phase
   (record-accessor struct:expand-context/inner 1)))
(define expand-context/inner-namespace
  (|#%name|
   expand-context/inner-namespace
   (record-accessor struct:expand-context/inner 2)))
(define expand-context/inner-just-once?
  (|#%name|
   expand-context/inner-just-once?
   (record-accessor struct:expand-context/inner 3)))
(define expand-context/inner-module-begin-k
  (|#%name|
   expand-context/inner-module-begin-k
   (record-accessor struct:expand-context/inner 4)))
(define expand-context/inner-allow-unbound?
  (|#%name|
   expand-context/inner-allow-unbound?
   (record-accessor struct:expand-context/inner 5)))
(define expand-context/inner-in-local-expand?
  (|#%name|
   expand-context/inner-in-local-expand?
   (record-accessor struct:expand-context/inner 6)))
(define |expand-context/inner-keep-#%expression?|
  (|#%name|
   |expand-context/inner-keep-#%expression?|
   (record-accessor struct:expand-context/inner 7)))
(define expand-context/inner-stops
  (|#%name|
   expand-context/inner-stops
   (record-accessor struct:expand-context/inner 8)))
(define expand-context/inner-declared-submodule-names
  (|#%name|
   expand-context/inner-declared-submodule-names
   (record-accessor struct:expand-context/inner 9)))
(define expand-context/inner-lifts
  (|#%name|
   expand-context/inner-lifts
   (record-accessor struct:expand-context/inner 10)))
(define expand-context/inner-lift-envs
  (|#%name|
   expand-context/inner-lift-envs
   (record-accessor struct:expand-context/inner 11)))
(define expand-context/inner-module-lifts
  (|#%name|
   expand-context/inner-module-lifts
   (record-accessor struct:expand-context/inner 12)))
(define expand-context/inner-require-lifts
  (|#%name|
   expand-context/inner-require-lifts
   (record-accessor struct:expand-context/inner 13)))
(define expand-context/inner-to-module-lifts
  (|#%name|
   expand-context/inner-to-module-lifts
   (record-accessor struct:expand-context/inner 14)))
(define expand-context/inner-requires+provides
  (|#%name|
   expand-context/inner-requires+provides
   (record-accessor struct:expand-context/inner 15)))
(define expand-context/inner-observer
  (|#%name|
   expand-context/inner-observer
   (record-accessor struct:expand-context/inner 16)))
(define expand-context/inner-for-serializable?
  (|#%name|
   expand-context/inner-for-serializable?
   (record-accessor struct:expand-context/inner 17)))
(define expand-context/inner-to-correlated-linklet?
  (|#%name|
   expand-context/inner-to-correlated-linklet?
   (record-accessor struct:expand-context/inner 18)))
(define expand-context/inner-normalize-locals?
  (|#%name|
   expand-context/inner-normalize-locals?
   (record-accessor struct:expand-context/inner 19)))
(define expand-context/inner-parsing-expanded?
  (|#%name|
   expand-context/inner-parsing-expanded?
   (record-accessor struct:expand-context/inner 20)))
(define expand-context/inner-skip-visit-available?
  (|#%name|
   expand-context/inner-skip-visit-available?
   (record-accessor struct:expand-context/inner 21)))
(define expand-context/make
  (lambda (self-mpi_0
           module-scopes_0
           post-expansion_0
           top-level-bind-scope_0
           all-scopes-stx_0
           use-site-scopes_0
           defined-syms_0
           frame-id_0
           counter_0
           lift-key_0
           to-parsed?_0
           context_0
           phase_0
           namespace_0
           env_0
           scopes_0
           def-ctx-scopes_0
           binding-layer_0
           reference-records_0
           only-immediate?_0
           just-once?_0
           module-begin-k_0
           need-eventually-defined_0
           allow-unbound?_0
           in-local-expand?_0
           |keep-#%expression?_0|
           stops_0
           current-introduction-scopes_0
           current-use-scopes_0
           declared-submodule-names_0
           lifts_0
           lift-envs_0
           module-lifts_0
           require-lifts_0
           to-module-lifts_0
           requires+provides_0
           name_0
           observer_0
           for-serializable?_0
           to-correlated-linklet?_0
           normalize-locals?_0
           parsing-expanded?_0
           skip-visit-available?_0)
    (expand-context/outer1.1
     (expand-context/inner2.1
      self-mpi_0
      module-scopes_0
      top-level-bind-scope_0
      all-scopes-stx_0
      defined-syms_0
      counter_0
      lift-key_0
      to-parsed?_0
      phase_0
      namespace_0
      just-once?_0
      module-begin-k_0
      allow-unbound?_0
      in-local-expand?_0
      |keep-#%expression?_0|
      stops_0
      declared-submodule-names_0
      lifts_0
      lift-envs_0
      module-lifts_0
      require-lifts_0
      to-module-lifts_0
      requires+provides_0
      observer_0
      for-serializable?_0
      to-correlated-linklet?_0
      normalize-locals?_0
      parsing-expanded?_0
      skip-visit-available?_0)
     post-expansion_0
     use-site-scopes_0
     frame-id_0
     context_0
     env_0
     scopes_0
     def-ctx-scopes_0
     binding-layer_0
     reference-records_0
     only-immediate?_0
     need-eventually-defined_0
     current-introduction-scopes_0
     current-use-scopes_0
     name_0)))
(define expand-context-context
  (lambda (v_0) (expand-context/outer-context v_0)))
(define expand-context-env (lambda (v_0) (expand-context/outer-env v_0)))
(define expand-context-scopes (lambda (v_0) (expand-context/outer-scopes v_0)))
(define expand-context-def-ctx-scopes
  (lambda (v_0) (expand-context/outer-def-ctx-scopes v_0)))
(define expand-context-binding-layer
  (lambda (v_0) (expand-context/outer-binding-layer v_0)))
(define expand-context-reference-records
  (lambda (v_0) (expand-context/outer-reference-records v_0)))
(define expand-context-only-immediate?
  (lambda (v_0) (expand-context/outer-only-immediate? v_0)))
(define expand-context-need-eventually-defined
  (lambda (v_0) (expand-context/outer-need-eventually-defined v_0)))
(define expand-context-current-introduction-scopes
  (lambda (v_0) (expand-context/outer-current-introduction-scopes v_0)))
(define expand-context-current-use-scopes
  (lambda (v_0) (expand-context/outer-current-use-scopes v_0)))
(define expand-context-name (lambda (v_0) (expand-context/outer-name v_0)))
(define expand-context-to-parsed?
  (lambda (v_0)
    (expand-context/inner-to-parsed? (root-expand-context/outer-inner v_0))))
(define expand-context-phase
  (lambda (v_0)
    (expand-context/inner-phase (root-expand-context/outer-inner v_0))))
(define expand-context-namespace
  (lambda (v_0)
    (expand-context/inner-namespace (root-expand-context/outer-inner v_0))))
(define expand-context-just-once?
  (lambda (v_0)
    (expand-context/inner-just-once? (root-expand-context/outer-inner v_0))))
(define expand-context-module-begin-k
  (lambda (v_0)
    (expand-context/inner-module-begin-k
     (root-expand-context/outer-inner v_0))))
(define expand-context-allow-unbound?
  (lambda (v_0)
    (expand-context/inner-allow-unbound?
     (root-expand-context/outer-inner v_0))))
(define expand-context-in-local-expand?
  (lambda (v_0)
    (expand-context/inner-in-local-expand?
     (root-expand-context/outer-inner v_0))))
(define |expand-context-keep-#%expression?|
  (lambda (v_0)
    (|expand-context/inner-keep-#%expression?|
     (root-expand-context/outer-inner v_0))))
(define expand-context-stops
  (lambda (v_0)
    (expand-context/inner-stops (root-expand-context/outer-inner v_0))))
(define expand-context-declared-submodule-names
  (lambda (v_0)
    (expand-context/inner-declared-submodule-names
     (root-expand-context/outer-inner v_0))))
(define expand-context-lifts
  (lambda (v_0)
    (expand-context/inner-lifts (root-expand-context/outer-inner v_0))))
(define expand-context-lift-envs
  (lambda (v_0)
    (expand-context/inner-lift-envs (root-expand-context/outer-inner v_0))))
(define expand-context-module-lifts
  (lambda (v_0)
    (expand-context/inner-module-lifts (root-expand-context/outer-inner v_0))))
(define expand-context-require-lifts
  (lambda (v_0)
    (expand-context/inner-require-lifts
     (root-expand-context/outer-inner v_0))))
(define expand-context-to-module-lifts
  (lambda (v_0)
    (expand-context/inner-to-module-lifts
     (root-expand-context/outer-inner v_0))))
(define expand-context-requires+provides
  (lambda (v_0)
    (expand-context/inner-requires+provides
     (root-expand-context/outer-inner v_0))))
(define expand-context-observer
  (lambda (v_0)
    (expand-context/inner-observer (root-expand-context/outer-inner v_0))))
(define expand-context-for-serializable?
  (lambda (v_0)
    (expand-context/inner-for-serializable?
     (root-expand-context/outer-inner v_0))))
(define expand-context-to-correlated-linklet?
  (lambda (v_0)
    (expand-context/inner-to-correlated-linklet?
     (root-expand-context/outer-inner v_0))))
(define expand-context-normalize-locals?
  (lambda (v_0)
    (expand-context/inner-normalize-locals?
     (root-expand-context/outer-inner v_0))))
(define expand-context-parsing-expanded?
  (lambda (v_0)
    (expand-context/inner-parsing-expanded?
     (root-expand-context/outer-inner v_0))))
(define expand-context-skip-visit-available?
  (lambda (v_0)
    (expand-context/inner-skip-visit-available?
     (root-expand-context/outer-inner v_0))))
(define make-expand-context.1
  (|#%name|
   make-expand-context
   (lambda (for-serializable?4_0
            observer6_0
            skip-visit-available?7_0
            to-correlated-linklet?5_0
            to-parsed?3_0
            ns13_0)
     (begin
       (let ((root-ctx_0 (namespace-get-root-expand-ctx ns13_0)))
         (let ((self-mpi_0
                (begin-unsafe
                 (root-expand-context/inner-self-mpi
                  (root-expand-context/outer-inner root-ctx_0)))))
           (let ((module-scopes_0
                  (begin-unsafe
                   (root-expand-context/inner-module-scopes
                    (root-expand-context/outer-inner root-ctx_0)))))
             (let ((post-expansion_0
                    (begin-unsafe
                     (root-expand-context/outer-post-expansion root-ctx_0))))
               (let ((top-level-bind-scope_0
                      (begin-unsafe
                       (root-expand-context/inner-top-level-bind-scope
                        (root-expand-context/outer-inner root-ctx_0)))))
                 (let ((all-scopes-stx_0
                        (begin-unsafe
                         (root-expand-context/inner-all-scopes-stx
                          (root-expand-context/outer-inner root-ctx_0)))))
                   (let ((use-site-scopes_0
                          (begin-unsafe
                           (root-expand-context/outer-use-site-scopes
                            root-ctx_0))))
                     (let ((defined-syms_0
                            (begin-unsafe
                             (root-expand-context/inner-defined-syms
                              (root-expand-context/outer-inner root-ctx_0)))))
                       (let ((frame-id_0
                              (begin-unsafe
                               (root-expand-context/outer-frame-id
                                root-ctx_0))))
                         (let ((counter_0
                                (begin-unsafe
                                 (root-expand-context/inner-counter
                                  (root-expand-context/outer-inner
                                   root-ctx_0)))))
                           (let ((lift-key_0
                                  (begin-unsafe
                                   (root-expand-context/inner-lift-key
                                    (root-expand-context/outer-inner
                                     root-ctx_0)))))
                             (let ((phase_0 (namespace-phase ns13_0)))
                               (let ((binding-layer_0
                                      (begin-unsafe
                                       (root-expand-context/outer-frame-id
                                        root-ctx_0))))
                                 (let ((declared-submodule-names_0 hash2610))
                                   (begin-unsafe
                                    (expand-context/outer1.1
                                     (expand-context/inner2.1
                                      self-mpi_0
                                      module-scopes_0
                                      top-level-bind-scope_0
                                      all-scopes-stx_0
                                      defined-syms_0
                                      counter_0
                                      lift-key_0
                                      to-parsed?3_0
                                      phase_0
                                      ns13_0
                                      #f
                                      #f
                                      #t
                                      #f
                                      #f
                                      empty-free-id-set
                                      declared-submodule-names_0
                                      #f
                                      '()
                                      #f
                                      #f
                                      #f
                                      #f
                                      observer6_0
                                      for-serializable?4_0
                                      to-correlated-linklet?5_0
                                      to-correlated-linklet?5_0
                                      #f
                                      skip-visit-available?7_0)
                                     post-expansion_0
                                     use-site-scopes_0
                                     frame-id_0
                                     'top-level
                                     empty-env
                                     null
                                     #f
                                     binding-layer_0
                                     null
                                     #f
                                     #f
                                     null
                                     null
                                     #f))))))))))))))))))))
(define copy-root-expand-context
  (lambda (ctx_0 root-ctx_0)
    (if (expand-context/outer? ctx_0)
      (let ((post-expansion25_0
             (begin-unsafe
              (root-expand-context/outer-post-expansion root-ctx_0))))
        (let ((use-site-scopes26_0
               (begin-unsafe
                (root-expand-context/outer-use-site-scopes root-ctx_0))))
          (let ((frame-id27_0
                 (begin-unsafe
                  (root-expand-context/outer-frame-id root-ctx_0))))
            (let ((binding-layer28_0
                   (begin-unsafe
                    (root-expand-context/outer-frame-id root-ctx_0))))
              (let ((inner29_0
                     (let ((the-struct_0
                            (root-expand-context/outer-inner ctx_0)))
                       (if (expand-context/inner? the-struct_0)
                         (let ((self-mpi30_0
                                (begin-unsafe
                                 (root-expand-context/inner-self-mpi
                                  (root-expand-context/outer-inner
                                   root-ctx_0)))))
                           (let ((module-scopes31_0
                                  (begin-unsafe
                                   (root-expand-context/inner-module-scopes
                                    (root-expand-context/outer-inner
                                     root-ctx_0)))))
                             (let ((top-level-bind-scope32_0
                                    (begin-unsafe
                                     (root-expand-context/inner-top-level-bind-scope
                                      (root-expand-context/outer-inner
                                       root-ctx_0)))))
                               (let ((all-scopes-stx33_0
                                      (begin-unsafe
                                       (root-expand-context/inner-all-scopes-stx
                                        (root-expand-context/outer-inner
                                         root-ctx_0)))))
                                 (let ((defined-syms34_0
                                        (begin-unsafe
                                         (root-expand-context/inner-defined-syms
                                          (root-expand-context/outer-inner
                                           root-ctx_0)))))
                                   (let ((counter35_0
                                          (begin-unsafe
                                           (root-expand-context/inner-counter
                                            (root-expand-context/outer-inner
                                             root-ctx_0)))))
                                     (let ((lift-key36_0
                                            (begin-unsafe
                                             (root-expand-context/inner-lift-key
                                              (root-expand-context/outer-inner
                                               root-ctx_0)))))
                                       (expand-context/inner2.1
                                        self-mpi30_0
                                        module-scopes31_0
                                        top-level-bind-scope32_0
                                        all-scopes-stx33_0
                                        defined-syms34_0
                                        counter35_0
                                        lift-key36_0
                                        (expand-context/inner-to-parsed?
                                         the-struct_0)
                                        (expand-context/inner-phase
                                         the-struct_0)
                                        (expand-context/inner-namespace
                                         the-struct_0)
                                        (expand-context/inner-just-once?
                                         the-struct_0)
                                        (expand-context/inner-module-begin-k
                                         the-struct_0)
                                        (expand-context/inner-allow-unbound?
                                         the-struct_0)
                                        (expand-context/inner-in-local-expand?
                                         the-struct_0)
                                        (|expand-context/inner-keep-#%expression?|
                                         the-struct_0)
                                        (expand-context/inner-stops
                                         the-struct_0)
                                        (expand-context/inner-declared-submodule-names
                                         the-struct_0)
                                        (expand-context/inner-lifts
                                         the-struct_0)
                                        (expand-context/inner-lift-envs
                                         the-struct_0)
                                        (expand-context/inner-module-lifts
                                         the-struct_0)
                                        (expand-context/inner-require-lifts
                                         the-struct_0)
                                        (expand-context/inner-to-module-lifts
                                         the-struct_0)
                                        (expand-context/inner-requires+provides
                                         the-struct_0)
                                        (expand-context/inner-observer
                                         the-struct_0)
                                        (expand-context/inner-for-serializable?
                                         the-struct_0)
                                        (expand-context/inner-to-correlated-linklet?
                                         the-struct_0)
                                        (expand-context/inner-normalize-locals?
                                         the-struct_0)
                                        (expand-context/inner-parsing-expanded?
                                         the-struct_0)
                                        (expand-context/inner-skip-visit-available?
                                         the-struct_0)))))))))
                         (raise-argument-error
                          'struct-copy
                          "expand-context/inner?"
                          the-struct_0)))))
                (let ((binding-layer28_1 binding-layer28_0)
                      (frame-id27_1 frame-id27_0)
                      (use-site-scopes26_1 use-site-scopes26_0)
                      (post-expansion25_1 post-expansion25_0))
                  (expand-context/outer1.1
                   inner29_0
                   post-expansion25_1
                   use-site-scopes26_1
                   frame-id27_1
                   (expand-context/outer-context ctx_0)
                   (expand-context/outer-env ctx_0)
                   (expand-context/outer-scopes ctx_0)
                   (expand-context/outer-def-ctx-scopes ctx_0)
                   binding-layer28_1
                   (expand-context/outer-reference-records ctx_0)
                   (expand-context/outer-only-immediate? ctx_0)
                   (expand-context/outer-need-eventually-defined ctx_0)
                   (expand-context/outer-current-introduction-scopes ctx_0)
                   (expand-context/outer-current-use-scopes ctx_0)
                   (expand-context/outer-name ctx_0))))))))
      (raise-argument-error 'struct-copy "expand-context/outer?" ctx_0))))
(define default-val.1$1 #f)
(define current-expand-context
  (lambda ()
    (continuation-mark-set-first #f current-expand-context #f root-tag)))
(define get-current-expand-context.1
  (|#%name|
   get-current-expand-context
   (lambda (fail-ok?15_0 who17_0)
     (begin
       (let ((or-part_0 (force (current-expand-context))))
         (if or-part_0
           or-part_0
           (if fail-ok?15_0
             #f
             (raise-arguments-error who17_0 "not currently expanding"))))))))
(define current-expand-observe
  (make-parameter
   #f
   (lambda (v_0)
     (begin
       (if (let ((or-part_0 (not v_0)))
             (if or-part_0
               or-part_0
               (if (procedure? v_0) (procedure-arity-includes? v_0 2) #f)))
         (void)
         (raise-argument-error
          'current-expand-observe
          "(or/c (procedure-arity-includes/c 2) #f)"
          v_0))
       v_0))
   'current-expand-observe))
(define as-expression-context
  (lambda (ctx_0)
    (if (if (eq?
             'expression
             (begin-unsafe (expand-context/outer-context ctx_0)))
          (not (begin-unsafe (expand-context/outer-name ctx_0)))
          #f)
      ctx_0
      (if (expand-context/outer? ctx_0)
        (let ((inner40_0 (root-expand-context/outer-inner ctx_0)))
          (expand-context/outer1.1
           inner40_0
           #f
           (root-expand-context/outer-use-site-scopes ctx_0)
           (root-expand-context/outer-frame-id ctx_0)
           'expression
           (expand-context/outer-env ctx_0)
           (expand-context/outer-scopes ctx_0)
           (expand-context/outer-def-ctx-scopes ctx_0)
           (expand-context/outer-binding-layer ctx_0)
           (expand-context/outer-reference-records ctx_0)
           (expand-context/outer-only-immediate? ctx_0)
           (expand-context/outer-need-eventually-defined ctx_0)
           (expand-context/outer-current-introduction-scopes ctx_0)
           (expand-context/outer-current-use-scopes ctx_0)
           #f))
        (raise-argument-error 'struct-copy "expand-context/outer?" ctx_0)))))
(define as-begin-expression-context
  (lambda (ctx_0)
    (if (not (begin-unsafe (expand-context/outer-name ctx_0)))
      ctx_0
      (if (expand-context/outer? ctx_0)
        (let ((inner42_0 (root-expand-context/outer-inner ctx_0)))
          (expand-context/outer1.1
           inner42_0
           (root-expand-context/outer-post-expansion ctx_0)
           (root-expand-context/outer-use-site-scopes ctx_0)
           (root-expand-context/outer-frame-id ctx_0)
           (expand-context/outer-context ctx_0)
           (expand-context/outer-env ctx_0)
           (expand-context/outer-scopes ctx_0)
           (expand-context/outer-def-ctx-scopes ctx_0)
           (expand-context/outer-binding-layer ctx_0)
           (expand-context/outer-reference-records ctx_0)
           (expand-context/outer-only-immediate? ctx_0)
           (expand-context/outer-need-eventually-defined ctx_0)
           (expand-context/outer-current-introduction-scopes ctx_0)
           (expand-context/outer-current-use-scopes ctx_0)
           #f))
        (raise-argument-error 'struct-copy "expand-context/outer?" ctx_0)))))
(define as-tail-context.1
  (|#%name|
   as-tail-context
   (lambda (wrt19_0 ctx21_0)
     (begin
       (if (begin-unsafe (expand-context/outer-name wrt19_0))
         (if (expand-context/outer? ctx21_0)
           (let ((name43_0 (begin-unsafe (expand-context/outer-name wrt19_0))))
             (let ((inner44_0 (root-expand-context/outer-inner ctx21_0)))
               (expand-context/outer1.1
                inner44_0
                (root-expand-context/outer-post-expansion ctx21_0)
                (root-expand-context/outer-use-site-scopes ctx21_0)
                (root-expand-context/outer-frame-id ctx21_0)
                (expand-context/outer-context ctx21_0)
                (expand-context/outer-env ctx21_0)
                (expand-context/outer-scopes ctx21_0)
                (expand-context/outer-def-ctx-scopes ctx21_0)
                (expand-context/outer-binding-layer ctx21_0)
                (expand-context/outer-reference-records ctx21_0)
                (expand-context/outer-only-immediate? ctx21_0)
                (expand-context/outer-need-eventually-defined ctx21_0)
                (expand-context/outer-current-introduction-scopes ctx21_0)
                (expand-context/outer-current-use-scopes ctx21_0)
                name43_0)))
           (raise-argument-error 'struct-copy "expand-context/outer?" ctx21_0))
         ctx21_0)))))
(define as-named-context
  (lambda (ctx_0 ids_0)
    (if (if (pair? ids_0) (null? (cdr ids_0)) #f)
      (if (expand-context/outer? ctx_0)
        (let ((name45_0 (car ids_0)))
          (let ((inner46_0 (root-expand-context/outer-inner ctx_0)))
            (let ((name45_1 name45_0))
              (expand-context/outer1.1
               inner46_0
               (root-expand-context/outer-post-expansion ctx_0)
               (root-expand-context/outer-use-site-scopes ctx_0)
               (root-expand-context/outer-frame-id ctx_0)
               (expand-context/outer-context ctx_0)
               (expand-context/outer-env ctx_0)
               (expand-context/outer-scopes ctx_0)
               (expand-context/outer-def-ctx-scopes ctx_0)
               (expand-context/outer-binding-layer ctx_0)
               (expand-context/outer-reference-records ctx_0)
               (expand-context/outer-only-immediate? ctx_0)
               (expand-context/outer-need-eventually-defined ctx_0)
               (expand-context/outer-current-introduction-scopes ctx_0)
               (expand-context/outer-current-use-scopes ctx_0)
               name45_1))))
        (raise-argument-error 'struct-copy "expand-context/outer?" ctx_0))
      ctx_0)))
(define as-to-parsed-context
  (lambda (ctx_0)
    (if (expand-context/outer? ctx_0)
      (let ((inner47_0
             (let ((the-struct_0 (root-expand-context/outer-inner ctx_0)))
               (if (expand-context/inner? the-struct_0)
                 (expand-context/inner2.1
                  (root-expand-context/inner-self-mpi the-struct_0)
                  (root-expand-context/inner-module-scopes the-struct_0)
                  (root-expand-context/inner-top-level-bind-scope the-struct_0)
                  (root-expand-context/inner-all-scopes-stx the-struct_0)
                  (root-expand-context/inner-defined-syms the-struct_0)
                  (root-expand-context/inner-counter the-struct_0)
                  (root-expand-context/inner-lift-key the-struct_0)
                  #t
                  (expand-context/inner-phase the-struct_0)
                  (expand-context/inner-namespace the-struct_0)
                  (expand-context/inner-just-once? the-struct_0)
                  (expand-context/inner-module-begin-k the-struct_0)
                  (expand-context/inner-allow-unbound? the-struct_0)
                  (expand-context/inner-in-local-expand? the-struct_0)
                  (|expand-context/inner-keep-#%expression?| the-struct_0)
                  (expand-context/inner-stops the-struct_0)
                  (expand-context/inner-declared-submodule-names the-struct_0)
                  (expand-context/inner-lifts the-struct_0)
                  (expand-context/inner-lift-envs the-struct_0)
                  (expand-context/inner-module-lifts the-struct_0)
                  (expand-context/inner-require-lifts the-struct_0)
                  (expand-context/inner-to-module-lifts the-struct_0)
                  (expand-context/inner-requires+provides the-struct_0)
                  #f
                  (expand-context/inner-for-serializable? the-struct_0)
                  (expand-context/inner-to-correlated-linklet? the-struct_0)
                  (expand-context/inner-normalize-locals? the-struct_0)
                  #t
                  (expand-context/inner-skip-visit-available? the-struct_0))
                 (raise-argument-error
                  'struct-copy
                  "expand-context/inner?"
                  the-struct_0)))))
        (expand-context/outer1.1
         inner47_0
         (root-expand-context/outer-post-expansion ctx_0)
         (root-expand-context/outer-use-site-scopes ctx_0)
         (root-expand-context/outer-frame-id ctx_0)
         (expand-context/outer-context ctx_0)
         (expand-context/outer-env ctx_0)
         (expand-context/outer-scopes ctx_0)
         (expand-context/outer-def-ctx-scopes ctx_0)
         (expand-context/outer-binding-layer ctx_0)
         (expand-context/outer-reference-records ctx_0)
         (expand-context/outer-only-immediate? ctx_0)
         (expand-context/outer-need-eventually-defined ctx_0)
         (expand-context/outer-current-introduction-scopes ctx_0)
         (expand-context/outer-current-use-scopes ctx_0)
         (expand-context/outer-name ctx_0)))
      (raise-argument-error 'struct-copy "expand-context/outer?" ctx_0))))
(define effect_2553
  (begin
    (|#%call-with-values|
     (lambda ()
       (let ((proc_0
              (lambda ()
                (let ((ctx_0 (force (current-expand-context))))
                  (let ((phase-to-ids_0
                         (if ctx_0
                           (begin-unsafe
                            (expand-context/outer-need-eventually-defined
                             ctx_0))
                           #f)))
                    (if phase-to-ids_0
                      (hash-ref
                       phase-to-ids_0
                       (begin-unsafe
                        (expand-context/inner-phase
                         (root-expand-context/outer-inner ctx_0)))
                       null)
                      #f))))))
         (begin-unsafe (set! current-previously-unbound proc_0))))
     print-values)
    (void)))
(define to-syntax-list.1
  (|#%name|
   to-syntax-list
   (lambda (s_0)
     (begin
       (if (list? s_0)
         s_0
         (if (pair? s_0)
           (let ((r_0 (to-syntax-list.1 (cdr s_0))))
             (if r_0 (cons (car s_0) r_0) #f))
           (if (syntax?$1 s_0) (to-syntax-list.1 (syntax-e$1 s_0)) #f)))))))
(define syntax-debug-info$1
  (|#%name|
   syntax-debug-info
   (lambda (s_0 phase_0 all-bindings?_0)
     (begin
       (let ((hts_0
              (reverse$1
               (let ((lst_0
                      (fallback->list (syntax-shifted-multi-scopes s_0))))
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (fold-var_0 lst_1)
                         (begin
                           (if (pair? lst_1)
                             (let ((smss_0 (unsafe-car lst_1)))
                               (let ((rest_0 (unsafe-cdr lst_1)))
                                 (let ((fold-var_1
                                        (let ((fold-var_1
                                               (cons
                                                (let ((init-ht_0
                                                       (if (identifier? s_0)
                                                         (hasheq
                                                          'name
                                                          (syntax-e$1 s_0))
                                                         hash2610)))
                                                  (let ((s-scs_0
                                                         (scope-set-at-fallback
                                                          s_0
                                                          smss_0
                                                          phase_0)))
                                                    (let ((context_0
                                                           (scope-set->context
                                                            s-scs_0)))
                                                      (let ((context-ht_0
                                                             (hash-set
                                                              init-ht_0
                                                              'context
                                                              context_0)))
                                                        (let ((sym_0
                                                               (syntax-e$1
                                                                s_0)))
                                                          (let ((classify-binding_0
                                                                 (|#%name|
                                                                  classify-binding
                                                                  (lambda (b_0)
                                                                    (begin
                                                                      (if (local-binding?
                                                                           b_0)
                                                                        'local
                                                                        (if (like-ambiguous-binding?
                                                                             b_0)
                                                                          'ambiguous
                                                                          'module)))))))
                                                            (let ((extract-binding_0
                                                                   (|#%name|
                                                                    extract-binding
                                                                    (lambda (b_0)
                                                                      (begin
                                                                        (if (local-binding?
                                                                             b_0)
                                                                          (local-binding-key
                                                                           b_0)
                                                                          (if (like-ambiguous-binding?
                                                                               b_0)
                                                                            #t
                                                                            (let ((app_0
                                                                                   (module-binding-sym
                                                                                    b_0)))
                                                                              (let ((app_1
                                                                                     (module-binding-module
                                                                                      b_0)))
                                                                                (vector
                                                                                 app_0
                                                                                 app_1
                                                                                 (module-binding-phase
                                                                                  b_0)))))))))))
                                                              (let ((bindings_0
                                                                     (let ((app_0
                                                                            (if (identifier?
                                                                                 s_0)
                                                                              (call-with-values
                                                                               (lambda ()
                                                                                 (begin
                                                                                   (letrec*
                                                                                    ((for-loop_1
                                                                                      (|#%name|
                                                                                       for-loop
                                                                                       (lambda (bindings_0
                                                                                                covered-scope-sets_0
                                                                                                i_0)
                                                                                         (begin
                                                                                           (if i_0
                                                                                             (let ((sc_0
                                                                                                    (unsafe-immutable-hash-iterate-key
                                                                                                     s-scs_0
                                                                                                     i_0)))
                                                                                               (call-with-values
                                                                                                (lambda ()
                                                                                                  (call-with-values
                                                                                                   (lambda ()
                                                                                                     (let ((table_0
                                                                                                            (scope-binding-table
                                                                                                             sc_0)))
                                                                                                       (if (hash?
                                                                                                            table_0)
                                                                                                         (values
                                                                                                          (hash-ref
                                                                                                           table_0
                                                                                                           sym_0
                                                                                                           hash2725)
                                                                                                          null)
                                                                                                         (let ((app_0
                                                                                                                (hash-ref
                                                                                                                 (table-with-bulk-bindings-syms
                                                                                                                  table_0)
                                                                                                                 sym_0
                                                                                                                 hash2725)))
                                                                                                           (values
                                                                                                            app_0
                                                                                                            (table-with-bulk-bindings-bulk-bindings
                                                                                                             table_0))))))
                                                                                                   (case-lambda
                                                                                                    ((ht_0
                                                                                                      bulk-bindings_0)
                                                                                                     (let ((s_1
                                                                                                            s_0))
                                                                                                       (let ((extra-shifts_0
                                                                                                              null))
                                                                                                         (let ((s_2
                                                                                                                s_1)
                                                                                                               (ht_1
                                                                                                                ht_0)
                                                                                                               (bulk-bindings_1
                                                                                                                bulk-bindings_0))
                                                                                                           (begin
                                                                                                             #t
                                                                                                             (letrec*
                                                                                                              ((for-loop_2
                                                                                                                (|#%name|
                                                                                                                 for-loop
                                                                                                                 (lambda (bindings_1
                                                                                                                          covered-scope-sets_1
                                                                                                                          i_1)
                                                                                                                   (begin
                                                                                                                     (if (not
                                                                                                                          (null?
                                                                                                                           i_1))
                                                                                                                       (let ((scs_0
                                                                                                                              (if (pair?
                                                                                                                                   i_1)
                                                                                                                                (bulk-binding-at-scopes
                                                                                                                                 (car
                                                                                                                                  i_1))
                                                                                                                                (hash-iterate-key
                                                                                                                                 ht_1
                                                                                                                                 i_1))))
                                                                                                                         (let ((b_0
                                                                                                                                (if (pair?
                                                                                                                                     i_1)
                                                                                                                                  (let ((bulk_0
                                                                                                                                         (bulk-binding-at-bulk
                                                                                                                                          (car
                                                                                                                                           i_1))))
                                                                                                                                    (let ((b-info_0
                                                                                                                                           (if (symbol-interned?
                                                                                                                                                sym_0)
                                                                                                                                             (hash-ref
                                                                                                                                              (bulk-binding-symbols
                                                                                                                                               bulk_0
                                                                                                                                               s_2
                                                                                                                                               extra-shifts_0)
                                                                                                                                              sym_0
                                                                                                                                              #f)
                                                                                                                                             #f)))
                                                                                                                                      (if b-info_0
                                                                                                                                        (|#%app|
                                                                                                                                         (begin-unsafe
                                                                                                                                          (bulk-binding-class-create
                                                                                                                                           (bulk-binding-ref
                                                                                                                                            bulk_0)))
                                                                                                                                         bulk_0
                                                                                                                                         b-info_0
                                                                                                                                         sym_0)
                                                                                                                                        #f)))
                                                                                                                                  (hash-iterate-value
                                                                                                                                   ht_1
                                                                                                                                   i_1))))
                                                                                                                           (let ((scs_1
                                                                                                                                  scs_0))
                                                                                                                             (call-with-values
                                                                                                                              (lambda ()
                                                                                                                                (if (if scs_1
                                                                                                                                      (if b_0
                                                                                                                                        (not
                                                                                                                                         (begin-unsafe
                                                                                                                                          (hash-ref
                                                                                                                                           covered-scope-sets_1
                                                                                                                                           scs_1
                                                                                                                                           #f)))
                                                                                                                                        #f)
                                                                                                                                      #f)
                                                                                                                                  (call-with-values
                                                                                                                                   (lambda ()
                                                                                                                                     (let ((app_0
                                                                                                                                            (cons
                                                                                                                                             (let ((app_0
                                                                                                                                                    (syntax-e$1
                                                                                                                                                     s_0)))
                                                                                                                                               (let ((app_1
                                                                                                                                                      (scope-set->context
                                                                                                                                                       scs_1)))
                                                                                                                                                 (let ((app_2
                                                                                                                                                        (begin-unsafe
                                                                                                                                                         (hash-keys-subset?
                                                                                                                                                          scs_1
                                                                                                                                                          s-scs_0))))
                                                                                                                                                   (let ((app_3
                                                                                                                                                          (classify-binding_0
                                                                                                                                                           b_0)))
                                                                                                                                                     (hasheq
                                                                                                                                                      'name
                                                                                                                                                      app_0
                                                                                                                                                      'context
                                                                                                                                                      app_1
                                                                                                                                                      'match?
                                                                                                                                                      app_2
                                                                                                                                                      app_3
                                                                                                                                                      (extract-binding_0
                                                                                                                                                       b_0))))))
                                                                                                                                             bindings_1)))
                                                                                                                                       (values
                                                                                                                                        app_0
                                                                                                                                        (begin-unsafe
                                                                                                                                         (hash-set
                                                                                                                                          covered-scope-sets_1
                                                                                                                                          scs_1
                                                                                                                                          #t)))))
                                                                                                                                   (case-lambda
                                                                                                                                    ((bindings_2
                                                                                                                                      covered-scope-sets_2)
                                                                                                                                     (values
                                                                                                                                      bindings_2
                                                                                                                                      covered-scope-sets_2))
                                                                                                                                    (args
                                                                                                                                     (raise-binding-result-arity-error
                                                                                                                                      2
                                                                                                                                      args))))
                                                                                                                                  (values
                                                                                                                                   bindings_1
                                                                                                                                   covered-scope-sets_1)))
                                                                                                                              (case-lambda
                                                                                                                               ((bindings_2
                                                                                                                                 covered-scope-sets_2)
                                                                                                                                (for-loop_2
                                                                                                                                 bindings_2
                                                                                                                                 covered-scope-sets_2
                                                                                                                                 (if (pair?
                                                                                                                                      i_1)
                                                                                                                                   (cdr
                                                                                                                                    i_1)
                                                                                                                                   (let ((or-part_0
                                                                                                                                          (hash-iterate-next
                                                                                                                                           ht_1
                                                                                                                                           i_1)))
                                                                                                                                     (if or-part_0
                                                                                                                                       or-part_0
                                                                                                                                       bulk-bindings_1)))))
                                                                                                                               (args
                                                                                                                                (raise-binding-result-arity-error
                                                                                                                                 2
                                                                                                                                 args)))))))
                                                                                                                       (values
                                                                                                                        bindings_1
                                                                                                                        covered-scope-sets_1)))))))
                                                                                                              (for-loop_2
                                                                                                               bindings_0
                                                                                                               covered-scope-sets_0
                                                                                                               (let ((or-part_0
                                                                                                                      (hash-iterate-first
                                                                                                                       ht_1)))
                                                                                                                 (if or-part_0
                                                                                                                   or-part_0
                                                                                                                   bulk-bindings_1)))))))))
                                                                                                    (args
                                                                                                     (raise-binding-result-arity-error
                                                                                                      2
                                                                                                      args)))))
                                                                                                (case-lambda
                                                                                                 ((bindings_1
                                                                                                   covered-scope-sets_1)
                                                                                                  (for-loop_1
                                                                                                   bindings_1
                                                                                                   covered-scope-sets_1
                                                                                                   (unsafe-immutable-hash-iterate-next
                                                                                                    s-scs_0
                                                                                                    i_0)))
                                                                                                 (args
                                                                                                  (raise-binding-result-arity-error
                                                                                                   2
                                                                                                   args)))))
                                                                                             (values
                                                                                              bindings_0
                                                                                              covered-scope-sets_0)))))))
                                                                                    (let ((app_0
                                                                                           (set)))
                                                                                      (for-loop_1
                                                                                       null
                                                                                       app_0
                                                                                       (unsafe-immutable-hash-iterate-first
                                                                                        s-scs_0))))))
                                                                               (case-lambda
                                                                                ((bindings_0
                                                                                  covered-scopess_0)
                                                                                 bindings_0)
                                                                                (args
                                                                                 (raise-binding-result-arity-error
                                                                                  2
                                                                                  args))))
                                                                              null)))
                                                                       (append
                                                                        app_0
                                                                        (if all-bindings?_0
                                                                          (reverse$1
                                                                           (begin
                                                                             (letrec*
                                                                              ((for-loop_1
                                                                                (|#%name|
                                                                                 for-loop
                                                                                 (lambda (fold-var_1
                                                                                          i_0)
                                                                                   (begin
                                                                                     (if i_0
                                                                                       (let ((sc_0
                                                                                              (unsafe-immutable-hash-iterate-key
                                                                                               s-scs_0
                                                                                               i_0)))
                                                                                         (let ((fold-var_2
                                                                                                (let ((sym-ht_0
                                                                                                       (let ((table_0
                                                                                                              (scope-binding-table
                                                                                                               sc_0)))
                                                                                                         (if (hash?
                                                                                                              table_0)
                                                                                                           table_0
                                                                                                           (table-with-bulk-bindings-syms
                                                                                                            table_0)))))
                                                                                                  (begin
                                                                                                    #t
                                                                                                    (letrec*
                                                                                                     ((for-loop_2
                                                                                                       (|#%name|
                                                                                                        for-loop
                                                                                                        (lambda (fold-var_2
                                                                                                                 state_0)
                                                                                                          (begin
                                                                                                            (if (car
                                                                                                                 state_0)
                                                                                                              (let ((o-sym_0
                                                                                                                     (vector-ref
                                                                                                                      (car
                                                                                                                       state_0)
                                                                                                                      1)))
                                                                                                                (let ((scs_0
                                                                                                                       (let ((app_1
                                                                                                                              (vector-ref
                                                                                                                               (car
                                                                                                                                state_0)
                                                                                                                               2)))
                                                                                                                         (hash-iterate-key
                                                                                                                          app_1
                                                                                                                          (cdr
                                                                                                                           state_0)))))
                                                                                                                  (let ((b_0
                                                                                                                         (let ((app_1
                                                                                                                                (vector-ref
                                                                                                                                 (car
                                                                                                                                  state_0)
                                                                                                                                 2)))
                                                                                                                           (hash-iterate-value
                                                                                                                            app_1
                                                                                                                            (cdr
                                                                                                                             state_0)))))
                                                                                                                    (let ((scs_1
                                                                                                                           scs_0)
                                                                                                                          (o-sym_1
                                                                                                                           o-sym_0))
                                                                                                                      (let ((fold-var_3
                                                                                                                             (if (eq?
                                                                                                                                  o-sym_1
                                                                                                                                  sym_0)
                                                                                                                               fold-var_2
                                                                                                                               (let ((fold-var_3
                                                                                                                                      (cons
                                                                                                                                       (let ((app_1
                                                                                                                                              (scope-set->context
                                                                                                                                               scs_1)))
                                                                                                                                         (let ((app_2
                                                                                                                                                (classify-binding_0
                                                                                                                                                 b_0)))
                                                                                                                                           (hasheq
                                                                                                                                            'name
                                                                                                                                            o-sym_1
                                                                                                                                            'context
                                                                                                                                            app_1
                                                                                                                                            'match?
                                                                                                                                            #f
                                                                                                                                            app_2
                                                                                                                                            (extract-binding_0
                                                                                                                                             b_0))))
                                                                                                                                       fold-var_2)))
                                                                                                                                 (values
                                                                                                                                  fold-var_3)))))
                                                                                                                        (for-loop_2
                                                                                                                         fold-var_3
                                                                                                                         (let ((ht_0
                                                                                                                                (vector-ref
                                                                                                                                 (car
                                                                                                                                  state_0)
                                                                                                                                 2)))
                                                                                                                           (let ((i_1
                                                                                                                                  (hash-iterate-next
                                                                                                                                   ht_0
                                                                                                                                   (cdr
                                                                                                                                    state_0))))
                                                                                                                             (if i_1
                                                                                                                               (cons
                                                                                                                                (car
                                                                                                                                 state_0)
                                                                                                                                i_1)
                                                                                                                               (next-state-in-full-binding-table
                                                                                                                                sym-ht_0
                                                                                                                                (hash-iterate-next
                                                                                                                                 sym-ht_0
                                                                                                                                 (vector-ref
                                                                                                                                  (car
                                                                                                                                   state_0)
                                                                                                                                  0))))))))))))
                                                                                                              fold-var_2))))))
                                                                                                     (for-loop_2
                                                                                                      fold-var_1
                                                                                                      (letrec*
                                                                                                       ((loop_0
                                                                                                         (|#%name|
                                                                                                          loop
                                                                                                          (lambda (sym-i_0)
                                                                                                            (begin
                                                                                                              (if sym-i_0
                                                                                                                (next-state-in-full-binding-table
                                                                                                                 sym-ht_0
                                                                                                                 sym-i_0)
                                                                                                                '(#f
                                                                                                                  .
                                                                                                                  #f)))))))
                                                                                                       (loop_0
                                                                                                        (hash-iterate-first
                                                                                                         sym-ht_0)))))))))
                                                                                           (for-loop_1
                                                                                            fold-var_2
                                                                                            (unsafe-immutable-hash-iterate-next
                                                                                             s-scs_0
                                                                                             i_0))))
                                                                                       fold-var_1))))))
                                                                              (for-loop_1
                                                                               null
                                                                               (unsafe-immutable-hash-iterate-first
                                                                                s-scs_0)))))
                                                                          null)))))
                                                                (if (null?
                                                                     bindings_0)
                                                                  context-ht_0
                                                                  (hash-set
                                                                   context-ht_0
                                                                   'bindings
                                                                   bindings_0))))))))))
                                                fold-var_0)))
                                          (values fold-var_1))))
                                   (for-loop_0 fold-var_1 rest_0))))
                             fold-var_0))))))
                    (for-loop_0 null lst_0)))))))
         (let ((ht_0 (car hts_0)))
           (if (null? (cdr hts_0))
             ht_0
             (hash-set ht_0 'fallbacks (cdr hts_0)))))))))
(define scope-set->context
  (lambda (scs_0)
    (let ((temp1_0
           (reverse$1
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 i_0)
                    (begin
                      (if i_0
                        (let ((sc_0
                               (unsafe-immutable-hash-iterate-key scs_0 i_0)))
                          (let ((fold-var_1
                                 (let ((fold-var_1
                                        (cons
                                         (if (interned-scope? sc_0)
                                           (vector
                                            (scope-id sc_0)
                                            (scope-kind sc_0)
                                            (interned-scope-key sc_0))
                                           (if (representative-scope? sc_0)
                                             (vector
                                              (scope-id sc_0)
                                              (scope-kind sc_0)
                                              (multi-scope-name
                                               (representative-scope-owner
                                                sc_0)))
                                             (vector
                                              (scope-id sc_0)
                                              (scope-kind sc_0))))
                                         fold-var_0)))
                                   (values fold-var_1))))
                            (for-loop_0
                             fold-var_1
                             (unsafe-immutable-hash-iterate-next scs_0 i_0))))
                        fold-var_0))))))
               (for-loop_0
                null
                (unsafe-immutable-hash-iterate-first scs_0)))))))
      (let ((temp3_0 (lambda (v_0) (vector-ref v_0 0))))
        (let ((temp1_1 temp1_0)) (sort.1 #f temp3_0 temp1_1 <))))))
(define raise-ambiguous-error
  (lambda (id_0 ctx_0)
    (raise-syntax-error$1
     #f
     "identifier's binding is ambiguous"
     id_0
     #f
     null
     (syntax-debug-info-string id_0 ctx_0))))
(define syntax-debug-info-string
  (lambda (s_0 ctx_0)
    (let ((info_0
           (syntax-debug-info$1
            s_0
            (begin-unsafe
             (expand-context/inner-phase
              (root-expand-context/outer-inner ctx_0)))
            #f)))
      (if (not
           (let ((or-part_0 (pair? (hash-ref info_0 'bindings null))))
             (if or-part_0
               or-part_0
               (let ((lst_0 (hash-ref info_0 'fallbacks null)))
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (result_0 lst_1)
                         (begin
                           (if (pair? lst_1)
                             (let ((fb-info_0 (unsafe-car lst_1)))
                               (let ((rest_0 (unsafe-cdr lst_1)))
                                 (let ((result_1
                                        (let ((result_1
                                               (pair?
                                                (hash-ref
                                                 fb-info_0
                                                 'bindings
                                                 null))))
                                          (values result_1))))
                                   (if (if (not
                                            (let ((x_0 (list fb-info_0)))
                                              result_1))
                                         #t
                                         #f)
                                     (for-loop_0 result_1 rest_0)
                                     result_1))))
                             result_0))))))
                    (for-loop_0 #f lst_0)))))))
        ""
        (let ((relevant-scope-sets_0
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (info_1 layer_0)
                     (begin
                       (let ((app_0
                              (let ((app_0 (hash-ref info_1 'context)))
                                (cons
                                 app_0
                                 (reverse$1
                                  (let ((lst_0
                                         (hash-ref info_1 'bindings null)))
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (fold-var_0 lst_1)
                                            (begin
                                              (if (pair? lst_1)
                                                (let ((b_0 (unsafe-car lst_1)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_1)))
                                                    (let ((fold-var_1
                                                           (let ((fold-var_1
                                                                  (cons
                                                                   (hash-ref
                                                                    b_0
                                                                    'context)
                                                                   fold-var_0)))
                                                             (values
                                                              fold-var_1))))
                                                      (for-loop_0
                                                       fold-var_1
                                                       rest_0))))
                                                fold-var_0))))))
                                       (for-loop_0 null lst_0)))))))))
                         (apply
                          append
                          app_0
                          (let ((fallbacks_0
                                 (hash-ref info_1 'fallbacks null)))
                            (reverse$1
                             (let ((start_0 (add1 layer_0)))
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_0 pos_0)
                                       (begin
                                         (if (if (pair? lst_0) #t #f)
                                           (let ((fallback_0
                                                  (unsafe-car lst_0)))
                                             (let ((rest_0 (unsafe-cdr lst_0)))
                                               (let ((fold-var_1
                                                      (let ((fold-var_1
                                                             (cons
                                                              (loop_0
                                                               fallback_0
                                                               pos_0)
                                                              fold-var_0)))
                                                        (values fold-var_1))))
                                                 (for-loop_0
                                                  fold-var_1
                                                  rest_0
                                                  (+ pos_0 1)))))
                                           fold-var_0))))))
                                  (for-loop_0
                                   null
                                   fallbacks_0
                                   start_0)))))))))))))
                (loop_0 info_0 0))))
          (let ((common-scopes_0
                 (if (null? relevant-scope-sets_0)
                   (set)
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (s_1 lst_0)
                           (begin
                             (if (pair? lst_0)
                               (let ((l_0 (unsafe-car lst_0)))
                                 (let ((rest_0 (unsafe-cdr lst_0)))
                                   (let ((s_2
                                          (let ((s_2
                                                 (set-intersect
                                                  s_1
                                                  (list->set l_0))))
                                            (values s_2))))
                                     (for-loop_0 s_2 rest_0))))
                               s_1))))))
                      (for-loop_0
                       (list->set (car relevant-scope-sets_0))
                       relevant-scope-sets_0))))))
            (let ((app_0
                   (letrec*
                    ((loop_0
                      (|#%name|
                       loop
                       (lambda (info_1 layer_0)
                         (begin
                           (let ((app_0 (layer->string layer_0)))
                             (let ((app_1
                                    (describe-context
                                     (hash-ref info_1 'context)
                                     common-scopes_0)))
                               (let ((app_2
                                      (apply
                                       string-append
                                       (reverse$1
                                        (let ((lst_0
                                               (let ((temp1_0
                                                      (hash-ref
                                                       info_1
                                                       'bindings
                                                       null)))
                                                 (let ((temp2_0
                                                        (lambda (a_0 b_0)
                                                          (if (hash-ref
                                                               a_0
                                                               'match?
                                                               #f)
                                                            (not
                                                             (hash-ref
                                                              b_0
                                                              'match?
                                                              #f))
                                                            #f))))
                                                   (let ((temp1_1 temp1_0))
                                                     (sort.1
                                                      #f
                                                      #f
                                                      temp1_1
                                                      temp2_0))))))
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (fold-var_0 lst_1)
                                                  (begin
                                                    (if (pair? lst_1)
                                                      (let ((b_0
                                                             (unsafe-car
                                                              lst_1)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_1)))
                                                          (let ((fold-var_1
                                                                 (let ((fold-var_1
                                                                        (cons
                                                                         (let ((app_2
                                                                                (if (hash-ref
                                                                                     b_0
                                                                                     'match?
                                                                                     #f)
                                                                                  "matching"
                                                                                  "other")))
                                                                           (let ((app_3
                                                                                  (layer->string
                                                                                   layer_0)))
                                                                             (let ((app_4
                                                                                    (if (hash-ref
                                                                                         b_0
                                                                                         'local
                                                                                         #f)
                                                                                      "local"
                                                                                      (format
                                                                                       "~a"
                                                                                       (hash-ref
                                                                                        b_0
                                                                                        'module
                                                                                        #f)))))
                                                                               (string-append
                                                                                "\n  "
                                                                                app_2
                                                                                " binding"
                                                                                app_3
                                                                                "...:"
                                                                                "\n   "
                                                                                app_4
                                                                                (describe-context
                                                                                 (hash-ref
                                                                                  b_0
                                                                                  'context)
                                                                                 common-scopes_0)))))
                                                                         fold-var_0)))
                                                                   (values
                                                                    fold-var_1))))
                                                            (for-loop_0
                                                             fold-var_1
                                                             rest_0))))
                                                      fold-var_0))))))
                                             (for-loop_0 null lst_0))))))))
                                 (string-append
                                  "\n  context"
                                  app_0
                                  "...:"
                                  app_1
                                  app_2
                                  (let ((fallbacks_0
                                         (hash-ref info_1 'fallbacks null)))
                                    (apply
                                     string-append
                                     (reverse$1
                                      (let ((start_0 (add1 layer_0)))
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (fold-var_0 lst_0 pos_0)
                                                (begin
                                                  (if (if (pair? lst_0) #t #f)
                                                    (let ((fallback_0
                                                           (unsafe-car lst_0)))
                                                      (let ((rest_0
                                                             (unsafe-cdr
                                                              lst_0)))
                                                        (let ((fold-var_1
                                                               (let ((fold-var_1
                                                                      (cons
                                                                       (loop_0
                                                                        fallback_0
                                                                        pos_0)
                                                                       fold-var_0)))
                                                                 (values
                                                                  fold-var_1))))
                                                          (for-loop_0
                                                           fold-var_1
                                                           rest_0
                                                           (+ pos_0 1)))))
                                                    fold-var_0))))))
                                           (for-loop_0
                                            null
                                            fallbacks_0
                                            start_0))))))))))))))))
                    (loop_0 info_0 0))))
              (string-append
               app_0
               (if (begin-unsafe (zero? (hash-count common-scopes_0)))
                 ""
                 (string-append
                  "\n  common scopes...:"
                  (let ((app_1
                         (reverse$1
                          (let ((lst_0 (hash-ref info_0 'context)))
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (fold-var_0 lst_1)
                                    (begin
                                      (if (pair? lst_1)
                                        (let ((s_1 (unsafe-car lst_1)))
                                          (let ((rest_0 (unsafe-cdr lst_1)))
                                            (let ((fold-var_1
                                                   (if (begin-unsafe
                                                        (hash-ref
                                                         common-scopes_0
                                                         s_1
                                                         #f))
                                                     (let ((fold-var_1
                                                            (cons
                                                             s_1
                                                             fold-var_0)))
                                                       (values fold-var_1))
                                                     fold-var_0)))
                                              (for-loop_0 fold-var_1 rest_0))))
                                        fold-var_0))))))
                               (for-loop_0 null lst_0)))))))
                    (describe-context app_1 (set)))))))))))))
(define describe-context
  (lambda (scopes_0 common-scopes_0)
    (let ((strs_0
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (strs_0 scopes_1)
                 (begin
                   (if (null? scopes_1)
                     (reverse$1 strs_0)
                     (let ((str_0 (format " ~a" (car scopes_1))))
                       (if (if (pair? strs_0)
                             (<
                              (let ((app_0 (string-length str_0)))
                                (+ app_0 (string-length (car strs_0))))
                              72)
                             #f)
                         (let ((app_0
                                (let ((app_0
                                       (string-append (car strs_0) str_0)))
                                  (cons app_0 (cdr strs_0)))))
                           (loop_0 app_0 (cdr scopes_1)))
                         (let ((app_0 (cons str_0 strs_0)))
                           (loop_0 app_0 (cdr scopes_1)))))))))))
            (loop_0
             null
             (if (begin-unsafe (zero? (hash-count common-scopes_0)))
               scopes_0
               (let ((app_0
                      (reverse$1
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (fold-var_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((s_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((fold-var_1
                                              (if (not
                                                   (begin-unsafe
                                                    (hash-ref
                                                     common-scopes_0
                                                     s_0
                                                     #f)))
                                                (let ((fold-var_1
                                                       (cons s_0 fold-var_0)))
                                                  (values fold-var_1))
                                                fold-var_0)))
                                         (for-loop_0 fold-var_1 rest_0))))
                                   fold-var_0))))))
                          (for-loop_0 null scopes_0))))))
                 (append app_0 (list "[common scopes]"))))))))
      (if (null? strs_0)
        "\n   [empty]"
        (apply
         string-append
         (reverse$1
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (fold-var_0 lst_0)
                  (begin
                    (if (pair? lst_0)
                      (let ((str_0 (unsafe-car lst_0)))
                        (let ((rest_0 (unsafe-cdr lst_0)))
                          (let ((fold-var_1
                                 (let ((fold-var_1
                                        (cons
                                         (string-append "\n  " str_0)
                                         fold-var_0)))
                                   (values fold-var_1))))
                            (for-loop_0 fold-var_1 rest_0))))
                      fold-var_0))))))
             (for-loop_0 null strs_0)))))))))
(define layer->string
  (lambda (layer_0) (if (zero? layer_0) "" (format " at layer ~a" layer_0))))
(define raise-syntax-implicit-error
  (lambda (s_0 sym_0 trigger-id_0 ctx_0)
    (let ((phase_0
           (begin-unsafe
            (expand-context/inner-phase
             (root-expand-context/outer-inner ctx_0)))))
      (let ((what_0
             (if (eq? sym_0 '|#%app|)
               "function application"
               (if (eq? sym_0 '|#%datum|)
                 "literal data"
                 (if (eq? sym_0 '|#%top|)
                   (if (begin-unsafe
                        (expand-context/inner-allow-unbound?
                         (root-expand-context/outer-inner ctx_0)))
                     "reference to a top-level identifier"
                     "reference to an unbound identifier")
                   (void))))))
        (let ((unbound?_0
               (if trigger-id_0
                 (not (resolve.1 #f #f null #f trigger-id_0 phase_0))
                 #f)))
          (let ((unbound-form_0
                 (if unbound?_0
                   (if (not
                        (let ((app_0 (syntax-e$1 s_0)))
                          (eq? app_0 (syntax-e$1 trigger-id_0))))
                     s_0
                     #f)
                   #f)))
            (let ((app_0
                   (let ((app_0
                          (if unbound?_0
                            "unbound identifier;\n also, no ~a syntax transformer is bound~a"
                            (string-append
                             what_0
                             " is not allowed;\n no ~a syntax transformer is bound~a"))))
                     (format
                      app_0
                      sym_0
                      (if (eq? phase_0 0)
                        ""
                        (if (eq? phase_0 1)
                          " in the transformer phase"
                          (format " at phase ~a" phase_0)))))))
              (raise-syntax-error$1
               #f
               app_0
               (if unbound?_0
                 (if unbound-form_0 unbound-form_0 trigger-id_0)
                 #f)
               (if unbound?_0 (if unbound-form_0 trigger-id_0 #f) s_0)
               null
               (if unbound?_0
                 (syntax-debug-info-string trigger-id_0 ctx_0)
                 "")))))))))
(define make-check-no-duplicate-table (lambda () hash2610))
(define check-no-duplicate-ids.1
  (|#%name|
   check-no-duplicate-ids
   (lambda (what1_0 ids4_0 phase5_0 s6_0 ht3_0)
     (begin
       (let ((ht_0
              (if (eq? ht3_0 unsafe-undefined)
                (make-check-no-duplicate-table)
                ht3_0)))
         (let ((what_0
                (if (eq? what1_0 unsafe-undefined) "binding name" what1_0)))
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (v_0 ht_1)
                 (begin
                   (if (identifier? v_0)
                     (let ((l_0 (hash-ref ht_1 (syntax-e$1 v_0) null)))
                       (begin
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (lst_0)
                                 (begin
                                   (if (pair? lst_0)
                                     (let ((id_0 (unsafe-car lst_0)))
                                       (let ((rest_0 (unsafe-cdr lst_0)))
                                         (begin
                                           (if (bound-identifier=?$1
                                                id_0
                                                v_0
                                                phase5_0)
                                             (raise-syntax-error$1
                                              #f
                                              (string-append
                                               "duplicate "
                                               what_0)
                                              s6_0
                                              v_0)
                                             (void))
                                           (for-loop_0 rest_0))))
                                     (values)))))))
                            (for-loop_0 l_0)))
                         (void)
                         (let ((app_0 (syntax-e$1 v_0)))
                           (hash-set ht_1 app_0 (cons v_0 l_0)))))
                     (if (pair? v_0)
                       (let ((app_0 (cdr v_0)))
                         (loop_0 app_0 (loop_0 (car v_0) ht_1)))
                       ht_1)))))))
            (loop_0 ids4_0 ht_0))))))))
(define remove-use-site-scopes
  (lambda (s_0 ctx_0)
    (let ((use-sites_0
           (begin-unsafe (root-expand-context/outer-use-site-scopes ctx_0))))
      (if (if use-sites_0 (pair? (unbox use-sites_0)) #f)
        (if (syntax?$1 s_0)
          (remove-scopes s_0 (unbox use-sites_0))
          (reverse$1
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (fold-var_0 lst_0)
                   (begin
                     (if (pair? lst_0)
                       (let ((id_0 (unsafe-car lst_0)))
                         (let ((rest_0 (unsafe-cdr lst_0)))
                           (let ((fold-var_1
                                  (let ((fold-var_1
                                         (cons
                                          (remove-scopes
                                           id_0
                                           (unbox use-sites_0))
                                          fold-var_0)))
                                    (values fold-var_1))))
                             (for-loop_0 fold-var_1 rest_0))))
                       fold-var_0))))))
              (for-loop_0 null s_0)))))
        s_0))))
(define finish_2958
  (make-struct-type-install-properties
   '(compile-context)
   7
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6)
   #f
   'compile-context))
(define struct:compile-context
  (make-record-type-descriptor
   'compile-context
   #f
   (|#%nongenerative-uid| compile-context)
   #f
   #f
   '(7 . 0)))
(define effect_2620 (finish_2958 struct:compile-context))
(define compile-context1.1
  (|#%name|
   compile-context
   (record-constructor
    (make-record-constructor-descriptor struct:compile-context #f #f))))
(define compile-context?
  (|#%name| compile-context? (record-predicate struct:compile-context)))
(define compile-context-namespace
  (|#%name|
   compile-context-namespace
   (record-accessor struct:compile-context 0)))
(define compile-context-phase
  (|#%name| compile-context-phase (record-accessor struct:compile-context 1)))
(define compile-context-self
  (|#%name| compile-context-self (record-accessor struct:compile-context 2)))
(define compile-context-module-self
  (|#%name|
   compile-context-module-self
   (record-accessor struct:compile-context 3)))
(define compile-context-full-module-name
  (|#%name|
   compile-context-full-module-name
   (record-accessor struct:compile-context 4)))
(define compile-context-lazy-syntax-literals?
  (|#%name|
   compile-context-lazy-syntax-literals?
   (record-accessor struct:compile-context 5)))
(define compile-context-header
  (|#%name| compile-context-header (record-accessor struct:compile-context 6)))
(define make-compile-context.1
  (|#%name|
   make-compile-context
   (lambda (full-module-name6_0
            lazy-syntax-literals?7_0
            module-self5_0
            namespace2_0
            phase3_0
            self4_0)
     (begin
       (let ((namespace_0
              (if (eq? namespace2_0 unsafe-undefined)
                (1/current-namespace)
                namespace2_0)))
         (let ((phase_0
                (if (eq? phase3_0 unsafe-undefined)
                  (namespace-phase namespace_0)
                  phase3_0)))
           (let ((self_0
                  (if (eq? self4_0 unsafe-undefined)
                    (begin-unsafe
                     (let ((v_0 (namespace-get-root-expand-ctx namespace_0)))
                       (begin-unsafe
                        (root-expand-context/inner-self-mpi
                         (root-expand-context/outer-inner v_0)))))
                    self4_0)))
             (let ((lazy-syntax-literals?_0
                    (if (eq? lazy-syntax-literals?7_0 unsafe-undefined)
                      (if module-self5_0 #t #f)
                      lazy-syntax-literals?7_0)))
               (begin
                 (if (if module-self5_0 (not full-module-name6_0) #f)
                   (error
                    "internal error: module-self provided without full name")
                   (void))
                 (compile-context1.1
                  namespace_0
                  phase_0
                  self_0
                  module-self5_0
                  full-module-name6_0
                  lazy-syntax-literals?_0
                  #f))))))))))
(define kernel (primitive-table '|#%kernel|))
(define syntax?$3 (hash-ref kernel 'syntax?))
(define syntax-e$4 (hash-ref kernel 'syntax-e))
(define datum->syntax$4 (hash-ref kernel 'datum->syntax))
(define syntax->datum$4 (hash-ref kernel 'syntax->datum))
(define syntax-property$3 (hash-ref kernel 'syntax-property))
(define syntax-property-symbol-keys$3
  (hash-ref kernel 'syntax-property-symbol-keys))
(define syntax-source$3 (hash-ref kernel 'syntax-source))
(define syntax-line$3 (hash-ref kernel 'syntax-line))
(define syntax-column$3 (hash-ref kernel 'syntax-column))
(define syntax-position$3 (hash-ref kernel 'syntax-position))
(define syntax-span$3 (hash-ref kernel 'syntax-span))
(define correlated?$1
  (|#%name| correlated? (lambda (e_0) (begin (|#%app| syntax?$3 e_0)))))
(define datum->correlated$1
  (let ((datum->correlated_0
         (|#%name|
          datum->correlated
          (lambda (d3_0 srcloc1_0 props2_0)
            (begin (|#%app| datum->syntax$4 #f d3_0 srcloc1_0 props2_0))))))
    (|#%name|
     datum->correlated
     (case-lambda
      ((d_0) (begin (datum->correlated_0 d_0 #f #f)))
      ((d_0 srcloc_0 props2_0) (datum->correlated_0 d_0 srcloc_0 props2_0))
      ((d_0 srcloc1_0) (datum->correlated_0 d_0 srcloc1_0 #f))))))
(define correlated-e$1
  (|#%name| correlated-e (lambda (e_0) (begin (|#%app| syntax-e$4 e_0)))))
(define correlated-property$1
  (|#%name|
   correlated-property
   (case-lambda
    ((e_0 k_0) (begin (|#%app| syntax-property$3 e_0 k_0)))
    ((e_0 k_0 v_0) (|#%app| syntax-property$3 e_0 k_0 v_0)))))
(define correlated-property-symbol-keys$1
  (|#%name|
   correlated-property-symbol-keys
   (lambda (e_0) (begin (|#%app| syntax-property-symbol-keys$3 e_0)))))
(define correlated-source$1
  (|#%name|
   correlated-source
   (lambda (s_0) (begin (|#%app| syntax-source$3 s_0)))))
(define correlated-line$1
  (|#%name|
   correlated-line
   (lambda (s_0) (begin (|#%app| syntax-line$3 s_0)))))
(define correlated-column$1
  (|#%name|
   correlated-column
   (lambda (s_0) (begin (|#%app| syntax-column$3 s_0)))))
(define correlated-position$1
  (|#%name|
   correlated-position
   (lambda (s_0) (begin (|#%app| syntax-position$3 s_0)))))
(define correlated-span$1
  (|#%name|
   correlated-span
   (lambda (s_0) (begin (|#%app| syntax-span$3 s_0)))))
(define check-flvector
  (lambda (v_0)
    (if (flvector? v_0)
      (void)
      (raise-argument-error 'in-flvector* "flvector" v_0))))
(define not-an-fX.1$1
  (|#%name|
   not-an-fX
   (lambda (who_0 v_0) (begin (raise-argument-error who_0 "flonum?" v_0)))))
(define truncate-path
  (lambda (p_0)
    (call-with-values
     (lambda () (split-path p_0))
     (case-lambda
      ((base1_0 name1_0 dir?_0)
       (if (path-for-some-system? base1_0)
         (call-with-values
          (lambda () (split-path base1_0))
          (case-lambda
           ((base2_0 name2_0 dir?_1)
            (if (not base2_0)
              (path-for-some-system->string p_0)
              (if (symbol? name2_0)
                (string-append ".../" (path-elem->string name1_0))
                (let ((app_0 (path-for-some-system->string name2_0)))
                  (string-append
                   ".../"
                   app_0
                   "/"
                   (path-elem->string name1_0))))))
           (args (raise-binding-result-arity-error 3 args))))
         (if (eq? base1_0 'relative)
           (path-elem->string name1_0)
           (path-for-some-system->string p_0))))
      (args (raise-binding-result-arity-error 3 args))))))
(define path-elem->string
  (lambda (p_0)
    (if (eq? p_0 'same)
      "."
      (if (eq? p_0 'up) ".." (path-for-some-system->string p_0)))))
(define path-for-some-system->string
  (lambda (p_0)
    (if (path? p_0)
      (path->string p_0)
      (bytes->string/utf-8 (path->bytes p_0) '#\xfffd))))
(define make-path->relative-path-elements.1
  (|#%name|
   make-path->relative-path-elements
   (lambda (who1_0 wr-dir3_0)
     (begin
       (let ((wr-dir_0
              (if (eq? wr-dir3_0 unsafe-undefined)
                (current-write-relative-directory)
                wr-dir3_0)))
         (begin
           (if who1_0
             (if (let ((or-part_0 (not wr-dir_0)))
                   (if or-part_0
                     or-part_0
                     (let ((or-part_1
                            (if (path-string? wr-dir_0)
                              (complete-path? wr-dir_0)
                              #f)))
                       (if or-part_1
                         or-part_1
                         (if (pair? wr-dir_0)
                           (if (path-string? (car wr-dir_0))
                             (if (complete-path? (car wr-dir_0))
                               (if (path-string? (cdr wr-dir_0))
                                 (complete-path? (cdr wr-dir_0))
                                 #f)
                               #f)
                             #f)
                           #f)))))
               (void)
               (raise-argument-error
                who1_0
                (string-append
                 "(or/c (and/c path-string? complete-path?)\n"
                 "      (cons/c (and/c path-string? complete-path?)\n"
                 "              (and/c path-string? complete-path?))\n"
                 "      #f)")
                wr-dir_0))
             (void))
           (if (not wr-dir_0)
             (lambda (v_0) #f)
             (let ((exploded-base-dir_0 'not-ready))
               (let ((exploded-wrt-rel-dir_0 'not-ready))
                 (lambda (v_0)
                   (begin
                     (if (if (eq? exploded-base-dir_0 'not-ready)
                           (path? v_0)
                           #f)
                       (let ((wrt-dir_0
                              (if wr-dir_0
                                (if (pair? wr-dir_0) (car wr-dir_0) wr-dir_0)
                                #f)))
                         (let ((exploded-wrt-dir_0 (explode-path wrt-dir_0)))
                           (let ((base-dir_0
                                  (if wr-dir_0
                                    (if (pair? wr-dir_0)
                                      (cdr wr-dir_0)
                                      wr-dir_0)
                                    #f)))
                             (begin
                               (set! exploded-base-dir_0
                                 (if base-dir_0 (explode-path base-dir_0) #f))
                               (set! exploded-wrt-rel-dir_0
                                 (if (eq? base-dir_0 wrt-dir_0)
                                   '()
                                   (let ((exploded-wrt-dir_1
                                          (explode-path wrt-dir_0)))
                                     (let ((base-len_0
                                            (length exploded-base-dir_0)))
                                       (begin
                                         (if who1_0
                                           (if (if (>=
                                                    (length exploded-wrt-dir_1)
                                                    base-len_0)
                                                 (let ((lst_0
                                                        exploded-base-dir_0))
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (result_0
                                                                  lst_1
                                                                  lst_2)
                                                           (begin
                                                             (if (if (pair?
                                                                      lst_1)
                                                                   (pair?
                                                                    lst_2)
                                                                   #f)
                                                               (let ((a_0
                                                                      (unsafe-car
                                                                       lst_1)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_1)))
                                                                   (let ((b_0
                                                                          (unsafe-car
                                                                           lst_2)))
                                                                     (let ((rest_1
                                                                            (unsafe-cdr
                                                                             lst_2)))
                                                                       (let ((result_1
                                                                              (let ((result_1
                                                                                     (equal?
                                                                                      a_0
                                                                                      b_0)))
                                                                                (values
                                                                                 result_1))))
                                                                         (if (if (not
                                                                                  (let ((x_0
                                                                                         (list
                                                                                          a_0)))
                                                                                    (not
                                                                                     result_1)))
                                                                               (if (not
                                                                                    (let ((x_0
                                                                                           (list
                                                                                            b_0)))
                                                                                      (not
                                                                                       result_1)))
                                                                                 #t
                                                                                 #f)
                                                                               #f)
                                                                           (for-loop_0
                                                                            result_1
                                                                            rest_0
                                                                            rest_1)
                                                                           result_1))))))
                                                               result_0))))))
                                                      (for-loop_0
                                                       #t
                                                       exploded-wrt-dir_1
                                                       lst_0))))
                                                 #f)
                                             (void)
                                             (raise-arguments-error
                                              who1_0
                                              "relative-directory pair's first path does not extend second path"
                                              "first path"
                                              wrt-dir_0
                                              "second path"
                                              base-dir_0))
                                           (void))
                                         (list-tail
                                          exploded-wrt-dir_1
                                          base-len_0))))))))))
                       (void))
                     (if exploded-base-dir_0
                       (if (path? v_0)
                         (let ((exploded_0 (explode-path v_0)))
                           (if (let ((lst_0 exploded-base-dir_0))
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (result_0 lst_1 lst_2)
                                         (begin
                                           (if (if (pair? lst_1)
                                                 (pair? lst_2)
                                                 #f)
                                             (let ((base-p_0
                                                    (unsafe-car lst_1)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_1)))
                                                 (let ((p_0
                                                        (unsafe-car lst_2)))
                                                   (let ((rest_1
                                                          (unsafe-cdr lst_2)))
                                                     (let ((result_1
                                                            (let ((result_1
                                                                   (equal?
                                                                    base-p_0
                                                                    p_0)))
                                                              (values
                                                               result_1))))
                                                       (if (if (not
                                                                (let ((x_0
                                                                       (list
                                                                        base-p_0)))
                                                                  (not
                                                                   result_1)))
                                                             (if (not
                                                                  (let ((x_0
                                                                         (list
                                                                          p_0)))
                                                                    (not
                                                                     result_1)))
                                                               #t
                                                               #f)
                                                             #f)
                                                         (for-loop_0
                                                          result_1
                                                          rest_0
                                                          rest_1)
                                                         result_1))))))
                                             result_0))))))
                                    (for-loop_0 #t lst_0 exploded_0))))
                             (if (let ((app_0 (length exploded_0)))
                                   (>= app_0 (length exploded-base-dir_0)))
                               (letrec*
                                ((loop_0
                                  (|#%name|
                                   loop
                                   (lambda (exploded-wrt-rel-dir_1 rel_0)
                                     (begin
                                       (if (null? exploded-wrt-rel-dir_1)
                                         (reverse$1
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (fold-var_0 lst_0)
                                                  (begin
                                                    (if (pair? lst_0)
                                                      (let ((p_0
                                                             (unsafe-car
                                                              lst_0)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_0)))
                                                          (let ((fold-var_1
                                                                 (let ((fold-var_1
                                                                        (cons
                                                                         (if (path?
                                                                              p_0)
                                                                           (path-element->bytes
                                                                            p_0)
                                                                           p_0)
                                                                         fold-var_0)))
                                                                   (values
                                                                    fold-var_1))))
                                                            (for-loop_0
                                                             fold-var_1
                                                             rest_0))))
                                                      fold-var_0))))))
                                             (for-loop_0 null rel_0))))
                                         (if (if (pair? rel_0)
                                               (let ((app_0 (car rel_0)))
                                                 (equal?
                                                  app_0
                                                  (car
                                                   exploded-wrt-rel-dir_1)))
                                               #f)
                                           (let ((app_0
                                                  (cdr
                                                   exploded-wrt-rel-dir_1)))
                                             (loop_0 app_0 (cdr rel_0)))
                                           (let ((app_0
                                                  (reverse$1
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (fold-var_0
                                                                  lst_0)
                                                           (begin
                                                             (if (pair? lst_0)
                                                               (let ((p_0
                                                                      (unsafe-car
                                                                       lst_0)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_0)))
                                                                   (let ((fold-var_1
                                                                          (cons
                                                                           'up
                                                                           fold-var_0)))
                                                                     (let ((fold-var_2
                                                                            (values
                                                                             fold-var_1)))
                                                                       (for-loop_0
                                                                        fold-var_2
                                                                        rest_0)))))
                                                               fold-var_0))))))
                                                      (for-loop_0
                                                       null
                                                       exploded-wrt-rel-dir_1))))))
                                             (append
                                              app_0
                                              (reverse$1
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (fold-var_0 lst_0)
                                                       (begin
                                                         (if (pair? lst_0)
                                                           (let ((p_0
                                                                  (unsafe-car
                                                                   lst_0)))
                                                             (let ((rest_0
                                                                    (unsafe-cdr
                                                                     lst_0)))
                                                               (let ((fold-var_1
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              (if (path?
                                                                                   p_0)
                                                                                (path-element->bytes
                                                                                 p_0)
                                                                                p_0)
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))))
                                                                 (for-loop_0
                                                                  fold-var_1
                                                                  rest_0))))
                                                           fold-var_0))))))
                                                  (for-loop_0
                                                   null
                                                   rel_0)))))))))))))
                                (let ((app_0 exploded-wrt-rel-dir_0))
                                  (loop_0
                                   app_0
                                   (list-tail
                                    exploded_0
                                    (length exploded-base-dir_0)))))
                               #f)
                             #f))
                         #f)
                       #f))))))))))))
(define 1/write-byte
  (|#%name|
   write-byte
   (lambda (byte_0 out_0) (begin (write-byte byte_0 out_0)))))
(define 1/write-bytes
  (let ((write-bytes_0
         (|#%name|
          write-bytes
          (lambda (bstr3_0 out4_0 start-pos1_0 end-pos2_0)
            (begin
              (let ((end-pos_0
                     (if (eq? end-pos2_0 unsafe-undefined)
                       (unsafe-bytes-length bstr3_0)
                       end-pos2_0)))
                (write-bytes bstr3_0 out4_0 start-pos1_0 end-pos_0)))))))
    (|#%name|
     write-bytes
     (case-lambda
      ((bstr_0 out_0) (begin (write-bytes_0 bstr_0 out_0 0 unsafe-undefined)))
      ((bstr_0 out_0 start-pos_0 end-pos2_0)
       (write-bytes_0 bstr_0 out_0 start-pos_0 end-pos2_0))
      ((bstr_0 out_0 start-pos1_0)
       (write-bytes_0 bstr_0 out_0 start-pos1_0 unsafe-undefined))))))
(define fasl-graph-def-type 1)
(define fasl-graph-ref-type 2)
(define fasl-false-type 3)
(define fasl-true-type 4)
(define fasl-null-type 5)
(define fasl-void-type 6)
(define fasl-eof-type 7)
(define fasl-integer-type 8)
(define fasl-flonum-type 9)
(define fasl-single-flonum-type 10)
(define fasl-rational-type 11)
(define fasl-complex-type 12)
(define fasl-char-type 13)
(define fasl-symbol-type 14)
(define fasl-unreadable-symbol-type 15)
(define fasl-uninterned-symbol-type 16)
(define fasl-keyword-type 17)
(define fasl-string-type 18)
(define fasl-immutable-string-type 19)
(define fasl-bytes-type 20)
(define fasl-immutable-bytes-type 21)
(define fasl-path-type 22)
(define fasl-relative-path-type 23)
(define fasl-pregexp-type 24)
(define fasl-regexp-type 25)
(define fasl-byte-pregexp-type 26)
(define fasl-byte-regexp-type 27)
(define fasl-list-type 28)
(define fasl-list*-type 29)
(define fasl-pair-type 30)
(define fasl-vector-type 31)
(define fasl-immutable-vector-type 32)
(define fasl-box-type 33)
(define fasl-immutable-box-type 34)
(define fasl-prefab-type 35)
(define fasl-hash-type 36)
(define fasl-immutable-hash-type 37)
(define fasl-srcloc-type 38)
(define fasl-extflonum-type 39)
(define fasl-correlated-type 40)
(define fasl-undefined-type 41)
(define fasl-prefab-type-type 42)
(define fasl-fxvector-type 43)
(define fasl-flvector-type 44)
(define fasl-small-integer-start 100)
(define fasl-lowest-small-integer -10)
(define fasl-highest-small-integer 144)
(define fasl-prefix #vu8(114 97 99 107 101 116 47 102 97 115 108 58))
(define fasl-prefix-length (unsafe-bytes-length fasl-prefix))
(define fasl-hash-eq-variant 0)
(define fasl-hash-equal-variant 1)
(define fasl-hash-eqv-variant 2)
(define fasl-hash-equal-always-variant 3)
(define s-exp->fasl.1
  (|#%name|
   s-exp->fasl
   (lambda (external-lift?7_0
            handle-fail6_0
            keep-mutable?5_0
            skip-prefix?8_0
            v14_0
            orig-o13_0)
     (begin
       (begin
         (if orig-o13_0
           (if (output-port? orig-o13_0)
             (void)
             (raise-argument-error
              's-exp->fasl
              "(or/c output-port? #f)"
              orig-o13_0))
           (void))
         (begin
           (if handle-fail6_0
             (if (if (procedure? handle-fail6_0)
                   (procedure-arity-includes? handle-fail6_0 1)
                   #f)
               (void)
               (raise-argument-error
                's-exp->fasl
                "(or/c (procedure-arity-includes/c 1) #f)"
                handle-fail6_0))
             (void))
           (begin
             (if external-lift?7_0
               (if (if (procedure? external-lift?7_0)
                     (procedure-arity-includes? external-lift?7_0 1)
                     #f)
                 (void)
                 (raise-argument-error
                  's-exp->fasl
                  "(or/c (procedure-arity-includes/c 1) #f)"
                  external-lift?7_0))
               (void))
             (let ((o_0 (if orig-o13_0 orig-o13_0 (open-output-bytes))))
               (let ((shared_0 (make-hasheq)))
                 (let ((external-lift_0
                        (if external-lift?7_0 (make-hasheq) #f)))
                   (let ((shared-counter_0 0))
                     (begin
                       (letrec*
                        ((loop_0
                          (|#%name|
                           loop
                           (lambda (v_0)
                             (begin
                               (if (if external-lift_0
                                     (hash-ref external-lift_0 v_0 #f)
                                     #f)
                                 (void)
                                 (if (if external-lift?7_0
                                       (|#%app| external-lift?7_0 v_0)
                                       #f)
                                   (begin
                                     (hash-set! external-lift_0 v_0 #t)
                                     (set! shared-counter_0
                                       (add1 shared-counter_0))
                                     (hash-set!
                                      shared_0
                                      v_0
                                      (- shared-counter_0)))
                                   (if (let ((or-part_0 (symbol? v_0)))
                                         (if or-part_0
                                           or-part_0
                                           (let ((or-part_1 (keyword? v_0)))
                                             (if or-part_1
                                               or-part_1
                                               (let ((or-part_2 (string? v_0)))
                                                 (if or-part_2
                                                   or-part_2
                                                   (let ((or-part_3
                                                          (bytes? v_0)))
                                                     (if or-part_3
                                                       or-part_3
                                                       (let ((or-part_4
                                                              (fxvector? v_0)))
                                                         (if or-part_4
                                                           or-part_4
                                                           (let ((or-part_5
                                                                  (flvector?
                                                                   v_0)))
                                                             (if or-part_5
                                                               or-part_5
                                                               (path?
                                                                v_0)))))))))))))
                                     (begin-unsafe
                                      (do-hash-update
                                       'hash-update!
                                       #t
                                       hash-set!
                                       shared_0
                                       v_0
                                       add1
                                       0))
                                     (if (pair? v_0)
                                       (begin
                                         (loop_0 (car v_0))
                                         (loop_0 (cdr v_0)))
                                       (if (vector? v_0)
                                         (begin
                                           (call-with-values
                                            (lambda ()
                                              (begin
                                                (check-vector v_0)
                                                (values
                                                 v_0
                                                 (unsafe-vector-length v_0))))
                                            (case-lambda
                                             ((vec_0 len_0)
                                              (begin
                                                #f
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (pos_0)
                                                      (begin
                                                        (if (unsafe-fx<
                                                             pos_0
                                                             len_0)
                                                          (let ((e_0
                                                                 (unsafe-vector-ref
                                                                  vec_0
                                                                  pos_0)))
                                                            (begin
                                                              (loop_0 e_0)
                                                              (for-loop_0
                                                               (unsafe-fx+
                                                                1
                                                                pos_0))))
                                                          (values)))))))
                                                 (for-loop_0 0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (void))
                                         (if (hash? v_0)
                                           (hash-for-each
                                            v_0
                                            (lambda (k_0 v_1)
                                              (begin
                                                (loop_0 k_0)
                                                (loop_0 v_1)))
                                            #t)
                                           (if (box? v_0)
                                             (loop_0 (unbox v_0))
                                             (let ((c2_0
                                                    (prefab-struct-key v_0)))
                                               (if c2_0
                                                 (begin
                                                   (loop_0 c2_0)
                                                   (call-with-values
                                                    (lambda ()
                                                      (unsafe-normalise-inputs
                                                       unsafe-vector-length
                                                       (struct->vector v_0)
                                                       1
                                                       #f
                                                       1))
                                                    (case-lambda
                                                     ((v*_0
                                                       start*_0
                                                       stop*_0
                                                       step*_0)
                                                      (begin
                                                        #t
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (idx_0)
                                                              (begin
                                                                (if (unsafe-fx<
                                                                     idx_0
                                                                     stop*_0)
                                                                  (let ((e_0
                                                                         (unsafe-vector-ref
                                                                          v*_0
                                                                          idx_0)))
                                                                    (begin
                                                                      (loop_0
                                                                       e_0)
                                                                      (for-loop_0
                                                                       (unsafe-fx+
                                                                        idx_0
                                                                        1))))
                                                                  (values)))))))
                                                         (for-loop_0
                                                          start*_0))))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       4
                                                       args))))
                                                   (void))
                                                 (if (srcloc? v_0)
                                                   (loop_0 (srcloc-source v_0))
                                                   (if (begin-unsafe
                                                        (|#%app|
                                                         syntax?$3
                                                         v_0))
                                                     (begin
                                                       (loop_0
                                                        (begin-unsafe
                                                         (|#%app|
                                                          syntax-e$4
                                                          v_0)))
                                                       (loop_0
                                                        (begin-unsafe
                                                         (|#%app|
                                                          syntax-source$3
                                                          v_0)))
                                                       (let ((lst_0
                                                              (begin-unsafe
                                                               (|#%app|
                                                                syntax-property-symbol-keys$3
                                                                v_0))))
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_0
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (lst_1)
                                                                 (begin
                                                                   (if (pair?
                                                                        lst_1)
                                                                     (let ((k_0
                                                                            (unsafe-car
                                                                             lst_1)))
                                                                       (let ((rest_0
                                                                              (unsafe-cdr
                                                                               lst_1)))
                                                                         (begin
                                                                           (begin
                                                                             (loop_0
                                                                              k_0)
                                                                             (loop_0
                                                                              (begin-unsafe
                                                                               (|#%app|
                                                                                syntax-property$3
                                                                                v_0
                                                                                k_0))))
                                                                           (for-loop_0
                                                                            rest_0))))
                                                                     (values)))))))
                                                            (for-loop_0
                                                             lst_0))))
                                                       (void))
                                                     (let ((c1_0
                                                            (if (struct-type?
                                                                 v_0)
                                                              (prefab-struct-type-key+field-count
                                                               v_0)
                                                              #f)))
                                                       (if c1_0
                                                         (begin
                                                           (loop_0 (car c1_0))
                                                           (loop_0 (cdr c1_0)))
                                                         (void)))))))))))))))))))
                        (loop_0 v14_0))
                       (let ((treat-immutable?_0
                              (|#%name|
                               treat-immutable?
                               (lambda (v_0)
                                 (begin
                                   (let ((or-part_0 (not keep-mutable?5_0)))
                                     (if or-part_0
                                       or-part_0
                                       (immutable? v_0))))))))
                         (let ((path->relative-path-elements_0
                                (make-path->relative-path-elements.1
                                 #f
                                 unsafe-undefined)))
                           (begin
                             (if skip-prefix?8_0
                               (void)
                               (1/write-bytes fasl-prefix o_0))
                             (let ((bstr_0
                                    (let ((o_1 (open-output-bytes)))
                                      (begin
                                        (letrec*
                                         ((loop_0
                                           (|#%name|
                                            loop
                                            (lambda (v_0)
                                              (begin
                                                (if (not
                                                     (eq?
                                                      (hash-ref shared_0 v_0 1)
                                                      1))
                                                  (let ((c_0
                                                         (hash-ref
                                                          shared_0
                                                          v_0)))
                                                    (if (negative? c_0)
                                                      (begin
                                                        (begin-unsafe
                                                         (write-byte 2 o_1))
                                                        (write-fasl-integer
                                                         (sub1 (- c_0))
                                                         o_1))
                                                      (let ((pos_0
                                                             shared-counter_0))
                                                        (begin
                                                          (set! shared-counter_0
                                                            (add1
                                                             shared-counter_0))
                                                          (begin-unsafe
                                                           (write-byte 1 o_1))
                                                          (write-fasl-integer
                                                           pos_0
                                                           o_1)
                                                          (hash-remove!
                                                           shared_0
                                                           v_0)
                                                          (loop_0 v_0)
                                                          (hash-set!
                                                           shared_0
                                                           v_0
                                                           (-
                                                            (add1 pos_0)))))))
                                                  (if (not v_0)
                                                    (begin-unsafe
                                                     (write-byte 3 o_1))
                                                    (if (eq? v_0 #t)
                                                      (begin-unsafe
                                                       (write-byte 4 o_1))
                                                      (if (null? v_0)
                                                        (begin-unsafe
                                                         (write-byte 5 o_1))
                                                        (if (void? v_0)
                                                          (begin-unsafe
                                                           (write-byte 6 o_1))
                                                          (if (eof-object? v_0)
                                                            (begin-unsafe
                                                             (write-byte
                                                              7
                                                              o_1))
                                                            (if (exact-integer?
                                                                 v_0)
                                                              (if (<=
                                                                   -10
                                                                   v_0
                                                                   144)
                                                                (let ((byte_0
                                                                       (+
                                                                        100
                                                                        (-
                                                                         v_0
                                                                         -10))))
                                                                  (begin-unsafe
                                                                   (write-byte
                                                                    byte_0
                                                                    o_1)))
                                                                (begin
                                                                  (begin-unsafe
                                                                   (write-byte
                                                                    8
                                                                    o_1))
                                                                  (write-fasl-integer
                                                                   v_0
                                                                   o_1)))
                                                              (if (flonum? v_0)
                                                                (begin
                                                                  (begin-unsafe
                                                                   (write-byte
                                                                    9
                                                                    o_1))
                                                                  (write-fasl-flonum
                                                                   v_0
                                                                   o_1))
                                                                (if (single-flonum?
                                                                     v_0)
                                                                  (begin
                                                                    (begin-unsafe
                                                                     (write-byte
                                                                      10
                                                                      o_1))
                                                                    (1/write-bytes
                                                                     (if (eqv?
                                                                          v_0
                                                                          (real->single-flonum
                                                                           +nan.0))
                                                                       #vu8(0 0 192 127)
                                                                       (real->floating-point-bytes
                                                                        v_0
                                                                        4
                                                                        #f))
                                                                     o_1))
                                                                  (if (extflonum?
                                                                       v_0)
                                                                    (begin
                                                                      (begin-unsafe
                                                                       (write-byte
                                                                        39
                                                                        o_1))
                                                                      (let ((bstr_0
                                                                             (string->bytes/utf-8
                                                                              (format
                                                                               "~a"
                                                                               v_0))))
                                                                        (begin
                                                                          (write-fasl-integer
                                                                           (unsafe-bytes-length
                                                                            bstr_0)
                                                                           o_1)
                                                                          (1/write-bytes
                                                                           bstr_0
                                                                           o_1))))
                                                                    (if (rational?
                                                                         v_0)
                                                                      (begin
                                                                        (begin-unsafe
                                                                         (write-byte
                                                                          11
                                                                          o_1))
                                                                        (loop_0
                                                                         (numerator
                                                                          v_0))
                                                                        (loop_0
                                                                         (denominator
                                                                          v_0)))
                                                                      (if (complex?
                                                                           v_0)
                                                                        (begin
                                                                          (begin-unsafe
                                                                           (write-byte
                                                                            12
                                                                            o_1))
                                                                          (loop_0
                                                                           (real-part
                                                                            v_0))
                                                                          (loop_0
                                                                           (imag-part
                                                                            v_0)))
                                                                        (if (char?
                                                                             v_0)
                                                                          (begin
                                                                            (begin-unsafe
                                                                             (write-byte
                                                                              13
                                                                              o_1))
                                                                            (write-fasl-integer
                                                                             (char->integer
                                                                              v_0)
                                                                             o_1))
                                                                          (if (symbol?
                                                                               v_0)
                                                                            (begin
                                                                              (if (symbol-interned?
                                                                                   v_0)
                                                                                (begin-unsafe
                                                                                 (write-byte
                                                                                  14
                                                                                  o_1))
                                                                                (if (symbol-unreadable?
                                                                                     v_0)
                                                                                  (begin-unsafe
                                                                                   (write-byte
                                                                                    15
                                                                                    o_1))
                                                                                  (begin-unsafe
                                                                                   (write-byte
                                                                                    16
                                                                                    o_1))))
                                                                              (let ((bstr_0
                                                                                     (string->bytes/utf-8
                                                                                      (symbol->string
                                                                                       v_0))))
                                                                                (begin
                                                                                  (write-fasl-integer
                                                                                   (unsafe-bytes-length
                                                                                    bstr_0)
                                                                                   o_1)
                                                                                  (1/write-bytes
                                                                                   bstr_0
                                                                                   o_1))))
                                                                            (if (keyword?
                                                                                 v_0)
                                                                              (begin
                                                                                (begin-unsafe
                                                                                 (write-byte
                                                                                  17
                                                                                  o_1))
                                                                                (let ((bstr_0
                                                                                       (string->bytes/utf-8
                                                                                        (keyword->string
                                                                                         v_0))))
                                                                                  (begin
                                                                                    (write-fasl-integer
                                                                                     (unsafe-bytes-length
                                                                                      bstr_0)
                                                                                     o_1)
                                                                                    (1/write-bytes
                                                                                     bstr_0
                                                                                     o_1))))
                                                                              (if (string?
                                                                                   v_0)
                                                                                (begin
                                                                                  (write-fasl-integer
                                                                                   (if (treat-immutable?_0
                                                                                        v_0)
                                                                                     19
                                                                                     18)
                                                                                   o_1)
                                                                                  (write-fasl-string
                                                                                   v_0
                                                                                   o_1))
                                                                                (if (bytes?
                                                                                     v_0)
                                                                                  (begin
                                                                                    (write-fasl-integer
                                                                                     (if (treat-immutable?_0
                                                                                          v_0)
                                                                                       21
                                                                                       20)
                                                                                     o_1)
                                                                                    (write-fasl-bytes
                                                                                     v_0
                                                                                     o_1))
                                                                                  (if (path-for-some-system?
                                                                                       v_0)
                                                                                    (let ((rel-elems_0
                                                                                           (|#%app|
                                                                                            path->relative-path-elements_0
                                                                                            v_0)))
                                                                                      (if rel-elems_0
                                                                                        (begin
                                                                                          (begin-unsafe
                                                                                           (write-byte
                                                                                            23
                                                                                            o_1))
                                                                                          (loop_0
                                                                                           rel-elems_0))
                                                                                        (begin
                                                                                          (begin-unsafe
                                                                                           (write-byte
                                                                                            22
                                                                                            o_1))
                                                                                          (write-fasl-bytes
                                                                                           (path->bytes
                                                                                            v_0)
                                                                                           o_1)
                                                                                          (loop_0
                                                                                           (path-convention-type
                                                                                            v_0)))))
                                                                                    (if (if (srcloc?
                                                                                             v_0)
                                                                                          (let ((src_0
                                                                                                 (srcloc-source
                                                                                                  v_0)))
                                                                                            (let ((or-part_0
                                                                                                   (not
                                                                                                    src_0)))
                                                                                              (if or-part_0
                                                                                                or-part_0
                                                                                                (let ((or-part_1
                                                                                                       (path-for-some-system?
                                                                                                        src_0)))
                                                                                                  (if or-part_1
                                                                                                    or-part_1
                                                                                                    (let ((or-part_2
                                                                                                           (string?
                                                                                                            src_0)))
                                                                                                      (if or-part_2
                                                                                                        or-part_2
                                                                                                        (let ((or-part_3
                                                                                                               (bytes?
                                                                                                                src_0)))
                                                                                                          (if or-part_3
                                                                                                            or-part_3
                                                                                                            (symbol?
                                                                                                             src_0))))))))))
                                                                                          #f)
                                                                                      (let ((src_0
                                                                                             (srcloc-source
                                                                                              v_0)))
                                                                                        (let ((new-src_0
                                                                                               (if (if (path?
                                                                                                        src_0)
                                                                                                     (not
                                                                                                      (|#%app|
                                                                                                       path->relative-path-elements_0
                                                                                                       src_0))
                                                                                                     #f)
                                                                                                 (truncate-path
                                                                                                  src_0)
                                                                                                 src_0)))
                                                                                          (begin
                                                                                            (write-fasl-integer
                                                                                             38
                                                                                             o_1)
                                                                                            (loop_0
                                                                                             new-src_0)
                                                                                            (loop_0
                                                                                             (srcloc-line
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (srcloc-column
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (srcloc-position
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (srcloc-span
                                                                                              v_0)))))
                                                                                      (if (pair?
                                                                                           v_0)
                                                                                        (if (pair?
                                                                                             (cdr
                                                                                              v_0))
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (letrec*
                                                                                              ((loop_1
                                                                                                (|#%name|
                                                                                                 loop
                                                                                                 (lambda (v_1
                                                                                                          len_0)
                                                                                                   (begin
                                                                                                     (if (null?
                                                                                                          v_1)
                                                                                                       (values
                                                                                                        len_0
                                                                                                        #t)
                                                                                                       (if (pair?
                                                                                                            v_1)
                                                                                                         (let ((app_0
                                                                                                                (cdr
                                                                                                                 v_1)))
                                                                                                           (loop_1
                                                                                                            app_0
                                                                                                            (add1
                                                                                                             len_0)))
                                                                                                         (values
                                                                                                          len_0
                                                                                                          #f))))))))
                                                                                              (loop_1
                                                                                               v_0
                                                                                               0)))
                                                                                           (case-lambda
                                                                                            ((n_0
                                                                                              normal-list?_0)
                                                                                             (begin
                                                                                               (let ((byte_0
                                                                                                      (if normal-list?_0
                                                                                                        28
                                                                                                        29)))
                                                                                                 (begin-unsafe
                                                                                                  (write-byte
                                                                                                   byte_0
                                                                                                   o_1)))
                                                                                               (write-fasl-integer
                                                                                                n_0
                                                                                                o_1)
                                                                                               (letrec*
                                                                                                ((ploop_0
                                                                                                  (|#%name|
                                                                                                   ploop
                                                                                                   (lambda (v_1)
                                                                                                     (begin
                                                                                                       (if (pair?
                                                                                                            v_1)
                                                                                                         (begin
                                                                                                           (loop_0
                                                                                                            (car
                                                                                                             v_1))
                                                                                                           (ploop_0
                                                                                                            (cdr
                                                                                                             v_1)))
                                                                                                         (if normal-list?_0
                                                                                                           (void)
                                                                                                           (loop_0
                                                                                                            v_1))))))))
                                                                                                (ploop_0
                                                                                                 v_0))))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args))))
                                                                                          (begin
                                                                                            (begin-unsafe
                                                                                             (write-byte
                                                                                              30
                                                                                              o_1))
                                                                                            (loop_0
                                                                                             (car
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (cdr
                                                                                              v_0))))
                                                                                        (if (vector?
                                                                                             v_0)
                                                                                          (begin
                                                                                            (let ((byte_0
                                                                                                   (if (treat-immutable?_0
                                                                                                        v_0)
                                                                                                     32
                                                                                                     31)))
                                                                                              (begin-unsafe
                                                                                               (write-byte
                                                                                                byte_0
                                                                                                o_1)))
                                                                                            (write-fasl-integer
                                                                                             (vector-length
                                                                                              v_0)
                                                                                             o_1)
                                                                                            (call-with-values
                                                                                             (lambda ()
                                                                                               (begin
                                                                                                 (check-vector
                                                                                                  v_0)
                                                                                                 (values
                                                                                                  v_0
                                                                                                  (unsafe-vector-length
                                                                                                   v_0))))
                                                                                             (case-lambda
                                                                                              ((vec_0
                                                                                                len_0)
                                                                                               (begin
                                                                                                 #f
                                                                                                 (letrec*
                                                                                                  ((for-loop_0
                                                                                                    (|#%name|
                                                                                                     for-loop
                                                                                                     (lambda (pos_0)
                                                                                                       (begin
                                                                                                         (if (unsafe-fx<
                                                                                                              pos_0
                                                                                                              len_0)
                                                                                                           (let ((e_0
                                                                                                                  (unsafe-vector-ref
                                                                                                                   vec_0
                                                                                                                   pos_0)))
                                                                                                             (begin
                                                                                                               (loop_0
                                                                                                                e_0)
                                                                                                               (for-loop_0
                                                                                                                (unsafe-fx+
                                                                                                                 1
                                                                                                                 pos_0))))
                                                                                                           (values)))))))
                                                                                                  (for-loop_0
                                                                                                   0))))
                                                                                              (args
                                                                                               (raise-binding-result-arity-error
                                                                                                2
                                                                                                args))))
                                                                                            (void))
                                                                                          (if (flvector?
                                                                                               v_0)
                                                                                            (begin
                                                                                              (begin-unsafe
                                                                                               (write-byte
                                                                                                44
                                                                                                o_1))
                                                                                              (write-fasl-integer
                                                                                               (flvector-length
                                                                                                v_0)
                                                                                               o_1)
                                                                                              (call-with-values
                                                                                               (lambda ()
                                                                                                 (begin
                                                                                                   (check-flvector
                                                                                                    v_0)
                                                                                                   (values
                                                                                                    v_0
                                                                                                    (unsafe-flvector-length
                                                                                                     v_0))))
                                                                                               (case-lambda
                                                                                                ((vec_0
                                                                                                  len_0)
                                                                                                 (begin
                                                                                                   #f
                                                                                                   (letrec*
                                                                                                    ((for-loop_0
                                                                                                      (|#%name|
                                                                                                       for-loop
                                                                                                       (lambda (pos_0)
                                                                                                         (begin
                                                                                                           (if (unsafe-fx<
                                                                                                                pos_0
                                                                                                                len_0)
                                                                                                             (let ((e_0
                                                                                                                    (unsafe-flvector-ref
                                                                                                                     vec_0
                                                                                                                     pos_0)))
                                                                                                               (begin
                                                                                                                 (write-fasl-flonum
                                                                                                                  e_0
                                                                                                                  o_1)
                                                                                                                 (for-loop_0
                                                                                                                  (unsafe-fx+
                                                                                                                   1
                                                                                                                   pos_0))))
                                                                                                             (values)))))))
                                                                                                    (for-loop_0
                                                                                                     0))))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  2
                                                                                                  args))))
                                                                                              (void))
                                                                                            (if (fxvector?
                                                                                                 v_0)
                                                                                              (begin
                                                                                                (begin-unsafe
                                                                                                 (write-byte
                                                                                                  43
                                                                                                  o_1))
                                                                                                (write-fasl-integer
                                                                                                 (fxvector-length
                                                                                                  v_0)
                                                                                                 o_1)
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (begin
                                                                                                     (check-fxvector
                                                                                                      v_0)
                                                                                                     (values
                                                                                                      v_0
                                                                                                      (unsafe-fxvector-length
                                                                                                       v_0))))
                                                                                                 (case-lambda
                                                                                                  ((vec_0
                                                                                                    len_0)
                                                                                                   (begin
                                                                                                     #f
                                                                                                     (letrec*
                                                                                                      ((for-loop_0
                                                                                                        (|#%name|
                                                                                                         for-loop
                                                                                                         (lambda (pos_0)
                                                                                                           (begin
                                                                                                             (if (unsafe-fx<
                                                                                                                  pos_0
                                                                                                                  len_0)
                                                                                                               (let ((e_0
                                                                                                                      (unsafe-fxvector-ref
                                                                                                                       vec_0
                                                                                                                       pos_0)))
                                                                                                                 (begin
                                                                                                                   (write-fasl-integer
                                                                                                                    e_0
                                                                                                                    o_1)
                                                                                                                   (for-loop_0
                                                                                                                    (unsafe-fx+
                                                                                                                     1
                                                                                                                     pos_0))))
                                                                                                               (values)))))))
                                                                                                      (for-loop_0
                                                                                                       0))))
                                                                                                  (args
                                                                                                   (raise-binding-result-arity-error
                                                                                                    2
                                                                                                    args))))
                                                                                                (void))
                                                                                              (if (box?
                                                                                                   v_0)
                                                                                                (begin
                                                                                                  (let ((byte_0
                                                                                                         (if (treat-immutable?_0
                                                                                                              v_0)
                                                                                                           34
                                                                                                           33)))
                                                                                                    (begin-unsafe
                                                                                                     (write-byte
                                                                                                      byte_0
                                                                                                      o_1)))
                                                                                                  (loop_0
                                                                                                   (unbox
                                                                                                    v_0)))
                                                                                                (let ((c4_0
                                                                                                       (prefab-struct-key
                                                                                                        v_0)))
                                                                                                  (if c4_0
                                                                                                    (begin
                                                                                                      (begin-unsafe
                                                                                                       (write-byte
                                                                                                        35
                                                                                                        o_1))
                                                                                                      (begin
                                                                                                        (loop_0
                                                                                                         c4_0)
                                                                                                        (let ((vec_0
                                                                                                               (struct->vector
                                                                                                                v_0)))
                                                                                                          (begin
                                                                                                            (write-fasl-integer
                                                                                                             (sub1
                                                                                                              (vector-length
                                                                                                               vec_0))
                                                                                                             o_1)
                                                                                                            (call-with-values
                                                                                                             (lambda ()
                                                                                                               (unsafe-normalise-inputs
                                                                                                                unsafe-vector-length
                                                                                                                vec_0
                                                                                                                1
                                                                                                                #f
                                                                                                                1))
                                                                                                             (case-lambda
                                                                                                              ((v*_0
                                                                                                                start*_0
                                                                                                                stop*_0
                                                                                                                step*_0)
                                                                                                               (begin
                                                                                                                 #t
                                                                                                                 (letrec*
                                                                                                                  ((for-loop_0
                                                                                                                    (|#%name|
                                                                                                                     for-loop
                                                                                                                     (lambda (idx_0)
                                                                                                                       (begin
                                                                                                                         (if (unsafe-fx<
                                                                                                                              idx_0
                                                                                                                              stop*_0)
                                                                                                                           (let ((e_0
                                                                                                                                  (unsafe-vector-ref
                                                                                                                                   v*_0
                                                                                                                                   idx_0)))
                                                                                                                             (begin
                                                                                                                               (loop_0
                                                                                                                                e_0)
                                                                                                                               (for-loop_0
                                                                                                                                (unsafe-fx+
                                                                                                                                 idx_0
                                                                                                                                 1))))
                                                                                                                           (values)))))))
                                                                                                                  (for-loop_0
                                                                                                                   start*_0))))
                                                                                                              (args
                                                                                                               (raise-binding-result-arity-error
                                                                                                                4
                                                                                                                args))))
                                                                                                            (void)))))
                                                                                                    (if (hash?
                                                                                                         v_0)
                                                                                                      (begin
                                                                                                        (let ((byte_0
                                                                                                               (if (treat-immutable?_0
                                                                                                                    v_0)
                                                                                                                 37
                                                                                                                 36)))
                                                                                                          (begin-unsafe
                                                                                                           (write-byte
                                                                                                            byte_0
                                                                                                            o_1)))
                                                                                                        (let ((byte_0
                                                                                                               (if (hash-eq?
                                                                                                                    v_0)
                                                                                                                 0
                                                                                                                 (if (hash-eqv?
                                                                                                                      v_0)
                                                                                                                   2
                                                                                                                   (if (hash-equal-always?
                                                                                                                        v_0)
                                                                                                                     3
                                                                                                                     1)))))
                                                                                                          (begin-unsafe
                                                                                                           (write-byte
                                                                                                            byte_0
                                                                                                            o_1)))
                                                                                                        (write-fasl-integer
                                                                                                         (hash-count
                                                                                                          v_0)
                                                                                                         o_1)
                                                                                                        (hash-for-each
                                                                                                         v_0
                                                                                                         (lambda (k_0
                                                                                                                  v_1)
                                                                                                           (begin
                                                                                                             (loop_0
                                                                                                              k_0)
                                                                                                             (loop_0
                                                                                                              v_1)))
                                                                                                         #t))
                                                                                                      (if (regexp?
                                                                                                           v_0)
                                                                                                        (begin
                                                                                                          (let ((byte_0
                                                                                                                 (if (pregexp?
                                                                                                                      v_0)
                                                                                                                   24
                                                                                                                   25)))
                                                                                                            (begin-unsafe
                                                                                                             (write-byte
                                                                                                              byte_0
                                                                                                              o_1)))
                                                                                                          (write-fasl-string
                                                                                                           (object-name
                                                                                                            v_0)
                                                                                                           o_1))
                                                                                                        (if (byte-regexp?
                                                                                                             v_0)
                                                                                                          (begin
                                                                                                            (let ((byte_0
                                                                                                                   (if (byte-pregexp?
                                                                                                                        v_0)
                                                                                                                     26
                                                                                                                     27)))
                                                                                                              (begin-unsafe
                                                                                                               (write-byte
                                                                                                                byte_0
                                                                                                                o_1)))
                                                                                                            (write-fasl-bytes
                                                                                                             (object-name
                                                                                                              v_0)
                                                                                                             o_1))
                                                                                                          (if (begin-unsafe
                                                                                                               (|#%app|
                                                                                                                syntax?$3
                                                                                                                v_0))
                                                                                                            (begin
                                                                                                              (begin-unsafe
                                                                                                               (write-byte
                                                                                                                40
                                                                                                                o_1))
                                                                                                              (loop_0
                                                                                                               (begin-unsafe
                                                                                                                (|#%app|
                                                                                                                 syntax-e$4
                                                                                                                 v_0)))
                                                                                                              (loop_0
                                                                                                               (let ((app_0
                                                                                                                      (begin-unsafe
                                                                                                                       (|#%app|
                                                                                                                        syntax-source$3
                                                                                                                        v_0))))
                                                                                                                 (let ((app_1
                                                                                                                        (begin-unsafe
                                                                                                                         (|#%app|
                                                                                                                          syntax-line$3
                                                                                                                          v_0))))
                                                                                                                   (let ((app_2
                                                                                                                          (begin-unsafe
                                                                                                                           (|#%app|
                                                                                                                            syntax-column$3
                                                                                                                            v_0))))
                                                                                                                     (let ((app_3
                                                                                                                            (begin-unsafe
                                                                                                                             (|#%app|
                                                                                                                              syntax-position$3
                                                                                                                              v_0))))
                                                                                                                       (unsafe-make-srcloc
                                                                                                                        app_0
                                                                                                                        app_1
                                                                                                                        app_2
                                                                                                                        app_3
                                                                                                                        (begin-unsafe
                                                                                                                         (|#%app|
                                                                                                                          syntax-span$3
                                                                                                                          v_0))))))))
                                                                                                              (loop_0
                                                                                                               (reverse$1
                                                                                                                (let ((lst_0
                                                                                                                       (begin-unsafe
                                                                                                                        (|#%app|
                                                                                                                         syntax-property-symbol-keys$3
                                                                                                                         v_0))))
                                                                                                                  (begin
                                                                                                                    (letrec*
                                                                                                                     ((for-loop_0
                                                                                                                       (|#%name|
                                                                                                                        for-loop
                                                                                                                        (lambda (fold-var_0
                                                                                                                                 lst_1)
                                                                                                                          (begin
                                                                                                                            (if (pair?
                                                                                                                                 lst_1)
                                                                                                                              (let ((k_0
                                                                                                                                     (unsafe-car
                                                                                                                                      lst_1)))
                                                                                                                                (let ((rest_0
                                                                                                                                       (unsafe-cdr
                                                                                                                                        lst_1)))
                                                                                                                                  (let ((fold-var_1
                                                                                                                                         (let ((fold-var_1
                                                                                                                                                (cons
                                                                                                                                                 (cons
                                                                                                                                                  k_0
                                                                                                                                                  (begin-unsafe
                                                                                                                                                   (|#%app|
                                                                                                                                                    syntax-property$3
                                                                                                                                                    v_0
                                                                                                                                                    k_0)))
                                                                                                                                                 fold-var_0)))
                                                                                                                                           (values
                                                                                                                                            fold-var_1))))
                                                                                                                                    (for-loop_0
                                                                                                                                     fold-var_1
                                                                                                                                     rest_0))))
                                                                                                                              fold-var_0))))))
                                                                                                                     (for-loop_0
                                                                                                                      null
                                                                                                                      lst_0)))))))
                                                                                                            (if (eq?
                                                                                                                 v_0
                                                                                                                 unsafe-undefined)
                                                                                                              (begin-unsafe
                                                                                                               (write-byte
                                                                                                                41
                                                                                                                o_1))
                                                                                                              (let ((c3_0
                                                                                                                     (if (struct-type?
                                                                                                                          v_0)
                                                                                                                       (prefab-struct-type-key+field-count
                                                                                                                        v_0)
                                                                                                                       #f)))
                                                                                                                (if c3_0
                                                                                                                  (begin
                                                                                                                    (begin-unsafe
                                                                                                                     (write-byte
                                                                                                                      42
                                                                                                                      o_1))
                                                                                                                    (loop_0
                                                                                                                     (car
                                                                                                                      c3_0))
                                                                                                                    (loop_0
                                                                                                                     (cdr
                                                                                                                      c3_0)))
                                                                                                                  (if handle-fail6_0
                                                                                                                    (loop_0
                                                                                                                     (|#%app|
                                                                                                                      handle-fail6_0
                                                                                                                      v_0))
                                                                                                                    (raise-arguments-error
                                                                                                                     's-exp->fasl
                                                                                                                     "cannot write value"
                                                                                                                     "value"
                                                                                                                     v_0))))))))))))))))))))))))))))))))))))))))
                                         (loop_0 v14_0))
                                        (get-output-bytes o_1 #t)))))
                               (begin
                                 (write-fasl-integer shared-counter_0 o_0)
                                 (write-fasl-integer
                                  (unsafe-bytes-length bstr_0)
                                  o_0)
                                 (1/write-bytes bstr_0 o_0)
                                 (if orig-o13_0
                                   (void)
                                   (get-output-bytes o_0)))))))))))))))))))
(define fasl->s-exp.1
  (|#%name|
   fasl->s-exp
   (lambda (datum-intern?16_0 external-lifts17_0 skip-prefix?18_0 orig-i22_0)
     (begin
       (let ((external-lifts_0
              (if (eq? external-lifts17_0 unsafe-undefined)
                '#()
                external-lifts17_0)))
         (let ((init-i_0
                (if (bytes? orig-i22_0)
                  (mcons orig-i22_0 0)
                  (if (input-port? orig-i22_0)
                    orig-i22_0
                    (raise-argument-error
                     'fasl->s-exp
                     "(or/c bytes? input-port?)"
                     orig-i22_0)))))
           (begin
             (if skip-prefix?18_0
               (void)
               (if (bytes=?
                    (read-bytes/exactly* fasl-prefix-length init-i_0)
                    fasl-prefix)
                 (void)
                 (read-error "unrecognized prefix")))
             (let ((shared-count_0 (read-fasl-integer* init-i_0)))
               (let ((shared_0 (make-vector shared-count_0)))
                 (begin
                   (if (if (vector? external-lifts_0)
                         (<= (vector-length external-lifts_0) shared-count_0)
                         #f)
                     (void)
                     (error
                      'fasl->s-exp
                      "external-lift vector does not match expected size"))
                   (begin
                     (call-with-values
                      (lambda ()
                        (begin
                          (check-vector external-lifts_0)
                          (values
                           external-lifts_0
                           (unsafe-vector-length external-lifts_0))))
                      (case-lambda
                       ((vec_0 len_0)
                        (let ((start_0 0))
                          (let ((vec_1 vec_0) (len_1 len_0))
                            (begin
                              #f
                              (void)
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (pos_0 pos_1)
                                    (begin
                                      (if (if (unsafe-fx< pos_0 len_1) #t #f)
                                        (let ((v_0
                                               (unsafe-vector-ref
                                                vec_1
                                                pos_0)))
                                          (begin
                                            (vector-set!
                                             shared_0
                                             pos_1
                                             (vector-ref
                                              external-lifts_0
                                              pos_1))
                                            (for-loop_0
                                             (unsafe-fx+ 1 pos_0)
                                             (+ pos_1 1))))
                                        (values)))))))
                               (for-loop_0 0 start_0))))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (let ((len_0 (read-fasl-integer* init-i_0)))
                       (let ((i_0
                              (if (mpair? init-i_0)
                                init-i_0
                                (let ((bstr_0
                                       (read-bytes/exactly* len_0 init-i_0)))
                                  (mcons bstr_0 0)))))
                         (let ((intern_0
                                (|#%name|
                                 intern
                                 (lambda (v_0)
                                   (begin
                                     (if datum-intern?16_0
                                       (datum-intern-literal v_0)
                                       v_0))))))
                           (letrec*
                            ((loop_0
                              (|#%name|
                               loop
                               (lambda ()
                                 (begin
                                   (let ((type_0 (read-byte/no-eof i_0)))
                                     (let ((index_0
                                            (if (fixnum? type_0)
                                              (if (if (unsafe-fx>= type_0 1)
                                                    (unsafe-fx< type_0 45)
                                                    #f)
                                                (let ((tbl_0
                                                       '#(1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6
                                                          7
                                                          8
                                                          9
                                                          10
                                                          12
                                                          13
                                                          14
                                                          15
                                                          16
                                                          17
                                                          18
                                                          19
                                                          20
                                                          21
                                                          22
                                                          23
                                                          24
                                                          25
                                                          26
                                                          27
                                                          28
                                                          29
                                                          31
                                                          30
                                                          32
                                                          32
                                                          35
                                                          36
                                                          37
                                                          38
                                                          39
                                                          40
                                                          11
                                                          41
                                                          42
                                                          43
                                                          34
                                                          33)))
                                                  (unsafe-vector*-ref
                                                   tbl_0
                                                   (unsafe-fx- type_0 1)))
                                                0)
                                              0)))
                                       (if (unsafe-fx< index_0 21)
                                         (if (unsafe-fx< index_0 10)
                                           (if (unsafe-fx< index_0 4)
                                             (if (unsafe-fx< index_0 1)
                                               (if (>= type_0 100)
                                                 (+ (- type_0 100) -10)
                                                 (read-error
                                                  "unrecognized fasl tag"
                                                  "tag"
                                                  type_0))
                                               (if (unsafe-fx< index_0 2)
                                                 (let ((pos_0
                                                        (read-fasl-integer
                                                         i_0)))
                                                   (let ((v_0 (loop_0)))
                                                     (begin
                                                       (if (<
                                                            pos_0
                                                            shared-count_0)
                                                         (void)
                                                         (read-error
                                                          "bad graph index"))
                                                       (vector-set!
                                                        shared_0
                                                        pos_0
                                                        v_0)
                                                       v_0)))
                                                 (if (unsafe-fx< index_0 3)
                                                   (let ((pos_0
                                                          (read-fasl-integer
                                                           i_0)))
                                                     (begin
                                                       (if (<
                                                            pos_0
                                                            shared-count_0)
                                                         (void)
                                                         (read-error
                                                          "bad graph index"))
                                                       (vector-ref
                                                        shared_0
                                                        pos_0)))
                                                   #f)))
                                             (if (unsafe-fx< index_0 6)
                                               (if (unsafe-fx< index_0 5)
                                                 #t
                                                 null)
                                               (if (unsafe-fx< index_0 7)
                                                 (void)
                                                 (if (unsafe-fx< index_0 8)
                                                   eof
                                                   (if (unsafe-fx< index_0 9)
                                                     (intern_0
                                                      (read-fasl-integer i_0))
                                                     (read-fasl-flonum
                                                      i_0))))))
                                           (if (unsafe-fx< index_0 15)
                                             (if (unsafe-fx< index_0 12)
                                               (if (unsafe-fx< index_0 11)
                                                 (real->single-flonum
                                                  (floating-point-bytes->real
                                                   (read-bytes/exactly 4 i_0)
                                                   #f))
                                                 (let ((bstr_0
                                                        (read-bytes/exactly
                                                         (read-fasl-integer
                                                          i_0)
                                                         i_0)))
                                                   (1/string->number
                                                    (bytes->string/utf-8
                                                     bstr_0)
                                                    10
                                                    'read)))
                                               (if (unsafe-fx< index_0 13)
                                                 (intern_0
                                                  (let ((app_0 (loop_0)))
                                                    (/ app_0 (loop_0))))
                                                 (if (unsafe-fx< index_0 14)
                                                   (intern_0
                                                    (let ((app_0 (loop_0)))
                                                      (make-rectangular
                                                       app_0
                                                       (loop_0))))
                                                   (intern_0
                                                    (integer->char
                                                     (read-fasl-integer
                                                      i_0))))))
                                             (if (unsafe-fx< index_0 17)
                                               (if (unsafe-fx< index_0 16)
                                                 (string->symbol
                                                  (read-fasl-string i_0))
                                                 (string->unreadable-symbol
                                                  (read-fasl-string i_0)))
                                               (if (unsafe-fx< index_0 18)
                                                 (string->uninterned-symbol
                                                  (read-fasl-string i_0))
                                                 (if (unsafe-fx< index_0 19)
                                                   (string->keyword
                                                    (read-fasl-string i_0))
                                                   (if (unsafe-fx< index_0 20)
                                                     (read-fasl-string i_0)
                                                     (intern_0
                                                      (string->immutable-string
                                                       (read-fasl-string
                                                        i_0)))))))))
                                         (if (unsafe-fx< index_0 32)
                                           (if (unsafe-fx< index_0 26)
                                             (if (unsafe-fx< index_0 23)
                                               (if (unsafe-fx< index_0 22)
                                                 (read-fasl-bytes i_0)
                                                 (intern_0
                                                  (bytes->immutable-bytes
                                                   (read-fasl-bytes i_0))))
                                               (if (unsafe-fx< index_0 24)
                                                 (let ((app_0
                                                        (read-fasl-bytes i_0)))
                                                   (bytes->path
                                                    app_0
                                                    (loop_0)))
                                                 (if (unsafe-fx< index_0 25)
                                                   (let ((wrt-dir_0
                                                          (let ((or-part_0
                                                                 (current-load-relative-directory)))
                                                            (if or-part_0
                                                              or-part_0
                                                              (current-directory)))))
                                                     (let ((rel-elems_0
                                                            (reverse$1
                                                             (let ((lst_0
                                                                    (loop_0)))
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (fold-var_0
                                                                              lst_1)
                                                                       (begin
                                                                         (if (pair?
                                                                              lst_1)
                                                                           (let ((p_0
                                                                                  (unsafe-car
                                                                                   lst_1)))
                                                                             (let ((rest_0
                                                                                    (unsafe-cdr
                                                                                     lst_1)))
                                                                               (let ((fold-var_1
                                                                                      (let ((fold-var_1
                                                                                             (cons
                                                                                              (if (bytes?
                                                                                                   p_0)
                                                                                                (bytes->path-element
                                                                                                 p_0)
                                                                                                p_0)
                                                                                              fold-var_0)))
                                                                                        (values
                                                                                         fold-var_1))))
                                                                                 (for-loop_0
                                                                                  fold-var_1
                                                                                  rest_0))))
                                                                           fold-var_0))))))
                                                                  (for-loop_0
                                                                   null
                                                                   lst_0)))))))
                                                       (if wrt-dir_0
                                                         (apply
                                                          build-path
                                                          wrt-dir_0
                                                          rel-elems_0)
                                                         (if (null?
                                                              rel-elems_0)
                                                           (build-path 'same)
                                                           (apply
                                                            build-path
                                                            rel-elems_0)))))
                                                   (intern_0
                                                    (pregexp
                                                     (read-fasl-string
                                                      i_0))))))
                                             (if (unsafe-fx< index_0 28)
                                               (if (unsafe-fx< index_0 27)
                                                 (intern_0
                                                  (regexp
                                                   (read-fasl-string i_0)))
                                                 (intern_0
                                                  (byte-pregexp
                                                   (read-fasl-bytes i_0))))
                                               (if (unsafe-fx< index_0 29)
                                                 (intern_0
                                                  (byte-regexp
                                                   (read-fasl-bytes i_0)))
                                                 (if (unsafe-fx< index_0 30)
                                                   (let ((len_1
                                                          (read-fasl-integer
                                                           i_0)))
                                                     (reverse$1
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (fold-var_0
                                                                     pos_0)
                                                              (begin
                                                                (if (<
                                                                     pos_0
                                                                     len_1)
                                                                  (let ((fold-var_1
                                                                         (let ((fold-var_1
                                                                                (cons
                                                                                 (loop_0)
                                                                                 fold-var_0)))
                                                                           (values
                                                                            fold-var_1))))
                                                                    (for-loop_0
                                                                     fold-var_1
                                                                     (+
                                                                      pos_0
                                                                      1)))
                                                                  fold-var_0))))))
                                                         (for-loop_0
                                                          null
                                                          0)))))
                                                   (if (unsafe-fx< index_0 31)
                                                     (let ((app_0 (loop_0)))
                                                       (cons app_0 (loop_0)))
                                                     (let ((len_1
                                                            (read-fasl-integer
                                                             i_0)))
                                                       (letrec*
                                                        ((ploop_0
                                                          (|#%name|
                                                           ploop
                                                           (lambda (len_2)
                                                             (begin
                                                               (if (zero?
                                                                    len_2)
                                                                 (loop_0)
                                                                 (let ((app_0
                                                                        (loop_0)))
                                                                   (cons
                                                                    app_0
                                                                    (ploop_0
                                                                     (sub1
                                                                      len_2))))))))))
                                                        (ploop_0 len_1))))))))
                                           (if (unsafe-fx< index_0 37)
                                             (if (unsafe-fx< index_0 34)
                                               (if (unsafe-fx< index_0 33)
                                                 (let ((len_1
                                                        (read-fasl-integer
                                                         i_0)))
                                                   (let ((vec_0
                                                          (begin
                                                            (if (exact-nonnegative-integer?
                                                                 len_1)
                                                              (void)
                                                              (raise-argument-error
                                                               'for/vector
                                                               "exact-nonnegative-integer?"
                                                               len_1))
                                                            (let ((v_0
                                                                   (make-vector
                                                                    len_1
                                                                    0)))
                                                              (begin
                                                                (if (zero?
                                                                     len_1)
                                                                  (void)
                                                                  (begin
                                                                    (letrec*
                                                                     ((for-loop_0
                                                                       (|#%name|
                                                                        for-loop
                                                                        (lambda (i_1
                                                                                 pos_0)
                                                                          (begin
                                                                            (if (<
                                                                                 pos_0
                                                                                 len_1)
                                                                              (let ((i_2
                                                                                     (let ((i_2
                                                                                            (begin
                                                                                              (unsafe-vector*-set!
                                                                                               v_0
                                                                                               i_1
                                                                                               (loop_0))
                                                                                              (unsafe-fx+
                                                                                               1
                                                                                               i_1))))
                                                                                       (values
                                                                                        i_2))))
                                                                                (if (if (not
                                                                                         (let ((x_0
                                                                                                (list
                                                                                                 pos_0)))
                                                                                           (unsafe-fx=
                                                                                            i_2
                                                                                            len_1)))
                                                                                      #t
                                                                                      #f)
                                                                                  (for-loop_0
                                                                                   i_2
                                                                                   (+
                                                                                    pos_0
                                                                                    1))
                                                                                  i_2))
                                                                              i_1))))))
                                                                     (for-loop_0
                                                                      0
                                                                      0))))
                                                                v_0)))))
                                                     (if (eqv? type_0 32)
                                                       (vector->immutable-vector
                                                        vec_0)
                                                       vec_0)))
                                                 (let ((len_1
                                                        (read-fasl-integer
                                                         i_0)))
                                                   (begin
                                                     (if (exact-nonnegative-integer?
                                                          len_1)
                                                       (void)
                                                       (raise-argument-error
                                                        'for/flvector
                                                        "exact-nonnegative-integer?"
                                                        len_1))
                                                     (let ((v_0
                                                            (make-flvector
                                                             len_1
                                                             0.0)))
                                                       (begin
                                                         (if (zero? len_1)
                                                           (void)
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (i_1
                                                                          pos_0)
                                                                   (begin
                                                                     (if (<
                                                                          pos_0
                                                                          len_1)
                                                                       (let ((i_2
                                                                              (let ((i_2
                                                                                     (begin
                                                                                       (let ((elem_0
                                                                                              (read-fasl-flonum
                                                                                               i_0)))
                                                                                         (if (flonum?
                                                                                              elem_0)
                                                                                           (unsafe-flvector-set!
                                                                                            v_0
                                                                                            i_1
                                                                                            elem_0)
                                                                                           (begin-unsafe
                                                                                            (raise-argument-error
                                                                                             'for*/vector
                                                                                             "flonum?"
                                                                                             elem_0))))
                                                                                       (unsafe-fx+
                                                                                        1
                                                                                        i_1))))
                                                                                (values
                                                                                 i_2))))
                                                                         (if (if (not
                                                                                  (let ((x_0
                                                                                         (list
                                                                                          pos_0)))
                                                                                    (unsafe-fx=
                                                                                     i_2
                                                                                     len_1)))
                                                                               #t
                                                                               #f)
                                                                           (for-loop_0
                                                                            i_2
                                                                            (+
                                                                             pos_0
                                                                             1))
                                                                           i_2))
                                                                       i_1))))))
                                                              (for-loop_0
                                                               0
                                                               0))))
                                                         v_0)))))
                                               (if (unsafe-fx< index_0 35)
                                                 (let ((len_1
                                                        (read-fasl-integer
                                                         i_0)))
                                                   (begin
                                                     (if (exact-nonnegative-integer?
                                                          len_1)
                                                       (void)
                                                       (raise-argument-error
                                                        'for/fxvector
                                                        "exact-nonnegative-integer?"
                                                        len_1))
                                                     (let ((v_0
                                                            (make-fxvector
                                                             len_1
                                                             0)))
                                                       (begin
                                                         (if (zero? len_1)
                                                           (void)
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (i_1
                                                                          pos_0)
                                                                   (begin
                                                                     (if (<
                                                                          pos_0
                                                                          len_1)
                                                                       (let ((i_2
                                                                              (let ((i_2
                                                                                     (begin
                                                                                       (let ((elem_0
                                                                                              (read-fasl-integer
                                                                                               i_0)))
                                                                                         (if (fixnum?
                                                                                              elem_0)
                                                                                           (unsafe-fxvector-set!
                                                                                            v_0
                                                                                            i_1
                                                                                            elem_0)
                                                                                           (begin-unsafe
                                                                                            (raise-argument-error
                                                                                             'for*/vector
                                                                                             "fixnum?"
                                                                                             elem_0))))
                                                                                       (unsafe-fx+
                                                                                        1
                                                                                        i_1))))
                                                                                (values
                                                                                 i_2))))
                                                                         (if (if (not
                                                                                  (let ((x_0
                                                                                         (list
                                                                                          pos_0)))
                                                                                    (unsafe-fx=
                                                                                     i_2
                                                                                     len_1)))
                                                                               #t
                                                                               #f)
                                                                           (for-loop_0
                                                                            i_2
                                                                            (+
                                                                             pos_0
                                                                             1))
                                                                           i_2))
                                                                       i_1))))))
                                                              (for-loop_0
                                                               0
                                                               0))))
                                                         v_0))))
                                                 (if (unsafe-fx< index_0 36)
                                                   (box (loop_0))
                                                   (box-immutable (loop_0)))))
                                             (if (unsafe-fx< index_0 40)
                                               (if (unsafe-fx< index_0 38)
                                                 (let ((key_0 (loop_0)))
                                                   (let ((len_1
                                                          (read-fasl-integer
                                                           i_0)))
                                                     (apply
                                                      make-prefab-struct
                                                      key_0
                                                      (reverse$1
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (fold-var_0
                                                                      pos_0)
                                                               (begin
                                                                 (if (<
                                                                      pos_0
                                                                      len_1)
                                                                   (let ((fold-var_1
                                                                          (let ((fold-var_1
                                                                                 (cons
                                                                                  (loop_0)
                                                                                  fold-var_0)))
                                                                            (values
                                                                             fold-var_1))))
                                                                     (for-loop_0
                                                                      fold-var_1
                                                                      (+
                                                                       pos_0
                                                                       1)))
                                                                   fold-var_0))))))
                                                          (for-loop_0
                                                           null
                                                           0)))))))
                                                 (if (unsafe-fx< index_0 39)
                                                   (let ((ht_0
                                                          (let ((tmp_0
                                                                 (read-byte/no-eof
                                                                  i_0)))
                                                            (if (eq? tmp_0 0)
                                                              (make-hasheq)
                                                              (if (eq? tmp_0 2)
                                                                (make-hasheqv)
                                                                (if (eq?
                                                                     tmp_0
                                                                     3)
                                                                  (make-hashalw)
                                                                  (make-hash)))))))
                                                     (let ((len_1
                                                            (read-fasl-integer
                                                             i_0)))
                                                       (begin
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_0
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (pos_0)
                                                                 (begin
                                                                   (if (<
                                                                        pos_0
                                                                        len_1)
                                                                     (begin
                                                                       (let ((app_0
                                                                              (loop_0)))
                                                                         (hash-set!
                                                                          ht_0
                                                                          app_0
                                                                          (loop_0)))
                                                                       (for-loop_0
                                                                        (+
                                                                         pos_0
                                                                         1)))
                                                                     (values)))))))
                                                            (for-loop_0 0)))
                                                         (void)
                                                         ht_0)))
                                                   (let ((ht_0
                                                          (let ((tmp_0
                                                                 (read-byte/no-eof
                                                                  i_0)))
                                                            (if (eq? tmp_0 0)
                                                              hash2610
                                                              (if (eq? tmp_0 2)
                                                                hash2589
                                                                (if (eq?
                                                                     tmp_0
                                                                     3)
                                                                  (hashalw)
                                                                  hash2725))))))
                                                     (let ((len_1
                                                            (read-fasl-integer
                                                             i_0)))
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (ht_1
                                                                      pos_0)
                                                               (begin
                                                                 (if (<
                                                                      pos_0
                                                                      len_1)
                                                                   (let ((ht_2
                                                                          (let ((ht_2
                                                                                 (let ((app_0
                                                                                        (loop_0)))
                                                                                   (hash-set
                                                                                    ht_1
                                                                                    app_0
                                                                                    (loop_0)))))
                                                                            (values
                                                                             ht_2))))
                                                                     (for-loop_0
                                                                      ht_2
                                                                      (+
                                                                       pos_0
                                                                       1)))
                                                                   ht_1))))))
                                                          (for-loop_0
                                                           ht_0
                                                           0)))))))
                                               (if (unsafe-fx< index_0 41)
                                                 (let ((app_0 (loop_0)))
                                                   (let ((app_1 (loop_0)))
                                                     (let ((app_2 (loop_0)))
                                                       (let ((app_3 (loop_0)))
                                                         (unsafe-make-srcloc
                                                          app_0
                                                          app_1
                                                          app_2
                                                          app_3
                                                          (loop_0))))))
                                                 (if (unsafe-fx< index_0 42)
                                                   (let ((e_0 (loop_0)))
                                                     (let ((s_0 (loop_0)))
                                                       (let ((c_0
                                                              (datum->correlated$1
                                                               e_0
                                                               (let ((app_0
                                                                      (srcloc-source
                                                                       s_0)))
                                                                 (let ((app_1
                                                                        (srcloc-line
                                                                         s_0)))
                                                                   (let ((app_2
                                                                          (srcloc-column
                                                                           s_0)))
                                                                     (let ((app_3
                                                                            (srcloc-position
                                                                             s_0)))
                                                                       (vector
                                                                        app_0
                                                                        app_1
                                                                        app_2
                                                                        app_3
                                                                        (srcloc-span
                                                                         s_0)))))))))
                                                         (let ((lst_0
                                                                (loop_0)))
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (c_1
                                                                          lst_1)
                                                                   (begin
                                                                     (if (pair?
                                                                          lst_1)
                                                                       (let ((p_0
                                                                              (unsafe-car
                                                                               lst_1)))
                                                                         (let ((rest_0
                                                                                (unsafe-cdr
                                                                                 lst_1)))
                                                                           (let ((c_2
                                                                                  (let ((c_2
                                                                                         (let ((k_0
                                                                                                (car
                                                                                                 p_0)))
                                                                                           (let ((v_0
                                                                                                  (cdr
                                                                                                   p_0)))
                                                                                             (let ((k_1
                                                                                                    k_0))
                                                                                               (begin-unsafe
                                                                                                (|#%app|
                                                                                                 syntax-property$3
                                                                                                 c_1
                                                                                                 k_1
                                                                                                 v_0)))))))
                                                                                    (values
                                                                                     c_2))))
                                                                             (for-loop_0
                                                                              c_2
                                                                              rest_0))))
                                                                       c_1))))))
                                                              (for-loop_0
                                                               c_0
                                                               lst_0)))))))
                                                   (if (unsafe-fx< index_0 43)
                                                     unsafe-undefined
                                                     (let ((app_0 (loop_0)))
                                                       (prefab-key->struct-type
                                                        app_0
                                                        (loop_0)))))))))))))))))
                            (loop_0))))))))))))))))
(define write-fasl-integer
  (lambda (i_0 o_0)
    (if (<= -124 i_0 127)
      (if (negative? i_0)
        (let ((byte_0 (+ i_0 256))) (begin-unsafe (write-byte byte_0 o_0)))
        (begin-unsafe (write-byte i_0 o_0)))
      (if (<= -32768 i_0 32767)
        (begin
          (begin-unsafe (write-byte 128 o_0))
          (1/write-bytes (integer->integer-bytes i_0 2 #t #f) o_0))
        (if (<= -2147483648 i_0 2147483647)
          (begin
            (begin-unsafe (write-byte 129 o_0))
            (1/write-bytes (integer->integer-bytes i_0 4 #t #f) o_0))
          (if (<= -9223372036854775808 i_0 9223372036854775807)
            (begin
              (begin-unsafe (write-byte 130 o_0))
              (1/write-bytes (integer->integer-bytes i_0 8 #t #f) o_0))
            (begin
              (begin-unsafe (write-byte 131 o_0))
              (let ((s_0 (format "~x" i_0)))
                (begin
                  (write-fasl-integer (string-length s_0) o_0)
                  (write-string s_0 o_0))))))))))
(define write-fasl-string
  (lambda (v_0 o_0)
    (let ((bstr_0 (string->bytes/utf-8 v_0)))
      (begin
        (write-fasl-integer (unsafe-bytes-length bstr_0) o_0)
        (1/write-bytes bstr_0 o_0)))))
(define write-fasl-bytes
  (lambda (v_0 o_0)
    (begin
      (write-fasl-integer (unsafe-bytes-length v_0) o_0)
      (1/write-bytes v_0 o_0))))
(define write-fasl-flonum
  (lambda (v_0 o_0)
    (1/write-bytes
     (if (eqv? v_0 +nan.0)
       #vu8(0 0 0 0 0 0 248 127)
       (real->floating-point-bytes v_0 8 #f))
     o_0)))
(define read-error
  (lambda (s_0 . args_0)
    (apply
     raise-arguments-error
     'fasl-read
     (string-append "error parsing fasl stream;\n" " " s_0)
     args_0)))
(define read-byte/no-eof
  (lambda (i_0)
    (let ((pos_0 (unsafe-mcdr i_0)))
      (begin
        (if (fx< pos_0 (unsafe-bytes-length (unsafe-mcar i_0)))
          (void)
          (read-error "truncated stream"))
        (unsafe-set-mcdr! i_0 (fx+ pos_0 1))
        (unsafe-bytes-ref (unsafe-mcar i_0) pos_0)))))
(define read-byte/no-eof*
  (lambda (i_0)
    (if (mpair? i_0)
      (read-byte/no-eof i_0)
      (let ((b_0 (read-byte i_0)))
        (begin
          (if (eof-object? b_0) (read-error "truncated stream") (void))
          b_0)))))
(define read-bytes/exactly
  (lambda (n_0 i_0)
    (let ((pos_0 (unsafe-mcdr i_0)))
      (begin
        (if (let ((app_0 (+ pos_0 n_0)))
              (<= app_0 (unsafe-bytes-length (unsafe-mcar i_0))))
          (void)
          (read-error "truncated stream"))
        (unsafe-set-mcdr! i_0 (fx+ pos_0 n_0))
        (let ((app_0 (unsafe-mcar i_0)))
          (subbytes app_0 pos_0 (fx+ pos_0 n_0)))))))
(define read-bytes/exactly*
  (lambda (n_0 i_0)
    (if (mpair? i_0)
      (read-bytes/exactly n_0 i_0)
      (let ((bstr_0 (read-bytes n_0 i_0)))
        (begin
          (if (if (bytes? bstr_0) (= n_0 (unsafe-bytes-length bstr_0)) #f)
            (void)
            (read-error "truncated stream"))
          bstr_0)))))
(define read-fasl-integer
  (lambda (i_0)
    (let ((b_0 (read-byte/no-eof i_0)))
      (if (fx<= b_0 127)
        b_0
        (if (fx>= b_0 132)
          (fx- b_0 256)
          (if (eqv? b_0 128)
            (let ((lo_0 (read-byte/no-eof i_0)))
              (let ((hi_0 (read-byte/no-eof i_0)))
                (if (fx> hi_0 127)
                  (fxior (unsafe-fxlshift (fx+ -256 hi_0) 8) lo_0)
                  (fxior (unsafe-fxlshift hi_0 8) lo_0))))
            (if (eqv? b_0 129)
              (let ((a_0 (read-byte/no-eof i_0)))
                (let ((b_1 (read-byte/no-eof i_0)))
                  (let ((c_0 (read-byte/no-eof i_0)))
                    (let ((d_0 (read-byte/no-eof i_0)))
                      (bitwise-ior
                       a_0
                       (arithmetic-shift
                        (if (fx> d_0 127)
                          (let ((app_0 (unsafe-fxlshift (fx+ -256 d_0) 16)))
                            (fxior app_0 (unsafe-fxlshift c_0 8) b_1))
                          (fxior
                           (unsafe-fxlshift d_0 16)
                           (unsafe-fxlshift c_0 8)
                           b_1))
                        8))))))
              (if (eqv? b_0 130)
                (integer-bytes->integer (read-bytes/exactly 8 i_0) #t #f)
                (if (eqv? b_0 131)
                  (let ((len_0 (read-fasl-integer i_0)))
                    (let ((str_0 (read-fasl-string i_0 len_0)))
                      (begin
                        (if (if (string? str_0)
                              (= len_0 (string-length str_0))
                              #f)
                          (void)
                          (read-error "truncated stream at number"))
                        (1/string->number str_0 16))))
                  (read-error "internal error on integer mode"))))))))))
(define read-fasl-integer*
  (lambda (i_0)
    (let ((b_0 (read-byte/no-eof* i_0)))
      (if (fx<= b_0 127)
        b_0
        (if (fx>= b_0 132)
          (fx- b_0 256)
          (if (eqv? b_0 128)
            (let ((lo_0 (read-byte/no-eof* i_0)))
              (let ((hi_0 (read-byte/no-eof* i_0)))
                (if (fx> hi_0 127)
                  (fxior (unsafe-fxlshift (fx+ -256 hi_0) 8) lo_0)
                  (fxior (unsafe-fxlshift hi_0 8) lo_0))))
            (if (eqv? b_0 129)
              (let ((a_0 (read-byte/no-eof* i_0)))
                (let ((b_1 (read-byte/no-eof* i_0)))
                  (let ((c_0 (read-byte/no-eof* i_0)))
                    (let ((d_0 (read-byte/no-eof* i_0)))
                      (bitwise-ior
                       a_0
                       (arithmetic-shift
                        (if (fx> d_0 127)
                          (let ((app_0 (unsafe-fxlshift (fx+ -256 d_0) 16)))
                            (fxior app_0 (unsafe-fxlshift c_0 8) b_1))
                          (fxior
                           (unsafe-fxlshift d_0 16)
                           (unsafe-fxlshift c_0 8)
                           b_1))
                        8))))))
              (if (eqv? b_0 130)
                (integer-bytes->integer (read-bytes/exactly* 8 i_0) #t #f)
                (if (eqv? b_0 131)
                  (let ((len_0 (read-fasl-integer i_0)))
                    (let ((str_0 (read-fasl-string i_0 len_0)))
                      (begin
                        (if (if (string? str_0)
                              (= len_0 (string-length str_0))
                              #f)
                          (void)
                          (read-error "truncated stream at number"))
                        (1/string->number str_0 16))))
                  (read-error "internal error on integer mode"))))))))))
(define read-fasl-string
  (let ((read-fasl-string_0
         (|#%name|
          read-fasl-string
          (lambda (i25_0 len24_0)
            (begin
              (let ((len_0
                     (if (eq? len24_0 unsafe-undefined)
                       (read-fasl-integer i25_0)
                       len24_0)))
                (let ((pos_0 (unsafe-mcdr i25_0)))
                  (let ((bstr_0 (unsafe-mcar i25_0)))
                    (if (let ((app_0 (+ pos_0 len_0)))
                          (<= app_0 (unsafe-bytes-length bstr_0)))
                      (begin
                        (unsafe-set-mcdr! i25_0 (fx+ pos_0 len_0))
                        (let ((s_0 (make-string len_0)))
                          (letrec*
                           ((loop_0
                             (|#%name|
                              loop
                              (lambda (i_0)
                                (begin
                                  (if (fx= i_0 len_0)
                                    s_0
                                    (let ((c_0
                                           (unsafe-bytes-ref
                                            bstr_0
                                            (fx+ i_0 pos_0))))
                                      (if (fx<= c_0 128)
                                        (begin
                                          (string-set!
                                           s_0
                                           i_0
                                           (integer->char c_0))
                                          (loop_0 (fx+ i_0 1)))
                                        (bytes->string/utf-8
                                         bstr_0
                                         #f
                                         pos_0
                                         (fx+ pos_0 len_0))))))))))
                           (loop_0 0))))
                      (let ((bstr_1 (read-bytes/exactly len_0 i25_0)))
                        (bytes->string/utf-8 bstr_1)))))))))))
    (case-lambda
     ((i_0) (read-fasl-string_0 i_0 unsafe-undefined))
     ((i_0 len24_0) (read-fasl-string_0 i_0 len24_0)))))
(define read-fasl-bytes
  (lambda (i_0)
    (let ((len_0 (read-fasl-integer i_0))) (read-bytes/exactly len_0 i_0))))
(define read-fasl-flonum
  (lambda (i_0) (floating-point-bytes->real (read-bytes/exactly 8 i_0) #f)))
(define finish_2322
  (make-struct-type-install-properties
   '(mpi-intern-table)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'mpi-intern-table))
(define struct:mpi-intern-table
  (make-record-type-descriptor
   'mpi-intern-table
   #f
   (|#%nongenerative-uid| mpi-intern-table)
   #f
   #f
   '(2 . 0)))
(define effect_2611 (finish_2322 struct:mpi-intern-table))
(define mpi-intern-table1.1
  (|#%name|
   mpi-intern-table
   (record-constructor
    (make-record-constructor-descriptor struct:mpi-intern-table #f #f))))
(define mpi-intern-table?_2949
  (|#%name| mpi-intern-table? (record-predicate struct:mpi-intern-table)))
(define mpi-intern-table?
  (|#%name|
   mpi-intern-table?
   (lambda (v)
     (if (mpi-intern-table?_2949 v)
       #t
       ($value
        (if (impersonator? v)
          (mpi-intern-table?_2949 (impersonator-val v))
          #f))))))
(define mpi-intern-table-normal_2774
  (|#%name|
   mpi-intern-table-normal
   (record-accessor struct:mpi-intern-table 0)))
(define mpi-intern-table-normal
  (|#%name|
   mpi-intern-table-normal
   (lambda (s)
     (if (mpi-intern-table?_2949 s)
       (mpi-intern-table-normal_2774 s)
       ($value
        (impersonate-ref
         mpi-intern-table-normal_2774
         struct:mpi-intern-table
         0
         s
         'normal))))))
(define mpi-intern-table-fast_2301
  (|#%name| mpi-intern-table-fast (record-accessor struct:mpi-intern-table 1)))
(define mpi-intern-table-fast
  (|#%name|
   mpi-intern-table-fast
   (lambda (s)
     (if (mpi-intern-table?_2949 s)
       (mpi-intern-table-fast_2301 s)
       ($value
        (impersonate-ref
         mpi-intern-table-fast_2301
         struct:mpi-intern-table
         1
         s
         'fast))))))
(define make-module-path-index-intern-table
  (lambda ()
    (let ((app_0 (make-hash))) (mpi-intern-table1.1 app_0 (make-hasheq)))))
(define intern-module-path-index!
  (lambda (t_0 mpi_0)
    (let ((or-part_0 (hash-ref (mpi-intern-table-fast t_0) mpi_0 #f)))
      (if or-part_0
        or-part_0
        (call-with-values
         (lambda () (1/module-path-index-split mpi_0))
         (case-lambda
          ((name_0 base_0)
           (if (not name_0)
             (begin (hash-set! (mpi-intern-table-fast t_0) mpi_0 mpi_0) mpi_0)
             (let ((interned-base_0
                    (if base_0 (intern-module-path-index! t_0 base_0) #f)))
               (let ((at-name_0
                      (let ((or-part_1
                             (hash-ref
                              (mpi-intern-table-normal t_0)
                              name_0
                              #f)))
                        (if or-part_1
                          or-part_1
                          (let ((at-name_0 (make-hasheq)))
                            (begin
                              (hash-set!
                               (mpi-intern-table-normal t_0)
                               name_0
                               at-name_0)
                              at-name_0))))))
                 (let ((i-mpi_0
                        (let ((or-part_1
                               (hash-ref at-name_0 interned-base_0 #f)))
                          (if or-part_1
                            or-part_1
                            (let ((mpi_1
                                   (if (eq? base_0 interned-base_0)
                                     mpi_0
                                     (if (1/module-path-index? mpi_0)
                                       (let ((app_0
                                              (module-path-index-resolved
                                               mpi_0)))
                                         (module-path-index2.1
                                          (module-path-index-path mpi_0)
                                          interned-base_0
                                          app_0
                                          (module-path-index-shift-cache
                                           mpi_0)))
                                       (raise-argument-error
                                        'struct-copy
                                        "module-path-index?"
                                        mpi_0)))))
                              (begin
                                (hash-set! at-name_0 interned-base_0 mpi_1)
                                mpi_1))))))
                   (begin
                     (hash-set! (mpi-intern-table-fast t_0) mpi_0 i-mpi_0)
                     i-mpi_0))))))
          (args (raise-binding-result-arity-error 2 args))))))))
(define built-in-symbols (make-hasheq))
(define register-built-in-symbol!
  (lambda (s_0) (hash-set! built-in-symbols s_0 #t)))
(define built-in-symbol? (lambda (s_0) (hash-ref built-in-symbols s_0 #f)))
(define make-built-in-symbol!
  (lambda (s_0)
    (let ((built-in-s_0 (string->symbol (format ".~s" s_0))))
      (begin
        (begin-unsafe (hash-set! built-in-symbols built-in-s_0 #t))
        built-in-s_0))))
(define effect_2872
  (begin
    (void
     (begin
       (for-each_2380
        register-built-in-symbol!
        '(lambda case-lambda
           if
           begin
           begin0
           let-values
           letrec-values
           set!
           quote
           with-continuation-mark
           |#%variable-reference|))
       (for-each_2380
        register-built-in-symbol!
        '(check-not-undefined
          instance-variable-box
          variable-reference
          variable-reference?
          variable-reference->instance
          variable-reference-constant?
          variable-reference-from-unsafe?))
       (for-each_2380
        register-built-in-symbol!
        '(or and
             let
             letrec*
             define
             $value
             with-continuation-mark*
             pariah
             begin-unsafe
             variable-set!
             variable-ref
             variable-ref/no-check
             variable-set!/check-undefined
             variable-set!/define
             make-instance-variable-reference
             instance-variable-reference
             unbox/check-undefined
             set-box!/check-undefined
             annotation?
             annotation-expression
             |#%app|
             |#%call-with-values|
             |#%app/no-return|
             |#%app/value|
             call-with-module-prompt
             make-pthread-parameter
             engine-block
             make-record-type-descriptor
             make-record-type-descriptor*
             make-record-constructor-descriptor
             record-constructor
             record-accessor
             record-mutator
             record-predicate
             make-struct-type-install-properties
             |#%struct-constructor|
             |#%struct-predicate|
             |#%struct-field-accessor|
             |#%struct-field-mutator|
             |#%nongenerative-uid|
             |#%struct-ref-error|
             |#%struct-set!-error|
             unsafe-struct?
             unsafe-sealed-struct?
             unsafe-struct
             raise-binding-result-arity-error
             raise-definition-result-arity-error
             structure-type-lookup-prefab-uid
             struct-type-constructor-add-guards
             impersonator-val
             impersonator-ref
             impersonate-set!
             ptr-ref/int8
             ptr-set!/int8
             ptr-ref/uint8
             ptr-set!/uint8
             ptr-ref/int16
             ptr-set!/int16
             ptr-ref/uint16
             ptr-set!/uint16
             ptr-ref/int32
             ptr-set!/int32
             ptr-ref/uint32
             ptr-set!/uint32
             ptr-ref/int64
             ptr-set!/int64
             ptr-ref/uint64
             ptr-set!/uint64
             ptr-ref/double
             ptr-set!/double
             ptr-ref/float
             ptr-set!/float))))
    (void)))
(define phase-shift-id (make-built-in-symbol! 'phase))
(define dest-phase-id (make-built-in-symbol! 'dest-phase))
(define ns-id (make-built-in-symbol! 'namespace))
(define self-id (make-built-in-symbol! 'self))
(define syntax-literals-id (make-built-in-symbol! 'syntax-literals))
(define get-syntax-literal!-id (make-built-in-symbol! 'get-syntax-literal!))
(define bulk-binding-registry-id
  (make-built-in-symbol! 'bulk-binding-registry))
(define inspector-id (make-built-in-symbol! 'inspector))
(define deserialize-syntax-id (make-built-in-symbol! 'deserialize-syntax))
(define deserialized-syntax-vector-id
  (make-built-in-symbol! 'deserialized-syntax-vector))
(define set-transformer!-id (make-built-in-symbol! 'set-transformer!))
(define top-level-bind!-id (make-built-in-symbol! 'top-level-bind!))
(define top-level-require!-id (make-built-in-symbol! 'top-level-require!))
(define mpi-vector-id (make-built-in-symbol! 'mpi-vector))
(define finish_2005
  (make-struct-type-install-properties
   '(module-path-index-table)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'module-path-index-table))
(define struct:module-path-index-table
  (make-record-type-descriptor
   'module-path-index-table
   #f
   (|#%nongenerative-uid| module-path-index-table)
   #f
   #f
   '(2 . 0)))
(define effect_2626 (finish_2005 struct:module-path-index-table))
(define module-path-index-table1.1
  (|#%name|
   module-path-index-table
   (record-constructor
    (make-record-constructor-descriptor
     struct:module-path-index-table
     #f
     #f))))
(define module-path-index-table?_2552
  (|#%name|
   module-path-index-table?
   (record-predicate struct:module-path-index-table)))
(define module-path-index-table?
  (|#%name|
   module-path-index-table?
   (lambda (v)
     (if (module-path-index-table?_2552 v)
       #t
       ($value
        (if (impersonator? v)
          (module-path-index-table?_2552 (impersonator-val v))
          #f))))))
(define module-path-index-table-positions_2549
  (|#%name|
   module-path-index-table-positions
   (record-accessor struct:module-path-index-table 0)))
(define module-path-index-table-positions
  (|#%name|
   module-path-index-table-positions
   (lambda (s)
     (if (module-path-index-table?_2552 s)
       (module-path-index-table-positions_2549 s)
       ($value
        (impersonate-ref
         module-path-index-table-positions_2549
         struct:module-path-index-table
         0
         s
         'positions))))))
(define module-path-index-table-intern_2630
  (|#%name|
   module-path-index-table-intern
   (record-accessor struct:module-path-index-table 1)))
(define module-path-index-table-intern
  (|#%name|
   module-path-index-table-intern
   (lambda (s)
     (if (module-path-index-table?_2552 s)
       (module-path-index-table-intern_2630 s)
       ($value
        (impersonate-ref
         module-path-index-table-intern_2630
         struct:module-path-index-table
         1
         s
         'intern))))))
(define make-module-path-index-table
  (lambda ()
    (let ((app_0 (make-hasheq)))
      (module-path-index-table1.1
       app_0
       (make-module-path-index-intern-table)))))
(define add-module-path-index!
  (lambda (mpis_0 mpi_0)
    (let ((pos_0 (add-module-path-index!/pos mpis_0 mpi_0)))
      (if pos_0 (list 'unsafe-vector*-ref mpi-vector-id pos_0) #f))))
(define add-module-path-index!/pos
  (lambda (mpis_0 mpi_0)
    (if (not mpi_0)
      #f
      (if mpi_0
        (let ((mpi_1
               (intern-module-path-index!
                (module-path-index-table-intern mpis_0)
                mpi_0)))
          (let ((positions_0 (module-path-index-table-positions mpis_0)))
            (let ((mpi_2 mpi_1))
              (let ((or-part_0 (hash-ref positions_0 mpi_2 #f)))
                (if or-part_0
                  or-part_0
                  (let ((pos_0 (hash-count positions_0)))
                    (begin (hash-set! positions_0 mpi_2 pos_0) pos_0)))))))
        (void)))))
(define generate-module-path-index-deserialize.1
  (|#%name|
   generate-module-path-index-deserialize
   (lambda (as-data?2_0 mpis4_0)
     (begin
       (let ((unique-list_0
              (|#%name|
               unique-list
               (lambda (v_0)
                 (begin
                   (if (pair? v_0)
                     (reverse$1
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 lst_0)
                              (begin
                                (if (pair? lst_0)
                                  (let ((i_0 (unsafe-car lst_0)))
                                    (let ((rest_0 (unsafe-cdr lst_0)))
                                      (let ((fold-var_1 (cons i_0 fold-var_0)))
                                        (let ((fold-var_2 (values fold-var_1)))
                                          (for-loop_0 fold-var_2 rest_0)))))
                                  fold-var_0))))))
                         (for-loop_0 null v_0))))
                     v_0))))))
         (let ((positions_0 (module-path-index-table-positions mpis4_0)))
           (let ((gen-order_0 (make-hasheqv)))
             (let ((rev-positions_0
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (table_0 i_0)
                            (begin
                              (if i_0
                                (call-with-values
                                 (lambda ()
                                   (hash-iterate-key+value positions_0 i_0))
                                 (case-lambda
                                  ((k_0 v_0)
                                   (let ((table_1
                                          (let ((table_1
                                                 (call-with-values
                                                  (lambda () (values v_0 k_0))
                                                  (case-lambda
                                                   ((key_0 val_0)
                                                    (hash-set
                                                     table_0
                                                     key_0
                                                     val_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))))
                                            (values table_1))))
                                     (for-loop_0
                                      table_1
                                      (hash-iterate-next positions_0 i_0))))
                                  (args
                                   (raise-binding-result-arity-error 2 args))))
                                table_0))))))
                       (for-loop_0
                        hash2589
                        (hash-iterate-first positions_0))))))
               (begin
                 (let ((end_0 (hash-count rev-positions_0)))
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (pos_0)
                           (begin
                             (if (< pos_0 end_0)
                               (begin
                                 (let ((mpi_0
                                        (hash-ref rev-positions_0 pos_0)))
                                   (letrec*
                                    ((loop_0
                                      (|#%name|
                                       loop
                                       (lambda (mpi_1)
                                         (begin
                                           (if (hash-ref gen-order_0 mpi_1 #f)
                                             (void)
                                             (call-with-values
                                              (lambda ()
                                                (1/module-path-index-split
                                                 mpi_1))
                                              (case-lambda
                                               ((name_0 base_0)
                                                (begin
                                                  (if base_0
                                                    (loop_0 base_0)
                                                    (void))
                                                  (hash-set!
                                                   gen-order_0
                                                   mpi_1
                                                   (hash-count gen-order_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))))))))
                                    (loop_0 mpi_0)))
                                 (for-loop_0 (+ pos_0 1)))
                               (values)))))))
                      (for-loop_0 0))))
                 (let ((rev-gen-order_0
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (table_0 i_0)
                                (begin
                                  (if i_0
                                    (call-with-values
                                     (lambda ()
                                       (hash-iterate-key+value
                                        gen-order_0
                                        i_0))
                                     (case-lambda
                                      ((k_0 v_0)
                                       (let ((table_1
                                              (let ((table_1
                                                     (call-with-values
                                                      (lambda ()
                                                        (values v_0 k_0))
                                                      (case-lambda
                                                       ((key_0 val_0)
                                                        (hash-set
                                                         table_0
                                                         key_0
                                                         val_0))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))))
                                                (values table_1))))
                                         (for-loop_0
                                          table_1
                                          (hash-iterate-next
                                           gen-order_0
                                           i_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))
                                    table_0))))))
                           (for-loop_0
                            hash2589
                            (hash-iterate-first gen-order_0))))))
                   (let ((gens_0
                          (let ((len_0 (hash-count gen-order_0)))
                            (begin
                              (if (exact-nonnegative-integer? len_0)
                                (void)
                                (raise-argument-error
                                 'for/vector
                                 "exact-nonnegative-integer?"
                                 len_0))
                              (let ((v_0 (make-vector len_0 0)))
                                (begin
                                  (if (zero? len_0)
                                    (void)
                                    (let ((end_0 (hash-count gen-order_0)))
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (i_0 pos_0)
                                              (begin
                                                (if (< pos_0 end_0)
                                                  (let ((i_1
                                                         (let ((i_1
                                                                (begin
                                                                  (unsafe-vector*-set!
                                                                   v_0
                                                                   i_0
                                                                   (let ((mpi_0
                                                                          (hash-ref
                                                                           rev-gen-order_0
                                                                           pos_0)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (1/module-path-index-split
                                                                         mpi_0))
                                                                      (case-lambda
                                                                       ((path_0
                                                                         base_0)
                                                                        (if (begin-unsafe
                                                                             (eq?
                                                                              top-level-module-path-index
                                                                              mpi_0))
                                                                          'top
                                                                          (if (not
                                                                               path_0)
                                                                            (box
                                                                             (let ((or-part_0
                                                                                    (unique-list_0
                                                                                     (1/resolved-module-path-name
                                                                                      (module-path-index-resolved
                                                                                       mpi_0)))))
                                                                               (if or-part_0
                                                                                 or-part_0
                                                                                 'self)))
                                                                            (if (not
                                                                                 base_0)
                                                                              (vector
                                                                               path_0)
                                                                              (if base_0
                                                                                (vector
                                                                                 path_0
                                                                                 (hash-ref
                                                                                  gen-order_0
                                                                                  base_0))
                                                                                (void))))))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))
                                                                  (unsafe-fx+
                                                                   1
                                                                   i_0))))
                                                           (values i_1))))
                                                    (if (if (not
                                                             (let ((x_0
                                                                    (list
                                                                     pos_0)))
                                                               (unsafe-fx=
                                                                i_1
                                                                len_0)))
                                                          #t
                                                          #f)
                                                      (for-loop_0
                                                       i_1
                                                       (+ pos_0 1))
                                                      i_1))
                                                  i_0))))))
                                         (for-loop_0 0 0)))))
                                  v_0))))))
                     (let ((reorder-vec_0
                            (call-with-values
                             (lambda ()
                               (let ((end_0 (hash-count rev-positions_0)))
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (vec_0 i_0 pos_0)
                                         (begin
                                           (if (< pos_0 end_0)
                                             (call-with-values
                                              (lambda ()
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((new-vec_0
                                                          (if (eq?
                                                               i_0
                                                               (unsafe-vector*-length
                                                                vec_0))
                                                            (grow-vector vec_0)
                                                            vec_0)))
                                                     (begin
                                                       (unsafe-vector*-set!
                                                        new-vec_0
                                                        i_0
                                                        (hash-ref
                                                         gen-order_0
                                                         (hash-ref
                                                          rev-positions_0
                                                          pos_0)))
                                                       (values
                                                        new-vec_0
                                                        (unsafe-fx+ i_0 1)))))
                                                 (case-lambda
                                                  ((vec_1 i_1)
                                                   (values vec_1 i_1))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))
                                              (case-lambda
                                               ((vec_1 i_1)
                                                (for-loop_0
                                                 vec_1
                                                 i_1
                                                 (+ pos_0 1)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (values vec_0 i_0)))))))
                                    (for-loop_0 (make-vector 16) 0 0)))))
                             (case-lambda
                              ((vec_0 i_0) (shrink-vector vec_0 i_0))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                       (if as-data?2_0
                         (vector gens_0 reorder-vec_0)
                         (list
                          'deserialize-module-path-indexes
                          (list 'quote gens_0)
                          (list 'quote reorder-vec_0)))))))))))))))
(define deserialize-module-path-indexes
  (lambda (gen-vec_0 order-vec_0)
    (let ((gen_0 (make-vector (vector-length gen-vec_0) #f)))
      (begin
        (call-with-values
         (lambda ()
           (begin
             (check-vector gen-vec_0)
             (values gen-vec_0 (unsafe-vector-length gen-vec_0))))
         (case-lambda
          ((vec_0 len_0)
           (let ((start_0 0))
             (let ((vec_1 vec_0) (len_1 len_0))
               (begin
                 #f
                 (void)
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (pos_0 pos_1)
                       (begin
                         (if (if (unsafe-fx< pos_0 len_1) #t #f)
                           (let ((d_0 (unsafe-vector-ref vec_1 pos_0)))
                             (begin
                               (vector-set!
                                gen_0
                                pos_1
                                (if (eq? d_0 'top)
                                  (begin-unsafe top-level-module-path-index)
                                  (if (box? d_0)
                                    (let ((name_0 (unbox d_0)))
                                      (begin-unsafe
                                       (make-self-module-path-index
                                        (1/make-resolved-module-path name_0))))
                                    (let ((path_0 (unsafe-vector*-ref d_0 0)))
                                      (let ((base_0
                                             (if (>
                                                  (unsafe-vector*-length d_0)
                                                  1)
                                               (unsafe-vector*-ref
                                                gen_0
                                                (unsafe-vector*-ref d_0 1))
                                               #f)))
                                        (let ((path_1 path_0))
                                          (begin-unsafe
                                           (1/module-path-index-join
                                            path_1
                                            base_0))))))))
                               (for-loop_0 (unsafe-fx+ 1 pos_0) (+ pos_1 1))))
                           (values)))))))
                  (for-loop_0 0 start_0))))))
          (args (raise-binding-result-arity-error 2 args))))
        (void)
        (let ((len_0 (vector-length order-vec_0)))
          (begin
            (if (exact-nonnegative-integer? len_0)
              (void)
              (raise-argument-error
               'for/vector
               "exact-nonnegative-integer?"
               len_0))
            (let ((v_0 (make-vector len_0 0)))
              (begin
                (if (zero? len_0)
                  (void)
                  (call-with-values
                   (lambda ()
                     (begin
                       (check-vector order-vec_0)
                       (values
                        order-vec_0
                        (unsafe-vector-length order-vec_0))))
                   (case-lambda
                    ((vec_0 len_1)
                     (begin
                       #f
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (i_0 pos_0)
                             (begin
                               (if (unsafe-fx< pos_0 len_1)
                                 (let ((p_0 (unsafe-vector-ref vec_0 pos_0)))
                                   (let ((i_1
                                          (let ((i_1
                                                 (begin
                                                   (unsafe-vector*-set!
                                                    v_0
                                                    i_0
                                                    (unsafe-vector*-ref
                                                     gen_0
                                                     p_0))
                                                   (unsafe-fx+ 1 i_0))))
                                            (values i_1))))
                                     (if (if (not
                                              (let ((x_0 (list p_0)))
                                                (unsafe-fx= i_1 len_0)))
                                           #t
                                           #f)
                                       (for-loop_0 i_1 (unsafe-fx+ 1 pos_0))
                                       i_1)))
                                 i_0))))))
                        (for-loop_0 0 0))))
                    (args (raise-binding-result-arity-error 2 args)))))
                v_0))))))))
(define deserialize-module-path-index-data
  (lambda (v_0)
    (begin
      (if (if (vector? v_0) (= 2 (vector-length v_0)) #f)
        (void)
        (error 'syntax-deserialize "ill-formed serialization"))
      (let ((app_0 (vector-ref v_0 0)))
        (deserialize-module-path-indexes app_0 (vector-ref v_0 1))))))
(define mpis-as-vector
  (lambda (mpis_0)
    (let ((positions_0 (module-path-index-table-positions mpis_0)))
      (let ((vec_0 (make-vector (hash-count positions_0) #f)))
        (begin
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (i_0)
                  (begin
                    (if i_0
                      (call-with-values
                       (lambda () (hash-iterate-key+value positions_0 i_0))
                       (case-lambda
                        ((mpi_0 pos_0)
                         (begin
                           (vector-set! vec_0 pos_0 mpi_0)
                           (for-loop_0 (hash-iterate-next positions_0 i_0))))
                        (args (raise-binding-result-arity-error 2 args))))
                      (values)))))))
             (for-loop_0 (hash-iterate-first positions_0))))
          (void)
          vec_0)))))
(define generate-module-data-linklet
  (lambda (mpis_0)
    (let ((app_0 (list deserialize-imports)))
      (let ((app_1 (list mpi-vector-id)))
        (let ((app_2
               (list*
                'define-values
                (list inspector-id)
                '((current-code-inspector)))))
          (list
           'linklet
           app_0
           app_1
           app_2
           (let ((app_3 (list mpi-vector-id)))
             (list
              'define-values
              app_3
              (generate-module-path-index-deserialize.1 #f mpis_0)))))))))
(define generate-module-declaration-linklet
  (lambda (mpis_0
           self_0
           requires_0
           recur-requires_0
           provides_0
           phase-to-link-module-uses-expr_0
           portal-stxes_0)
    (let ((app_0 (list deserialize-imports (list mpi-vector-id))))
      (let ((app_1
             (list
              'define-values
              '(self-mpi)
              (add-module-path-index! mpis_0 self_0))))
        (let ((app_2
               (list
                'define-values
                '(requires)
                (generate-deserialize.1
                 #f
                 #f
                 mpis_0
                 #f
                 hash2610
                 #f
                 requires_0))))
          (let ((app_3
                 (list
                  'define-values
                  '(recur-requires)
                  (list 'quote recur-requires_0))))
            (let ((app_4
                   (list
                    'define-values
                    '(provides)
                    (generate-deserialize.1
                     #f
                     #f
                     mpis_0
                     provides_0
                     hash2610
                     #f
                     provides_0))))
              (list
               'linklet
               app_0
               '(self-mpi
                 requires
                 recur-requires
                 provides
                 phase-to-link-modules
                 portal-stxes)
               app_1
               app_2
               app_3
               app_4
               (list
                'define-values
                '(phase-to-link-modules)
                phase-to-link-module-uses-expr_0)
               (list
                'define-values
                '(portal-stxes)
                (list 'quote portal-stxes_0))))))))))
(define serialize-module-uses
  (lambda (mus_0 mpis_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((mu_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (let ((fold-var_1
                                   (cons
                                    (let ((app_0
                                           (add-module-path-index!
                                            mpis_0
                                            (module-use-module mu_0))))
                                      (list
                                       'module-use
                                       app_0
                                       (module-use-phase mu_0)))
                                    fold-var_0)))
                              (values fold-var_1))))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null mus_0))))))
(define interned-literal?
  (lambda (v_0)
    (let ((or-part_0 (null? v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (boolean? v_0)))
          (if or-part_1
            or-part_1
            (let ((or-part_2
                   (if (fixnum? v_0)
                     (if (< v_0 1073741823) (> v_0 -1073741824) #f)
                     #f)))
              (if or-part_2
                or-part_2
                (let ((or-part_3 (symbol? v_0)))
                  (if or-part_3
                    or-part_3
                    (let ((or-part_4 (char? v_0)))
                      (if or-part_4 or-part_4 (keyword? v_0)))))))))))))
(define serialize-phase-to-link-module-uses
  (lambda (phase-to-link-module-uses_0 mpis_0)
    (let ((phases-in-order_0
           (let ((temp29_0 (hash-keys phase-to-link-module-uses_0)))
             (sort.1 #f #f temp29_0 <))))
      (list*
       'hasheqv
       (apply
        append
        (reverse$1
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (fold-var_0 lst_0)
                 (begin
                   (if (pair? lst_0)
                     (let ((phase_0 (unsafe-car lst_0)))
                       (let ((rest_0 (unsafe-cdr lst_0)))
                         (let ((fold-var_1
                                (let ((fold-var_1
                                       (cons
                                        (list
                                         phase_0
                                         (list*
                                          'list
                                          (serialize-module-uses
                                           (hash-ref
                                            phase-to-link-module-uses_0
                                            phase_0)
                                           mpis_0)))
                                        fold-var_0)))
                                  (values fold-var_1))))
                           (for-loop_0 fold-var_1 rest_0))))
                     fold-var_0))))))
            (for-loop_0 null phases-in-order_0)))))))))
(define generate-deserialize.1
  (|#%name|
   generate-deserialize
   (lambda (as-data?7_0
            keep-provides?10_0
            mpis6_0
            phase+space-hasheqv11_0
            preserve-prop-keys9_0
            syntax-support?8_0
            v18_0)
     (begin
       (let ((bulk-shifts_0 (if keep-provides?10_0 (list (make-hasheq)) #f)))
         (let ((reachable-scopes_0
                (find-reachable-scopes v18_0 bulk-shifts_0)))
           (let ((state_0
                  (make-serialize-state
                   reachable-scopes_0
                   preserve-prop-keys9_0
                   (if keep-provides?10_0
                     (lambda (b_0)
                       (let ((name_0 (hash-ref (car bulk-shifts_0) b_0 #f)))
                         (let ((or-part_0 (not name_0)))
                           (if or-part_0
                             or-part_0
                             (|#%app| keep-provides?10_0 name_0)))))
                     #f))))
             (let ((mutables_0 (make-hasheq)))
               (let ((objs_0 (make-hasheq)))
                 (let ((shares_0 (make-hasheq)))
                   (let ((obj-step_0 0))
                     (let ((frontier_0 null))
                       (letrec*
                        ((add-frontier!_0
                          (|#%name|
                           add-frontier!
                           (case-lambda
                            ((v_0)
                             (begin (set! frontier_0 (cons v_0 frontier_0))))
                            ((kind_0 v_0) (add-frontier!_0 v_0))))))
                        (begin
                          (letrec*
                           ((frontier-loop_0
                             (|#%name|
                              frontier-loop
                              (lambda (v_0)
                                (begin
                                  (begin
                                    (letrec*
                                     ((loop_0
                                       (|#%name|
                                        loop
                                        (lambda (v_1)
                                          (begin
                                            (if (let ((or-part_0
                                                       (interned-literal?
                                                        v_1)))
                                                  (if or-part_0
                                                    or-part_0
                                                    (1/module-path-index?
                                                     v_1)))
                                              (void)
                                              (if (hash-ref objs_0 v_1 #f)
                                                (if (hash-ref
                                                     mutables_0
                                                     v_1
                                                     #f)
                                                  (void)
                                                  (hash-set! shares_0 v_1 #t))
                                                (begin
                                                  (if (serialize-fill!? v_1)
                                                    (begin
                                                      (hash-set!
                                                       mutables_0
                                                       v_1
                                                       (hash-count mutables_0))
                                                      (|#%app|
                                                       (serialize-fill!-ref
                                                        v_1)
                                                       v_1
                                                       add-frontier!_0
                                                       state_0))
                                                    (if (serialize? v_1)
                                                      (|#%app|
                                                       (serialize-ref v_1)
                                                       v_1
                                                       (case-lambda
                                                        ((sub-v_0)
                                                         (loop_0 sub-v_0))
                                                        ((kind_0 sub-v_0)
                                                         (loop_0 sub-v_0)))
                                                       state_0)
                                                      (if (pair? v_1)
                                                        (begin
                                                          (loop_0 (car v_1))
                                                          (loop_0 (cdr v_1)))
                                                        (if (vector? v_1)
                                                          (if (let ((or-part_0
                                                                     (immutable?
                                                                      v_1)))
                                                                (if or-part_0
                                                                  or-part_0
                                                                  (zero?
                                                                   (vector-length
                                                                    v_1))))
                                                            (begin
                                                              (call-with-values
                                                               (lambda ()
                                                                 (begin
                                                                   (check-vector
                                                                    v_1)
                                                                   (values
                                                                    v_1
                                                                    (unsafe-vector-length
                                                                     v_1))))
                                                               (case-lambda
                                                                ((vec_0 len_0)
                                                                 (begin
                                                                   #f
                                                                   (letrec*
                                                                    ((for-loop_0
                                                                      (|#%name|
                                                                       for-loop
                                                                       (lambda (pos_0)
                                                                         (begin
                                                                           (if (unsafe-fx<
                                                                                pos_0
                                                                                len_0)
                                                                             (let ((e_0
                                                                                    (unsafe-vector-ref
                                                                                     vec_0
                                                                                     pos_0)))
                                                                               (begin
                                                                                 (loop_0
                                                                                  e_0)
                                                                                 (for-loop_0
                                                                                  (unsafe-fx+
                                                                                   1
                                                                                   pos_0))))
                                                                             (values)))))))
                                                                    (for-loop_0
                                                                     0))))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args))))
                                                              (void))
                                                            (begin
                                                              (hash-set!
                                                               mutables_0
                                                               v_1
                                                               (hash-count
                                                                mutables_0))
                                                              (begin
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (begin
                                                                     (check-vector
                                                                      v_1)
                                                                     (values
                                                                      v_1
                                                                      (unsafe-vector-length
                                                                       v_1))))
                                                                 (case-lambda
                                                                  ((vec_0
                                                                    len_0)
                                                                   (begin
                                                                     #f
                                                                     (letrec*
                                                                      ((for-loop_0
                                                                        (|#%name|
                                                                         for-loop
                                                                         (lambda (pos_0)
                                                                           (begin
                                                                             (if (unsafe-fx<
                                                                                  pos_0
                                                                                  len_0)
                                                                               (let ((e_0
                                                                                      (unsafe-vector-ref
                                                                                       vec_0
                                                                                       pos_0)))
                                                                                 (begin
                                                                                   (add-frontier!_0
                                                                                    e_0)
                                                                                   (for-loop_0
                                                                                    (unsafe-fx+
                                                                                     1
                                                                                     pos_0))))
                                                                               (values)))))))
                                                                      (for-loop_0
                                                                       0))))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args))))
                                                                (void))))
                                                          (if (box? v_1)
                                                            (if (immutable?
                                                                 v_1)
                                                              (loop_0
                                                               (unbox v_1))
                                                              (begin
                                                                (hash-set!
                                                                 mutables_0
                                                                 v_1
                                                                 (hash-count
                                                                  mutables_0))
                                                                (add-frontier!_0
                                                                 (unbox v_1))))
                                                            (if (hash? v_1)
                                                              (if (immutable?
                                                                   v_1)
                                                                (begin
                                                                  (let ((lst_0
                                                                         (sorted-hash-keys
                                                                          v_1)))
                                                                    (begin
                                                                      (letrec*
                                                                       ((for-loop_0
                                                                         (|#%name|
                                                                          for-loop
                                                                          (lambda (lst_1)
                                                                            (begin
                                                                              (if (pair?
                                                                                   lst_1)
                                                                                (let ((k_0
                                                                                       (unsafe-car
                                                                                        lst_1)))
                                                                                  (let ((rest_0
                                                                                         (unsafe-cdr
                                                                                          lst_1)))
                                                                                    (begin
                                                                                      (begin
                                                                                        (loop_0
                                                                                         k_0)
                                                                                        (loop_0
                                                                                         (hash-ref
                                                                                          v_1
                                                                                          k_0)))
                                                                                      (for-loop_0
                                                                                       rest_0))))
                                                                                (values)))))))
                                                                       (for-loop_0
                                                                        lst_0))))
                                                                  (void))
                                                                (begin
                                                                  (hash-set!
                                                                   mutables_0
                                                                   v_1
                                                                   (hash-count
                                                                    mutables_0))
                                                                  (begin
                                                                    (let ((lst_0
                                                                           (sorted-hash-keys
                                                                            v_1)))
                                                                      (begin
                                                                        (letrec*
                                                                         ((for-loop_0
                                                                           (|#%name|
                                                                            for-loop
                                                                            (lambda (lst_1)
                                                                              (begin
                                                                                (if (pair?
                                                                                     lst_1)
                                                                                  (let ((k_0
                                                                                         (unsafe-car
                                                                                          lst_1)))
                                                                                    (let ((rest_0
                                                                                           (unsafe-cdr
                                                                                            lst_1)))
                                                                                      (begin
                                                                                        (begin
                                                                                          (add-frontier!_0
                                                                                           k_0)
                                                                                          (add-frontier!_0
                                                                                           (hash-ref
                                                                                            v_1
                                                                                            k_0)))
                                                                                        (for-loop_0
                                                                                         rest_0))))
                                                                                  (values)))))))
                                                                         (for-loop_0
                                                                          lst_0))))
                                                                    (void))))
                                                              (if (prefab-struct-key
                                                                   v_1)
                                                                (begin
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (unsafe-normalise-inputs
                                                                      unsafe-vector-length
                                                                      (struct->vector
                                                                       v_1)
                                                                      1
                                                                      #f
                                                                      1))
                                                                   (case-lambda
                                                                    ((v*_0
                                                                      start*_0
                                                                      stop*_0
                                                                      step*_0)
                                                                     (begin
                                                                       #t
                                                                       (letrec*
                                                                        ((for-loop_0
                                                                          (|#%name|
                                                                           for-loop
                                                                           (lambda (idx_0)
                                                                             (begin
                                                                               (if (unsafe-fx<
                                                                                    idx_0
                                                                                    stop*_0)
                                                                                 (let ((e_0
                                                                                        (unsafe-vector-ref
                                                                                         v*_0
                                                                                         idx_0)))
                                                                                   (begin
                                                                                     (loop_0
                                                                                      e_0)
                                                                                     (for-loop_0
                                                                                      (unsafe-fx+
                                                                                       idx_0
                                                                                       1))))
                                                                                 (values)))))))
                                                                        (for-loop_0
                                                                         start*_0))))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      4
                                                                      args))))
                                                                  (void))
                                                                (if (srcloc?
                                                                     v_1)
                                                                  (if (path?
                                                                       (srcloc-source
                                                                        v_1))
                                                                    (void)
                                                                    (begin
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (unsafe-normalise-inputs
                                                                          unsafe-vector-length
                                                                          (struct->vector
                                                                           v_1)
                                                                          1
                                                                          #f
                                                                          1))
                                                                       (case-lambda
                                                                        ((v*_0
                                                                          start*_0
                                                                          stop*_0
                                                                          step*_0)
                                                                         (begin
                                                                           #t
                                                                           (letrec*
                                                                            ((for-loop_0
                                                                              (|#%name|
                                                                               for-loop
                                                                               (lambda (idx_0)
                                                                                 (begin
                                                                                   (if (unsafe-fx<
                                                                                        idx_0
                                                                                        stop*_0)
                                                                                     (let ((e_0
                                                                                            (unsafe-vector-ref
                                                                                             v*_0
                                                                                             idx_0)))
                                                                                       (begin
                                                                                         (loop_0
                                                                                          e_0)
                                                                                         (for-loop_0
                                                                                          (unsafe-fx+
                                                                                           idx_0
                                                                                           1))))
                                                                                     (values)))))))
                                                                            (for-loop_0
                                                                             start*_0))))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          4
                                                                          args))))
                                                                      (void)))
                                                                  (void)))))))))
                                                  (hash-set!
                                                   objs_0
                                                   v_1
                                                   obj-step_0)
                                                  (set! obj-step_0
                                                    (add1 obj-step_0))))))))))
                                     (loop_0 v_0))
                                    (if (null? frontier_0)
                                      (void)
                                      (let ((l_0 frontier_0))
                                        (begin
                                          (set! frontier_0 null)
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (lst_0)
                                                  (begin
                                                    (if (pair? lst_0)
                                                      (let ((v_1
                                                             (unsafe-car
                                                              lst_0)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_0)))
                                                          (begin
                                                            (frontier-loop_0
                                                             v_1)
                                                            (for-loop_0
                                                             rest_0))))
                                                      (values)))))))
                                             (for-loop_0 l_0)))
                                          (void))))))))))
                           (frontier-loop_0 v18_0))
                          (let ((num-mutables_0 (hash-count mutables_0)))
                            (let ((share-step-positions_0
                                   (let ((share-steps_0
                                          (reverse$1
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0 i_0)
                                                   (begin
                                                     (if i_0
                                                       (let ((obj_0
                                                              (hash-iterate-key
                                                               shares_0
                                                               i_0)))
                                                         (let ((fold-var_1
                                                                (let ((fold-var_1
                                                                       (cons
                                                                        (hash-ref
                                                                         objs_0
                                                                         obj_0)
                                                                        fold-var_0)))
                                                                  (values
                                                                   fold-var_1))))
                                                           (for-loop_0
                                                            fold-var_1
                                                            (hash-iterate-next
                                                             shares_0
                                                             i_0))))
                                                       fold-var_0))))))
                                              (for-loop_0
                                               null
                                               (hash-iterate-first
                                                shares_0)))))))
                                     (let ((lst_0
                                            (sort.1 #f #f share-steps_0 <)))
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (table_0 lst_1 pos_0)
                                               (begin
                                                 (if (if (pair? lst_1) #t #f)
                                                   (let ((step_0
                                                          (unsafe-car lst_1)))
                                                     (let ((rest_0
                                                            (unsafe-cdr
                                                             lst_1)))
                                                       (let ((table_1
                                                              (let ((table_1
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (values
                                                                         step_0
                                                                         pos_0))
                                                                      (case-lambda
                                                                       ((key_0
                                                                         val_0)
                                                                        (hash-set
                                                                         table_0
                                                                         key_0
                                                                         val_0))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))
                                                                (values
                                                                 table_1))))
                                                         (for-loop_0
                                                          table_1
                                                          rest_0
                                                          (+ pos_0 1)))))
                                                   table_0))))))
                                          (for-loop_0
                                           hash2589
                                           lst_0
                                           num-mutables_0)))))))
                              (let ((stream_0 null))
                                (let ((stream-size_0 0))
                                  (let ((next-push-position_0
                                         (|#%name|
                                          next-push-position
                                          (lambda () (begin stream-size_0)))))
                                    (let ((quoted?_0
                                           (|#%name|
                                            quoted?
                                            (lambda (pos_0)
                                              (begin
                                                (let ((v_0
                                                       (let ((app_0 stream_0))
                                                         (list-ref
                                                          app_0
                                                          (let ((app_1
                                                                 stream-size_0))
                                                            (-
                                                             app_1
                                                             (add1 pos_0)))))))
                                                  (let ((or-part_0
                                                         (not (keyword? v_0))))
                                                    (if or-part_0
                                                      or-part_0
                                                      (eq?
                                                       kw2626
                                                       v_0)))))))))
                                      (let ((ser-reset!_0
                                             (|#%name|
                                              ser-reset!
                                              (lambda (pos_0)
                                                (begin
                                                  (begin
                                                    (set! stream_0
                                                      (let ((app_0 stream_0))
                                                        (list-tail
                                                         app_0
                                                         (-
                                                          stream-size_0
                                                          pos_0))))
                                                    (set! stream-size_0
                                                      pos_0)))))))
                                        (let ((reap-stream!_0
                                               (|#%name|
                                                reap-stream!
                                                (lambda ()
                                                  (begin
                                                    (begin0
                                                      (list->vector
                                                       (reverse$1 stream_0))
                                                      (set! stream_0 null)
                                                      (set! stream-size_0
                                                        0)))))))
                                          (letrec*
                                           ((ser-push!_0
                                             (|#%name|
                                              ser-push!
                                              (case-lambda
                                               ((v_0)
                                                (begin
                                                  (if (hash-ref
                                                       shares_0
                                                       v_0
                                                       #f)
                                                    (let ((n_0
                                                           (hash-ref
                                                            share-step-positions_0
                                                            (hash-ref
                                                             objs_0
                                                             v_0))))
                                                      (begin
                                                        (ser-push!_0
                                                         'tag
                                                         kw2603)
                                                        (ser-push!_0
                                                         'exact
                                                         n_0)))
                                                    (let ((c1_0
                                                           (hash-ref
                                                            mutables_0
                                                            v_0
                                                            #f)))
                                                      (if c1_0
                                                        (begin
                                                          (ser-push!_0
                                                           'tag
                                                           kw2603)
                                                          (ser-push!_0
                                                           'exact
                                                           c1_0))
                                                        (ser-push-encoded!_0
                                                         v_0))))))
                                               ((kind_0 v_0)
                                                (if (eq? kind_0 'exact)
                                                  (begin
                                                    (set! stream_0
                                                      (cons v_0 stream_0))
                                                    (set! stream-size_0
                                                      (add1 stream-size_0)))
                                                  (if (eq? kind_0 'tag)
                                                    (ser-push!_0 'exact v_0)
                                                    (if (eq? kind_0 'reference)
                                                      (if (hash-ref
                                                           shares_0
                                                           v_0
                                                           #f)
                                                        (let ((n_0
                                                               (hash-ref
                                                                share-step-positions_0
                                                                (hash-ref
                                                                 objs_0
                                                                 v_0))))
                                                          (ser-push!_0
                                                           'exact
                                                           n_0))
                                                        (let ((c2_0
                                                               (hash-ref
                                                                mutables_0
                                                                v_0
                                                                #f)))
                                                          (if c2_0
                                                            (ser-push!_0
                                                             'exact
                                                             c2_0)
                                                            (ser-push!_0
                                                             v_0))))
                                                      (ser-push!_0 v_0))))))))
                                            (ser-push-encoded!_0
                                             (|#%name|
                                              ser-push-encoded!
                                              (lambda (v_0)
                                                (begin
                                                  (if (keyword? v_0)
                                                    (begin
                                                      (ser-push!_0
                                                       'tag
                                                       kw2626)
                                                      (ser-push!_0 'exact v_0))
                                                    (if (1/module-path-index?
                                                         v_0)
                                                      (begin
                                                        (ser-push!_0
                                                         'tag
                                                         kw3163)
                                                        (ser-push!_0
                                                         'exact
                                                         (add-module-path-index!/pos
                                                          mpis6_0
                                                          v_0)))
                                                      (if (serialize? v_0)
                                                        (|#%app|
                                                         (serialize-ref v_0)
                                                         v_0
                                                         ser-push!_0
                                                         state_0)
                                                        (if (if (list? v_0)
                                                              (if (pair? v_0)
                                                                (pair?
                                                                 (cdr v_0))
                                                                #f)
                                                              #f)
                                                          (let ((start-pos_0
                                                                 (begin-unsafe
                                                                  (begin
                                                                    stream-size_0))))
                                                            (begin
                                                              (ser-push!_0
                                                               'tag
                                                               kw2802)
                                                              (begin
                                                                (ser-push!_0
                                                                 'exact
                                                                 (length v_0))
                                                                (let ((all-quoted?_0
                                                                       (begin
                                                                         (letrec*
                                                                          ((for-loop_0
                                                                            (|#%name|
                                                                             for-loop
                                                                             (lambda (all-quoted?_0
                                                                                      lst_0)
                                                                               (begin
                                                                                 (if (pair?
                                                                                      lst_0)
                                                                                   (let ((i_0
                                                                                          (unsafe-car
                                                                                           lst_0)))
                                                                                     (let ((rest_0
                                                                                            (unsafe-cdr
                                                                                             lst_0)))
                                                                                       (let ((all-quoted?_1
                                                                                              (let ((all-quoted?_1
                                                                                                     (let ((i-pos_0
                                                                                                            (begin-unsafe
                                                                                                             (begin
                                                                                                               stream-size_0))))
                                                                                                       (begin
                                                                                                         (ser-push!_0
                                                                                                          i_0)
                                                                                                         (if all-quoted?_0
                                                                                                           (quoted?_0
                                                                                                            i-pos_0)
                                                                                                           #f)))))
                                                                                                (values
                                                                                                 all-quoted?_1))))
                                                                                         (for-loop_0
                                                                                          all-quoted?_1
                                                                                          rest_0))))
                                                                                   all-quoted?_0))))))
                                                                          (for-loop_0
                                                                           #t
                                                                           v_0)))))
                                                                  (if all-quoted?_0
                                                                    (begin
                                                                      (ser-reset!_0
                                                                       start-pos_0)
                                                                      (ser-push-optional-quote!_0)
                                                                      (ser-push!_0
                                                                       'exact
                                                                       v_0))
                                                                    (void))))))
                                                          (if (pair? v_0)
                                                            (let ((start-pos_0
                                                                   (begin-unsafe
                                                                    (begin
                                                                      stream-size_0))))
                                                              (begin
                                                                (ser-push!_0
                                                                 'tag
                                                                 kw2821)
                                                                (let ((a-pos_0
                                                                       (begin-unsafe
                                                                        (begin
                                                                          stream-size_0))))
                                                                  (begin
                                                                    (ser-push!_0
                                                                     (car v_0))
                                                                    (let ((d-pos_0
                                                                           (begin-unsafe
                                                                            (begin
                                                                              stream-size_0))))
                                                                      (begin
                                                                        (ser-push!_0
                                                                         (cdr
                                                                          v_0))
                                                                        (if (if (quoted?_0
                                                                                 a-pos_0)
                                                                              (quoted?_0
                                                                               d-pos_0)
                                                                              #f)
                                                                          (begin
                                                                            (ser-reset!_0
                                                                             start-pos_0)
                                                                            (ser-push-optional-quote!_0)
                                                                            (ser-push!_0
                                                                             'exact
                                                                             v_0))
                                                                          (void))))))))
                                                            (if (box? v_0)
                                                              (let ((start-pos_0
                                                                     (begin-unsafe
                                                                      (begin
                                                                        stream-size_0))))
                                                                (begin
                                                                  (ser-push!_0
                                                                   'tag
                                                                   kw2525)
                                                                  (let ((v-pos_0
                                                                         (begin-unsafe
                                                                          (begin
                                                                            stream-size_0))))
                                                                    (begin
                                                                      (ser-push!_0
                                                                       (unbox
                                                                        v_0))
                                                                      (if (quoted?_0
                                                                           v-pos_0)
                                                                        (begin
                                                                          (ser-reset!_0
                                                                           start-pos_0)
                                                                          (ser-push-optional-quote!_0)
                                                                          (ser-push!_0
                                                                           'exact
                                                                           v_0))
                                                                        (void))))))
                                                              (if (vector? v_0)
                                                                (let ((start-pos_0
                                                                       (begin-unsafe
                                                                        (begin
                                                                          stream-size_0))))
                                                                  (begin
                                                                    (ser-push!_0
                                                                     'tag
                                                                     kw2967)
                                                                    (begin
                                                                      (ser-push!_0
                                                                       'exact
                                                                       (vector-length
                                                                        v_0))
                                                                      (let ((all-quoted?_0
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (begin
                                                                                  (check-vector
                                                                                   v_0)
                                                                                  (values
                                                                                   v_0
                                                                                   (unsafe-vector-length
                                                                                    v_0))))
                                                                              (case-lambda
                                                                               ((vec_0
                                                                                 len_0)
                                                                                (begin
                                                                                  #f
                                                                                  (letrec*
                                                                                   ((for-loop_0
                                                                                     (|#%name|
                                                                                      for-loop
                                                                                      (lambda (all-quoted?_0
                                                                                               pos_0)
                                                                                        (begin
                                                                                          (if (unsafe-fx<
                                                                                               pos_0
                                                                                               len_0)
                                                                                            (let ((i_0
                                                                                                   (unsafe-vector-ref
                                                                                                    vec_0
                                                                                                    pos_0)))
                                                                                              (let ((all-quoted?_1
                                                                                                     (let ((all-quoted?_1
                                                                                                            (let ((i-pos_0
                                                                                                                   (begin-unsafe
                                                                                                                    (begin
                                                                                                                      stream-size_0))))
                                                                                                              (begin
                                                                                                                (ser-push!_0
                                                                                                                 i_0)
                                                                                                                (if all-quoted?_0
                                                                                                                  (quoted?_0
                                                                                                                   i-pos_0)
                                                                                                                  #f)))))
                                                                                                       (values
                                                                                                        all-quoted?_1))))
                                                                                                (for-loop_0
                                                                                                 all-quoted?_1
                                                                                                 (unsafe-fx+
                                                                                                  1
                                                                                                  pos_0))))
                                                                                            all-quoted?_0))))))
                                                                                   (for-loop_0
                                                                                    #t
                                                                                    0))))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 2
                                                                                 args))))))
                                                                        (if all-quoted?_0
                                                                          (begin
                                                                            (ser-reset!_0
                                                                             start-pos_0)
                                                                            (ser-push-optional-quote!_0)
                                                                            (ser-push!_0
                                                                             'exact
                                                                             v_0))
                                                                          (void))))))
                                                                (if (hash? v_0)
                                                                  (let ((start-pos_0
                                                                         (begin-unsafe
                                                                          (begin
                                                                            stream-size_0))))
                                                                    (let ((as-set?_0
                                                                           (begin
                                                                             (letrec*
                                                                              ((for-loop_0
                                                                                (|#%name|
                                                                                 for-loop
                                                                                 (lambda (result_0
                                                                                          i_0)
                                                                                   (begin
                                                                                     (if i_0
                                                                                       (let ((val_0
                                                                                              (hash-iterate-value
                                                                                               v_0
                                                                                               i_0)))
                                                                                         (let ((result_1
                                                                                                (eq?
                                                                                                 val_0
                                                                                                 #t)))
                                                                                           (let ((result_2
                                                                                                  (values
                                                                                                   result_1)))
                                                                                             (if (if (not
                                                                                                      (let ((x_0
                                                                                                             (list
                                                                                                              val_0)))
                                                                                                        (not
                                                                                                         result_2)))
                                                                                                   #t
                                                                                                   #f)
                                                                                               (for-loop_0
                                                                                                result_2
                                                                                                (hash-iterate-next
                                                                                                 v_0
                                                                                                 i_0))
                                                                                               result_2))))
                                                                                       result_0))))))
                                                                              (for-loop_0
                                                                               #t
                                                                               (hash-iterate-first
                                                                                v_0))))))
                                                                      (begin
                                                                        (ser-push!_0
                                                                         'tag
                                                                         (if as-set?_0
                                                                           (if (hash-eq?
                                                                                v_0)
                                                                             kw3357
                                                                             (if (hash-eqv?
                                                                                  v_0)
                                                                               kw2333
                                                                               kw2473))
                                                                           (if (hash-eq?
                                                                                v_0)
                                                                             kw2796
                                                                             (if (hash-eqv?
                                                                                  v_0)
                                                                               (if (eq?
                                                                                    v_0
                                                                                    phase+space-hasheqv11_0)
                                                                                 kw2406
                                                                                 kw3245)
                                                                               kw2582))))
                                                                        (begin
                                                                          (ser-push!_0
                                                                           'exact
                                                                           (hash-count
                                                                            v_0))
                                                                          (let ((ks_0
                                                                                 (sorted-hash-keys
                                                                                  v_0)))
                                                                            (let ((all-quoted?_0
                                                                                   (begin
                                                                                     (letrec*
                                                                                      ((for-loop_0
                                                                                        (|#%name|
                                                                                         for-loop
                                                                                         (lambda (all-quoted?_0
                                                                                                  lst_0)
                                                                                           (begin
                                                                                             (if (pair?
                                                                                                  lst_0)
                                                                                               (let ((k_0
                                                                                                      (unsafe-car
                                                                                                       lst_0)))
                                                                                                 (let ((rest_0
                                                                                                        (unsafe-cdr
                                                                                                         lst_0)))
                                                                                                   (let ((all-quoted?_1
                                                                                                          (let ((all-quoted?_1
                                                                                                                 (let ((k-pos_0
                                                                                                                        (begin-unsafe
                                                                                                                         (begin
                                                                                                                           stream-size_0))))
                                                                                                                   (begin
                                                                                                                     (ser-push!_0
                                                                                                                      k_0)
                                                                                                                     (let ((v-pos_0
                                                                                                                            (begin-unsafe
                                                                                                                             (begin
                                                                                                                               stream-size_0))))
                                                                                                                       (begin
                                                                                                                         (if as-set?_0
                                                                                                                           (void)
                                                                                                                           (ser-push!_0
                                                                                                                            (hash-ref
                                                                                                                             v_0
                                                                                                                             k_0)))
                                                                                                                         (if all-quoted?_0
                                                                                                                           (if (quoted?_0
                                                                                                                                k-pos_0)
                                                                                                                             (if as-set?_0
                                                                                                                               as-set?_0
                                                                                                                               (quoted?_0
                                                                                                                                v-pos_0))
                                                                                                                             #f)
                                                                                                                           #f)))))))
                                                                                                            (values
                                                                                                             all-quoted?_1))))
                                                                                                     (for-loop_0
                                                                                                      all-quoted?_1
                                                                                                      rest_0))))
                                                                                               all-quoted?_0))))))
                                                                                      (for-loop_0
                                                                                       #t
                                                                                       ks_0)))))
                                                                              (if all-quoted?_0
                                                                                (begin
                                                                                  (ser-reset!_0
                                                                                   start-pos_0)
                                                                                  (ser-push-optional-quote!_0)
                                                                                  (ser-push!_0
                                                                                   'exact
                                                                                   v_0))
                                                                                (void))))))))
                                                                  (let ((c3_0
                                                                         (prefab-struct-key
                                                                          v_0)))
                                                                    (if c3_0
                                                                      (let ((vec_0
                                                                             (struct->vector
                                                                              v_0)))
                                                                        (let ((start-pos_0
                                                                               (begin-unsafe
                                                                                (begin
                                                                                  stream-size_0))))
                                                                          (begin
                                                                            (ser-push!_0
                                                                             'tag
                                                                             kw2931)
                                                                            (begin
                                                                              (ser-push!_0
                                                                               'exact
                                                                               c3_0)
                                                                              (begin
                                                                                (ser-push!_0
                                                                                 'exact
                                                                                 (sub1
                                                                                  (vector-length
                                                                                   vec_0)))
                                                                                (let ((all-quoted?_0
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (unsafe-normalise-inputs
                                                                                           unsafe-vector-length
                                                                                           vec_0
                                                                                           1
                                                                                           #f
                                                                                           1))
                                                                                        (case-lambda
                                                                                         ((v*_0
                                                                                           start*_0
                                                                                           stop*_0
                                                                                           step*_0)
                                                                                          (begin
                                                                                            #t
                                                                                            (letrec*
                                                                                             ((for-loop_0
                                                                                               (|#%name|
                                                                                                for-loop
                                                                                                (lambda (all-quoted?_0
                                                                                                         idx_0)
                                                                                                  (begin
                                                                                                    (if (unsafe-fx<
                                                                                                         idx_0
                                                                                                         stop*_0)
                                                                                                      (let ((i_0
                                                                                                             (unsafe-vector-ref
                                                                                                              v*_0
                                                                                                              idx_0)))
                                                                                                        (let ((all-quoted?_1
                                                                                                               (let ((all-quoted?_1
                                                                                                                      (let ((i-pos_0
                                                                                                                             (begin-unsafe
                                                                                                                              (begin
                                                                                                                                stream-size_0))))
                                                                                                                        (begin
                                                                                                                          (ser-push!_0
                                                                                                                           i_0)
                                                                                                                          (if all-quoted?_0
                                                                                                                            (quoted?_0
                                                                                                                             i-pos_0)
                                                                                                                            #f)))))
                                                                                                                 (values
                                                                                                                  all-quoted?_1))))
                                                                                                          (for-loop_0
                                                                                                           all-quoted?_1
                                                                                                           (unsafe-fx+
                                                                                                            idx_0
                                                                                                            1))))
                                                                                                      all-quoted?_0))))))
                                                                                             (for-loop_0
                                                                                              #t
                                                                                              start*_0))))
                                                                                         (args
                                                                                          (raise-binding-result-arity-error
                                                                                           4
                                                                                           args))))))
                                                                                  (if all-quoted?_0
                                                                                    (begin
                                                                                      (ser-reset!_0
                                                                                       start-pos_0)
                                                                                      (ser-push-optional-quote!_0)
                                                                                      (ser-push!_0
                                                                                       'exact
                                                                                       v_0))
                                                                                    (void))))))))
                                                                      (if (srcloc?
                                                                           v_0)
                                                                        (if (path?
                                                                             (srcloc-source
                                                                              v_0))
                                                                          (begin
                                                                            (ser-push-optional-quote!_0)
                                                                            (ser-push!_0
                                                                             'exact
                                                                             v_0))
                                                                          (begin
                                                                            (ser-push!_0
                                                                             'tag
                                                                             kw2496)
                                                                            (ser-push!_0
                                                                             (srcloc-source
                                                                              v_0))
                                                                            (ser-push!_0
                                                                             (srcloc-line
                                                                              v_0))
                                                                            (ser-push!_0
                                                                             (srcloc-column
                                                                              v_0))
                                                                            (ser-push!_0
                                                                             (srcloc-position
                                                                              v_0))
                                                                            (ser-push!_0
                                                                             (srcloc-span
                                                                              v_0))))
                                                                        (begin
                                                                          (ser-push-optional-quote!_0)
                                                                          (ser-push!_0
                                                                           'exact
                                                                           v_0)))))))))))))))))
                                            (ser-push-optional-quote!_0
                                             (|#%name|
                                              ser-push-optional-quote!
                                              (lambda () (begin (void))))))
                                           (let ((ser-shell!_0
                                                  (|#%name|
                                                   ser-shell!
                                                   (lambda (v_0)
                                                     (begin
                                                       (if (serialize-fill!?
                                                            v_0)
                                                         (|#%app|
                                                          (serialize-ref v_0)
                                                          v_0
                                                          ser-push!_0
                                                          state_0)
                                                         (if (box? v_0)
                                                           (ser-push!_0
                                                            'tag
                                                            kw2525)
                                                           (if (vector? v_0)
                                                             (begin
                                                               (ser-push!_0
                                                                'tag
                                                                kw2967)
                                                               (ser-push!_0
                                                                'exact
                                                                (vector-length
                                                                 v_0)))
                                                             (if (hash? v_0)
                                                               (ser-push!_0
                                                                'tag
                                                                (if (hash-eq?
                                                                     v_0)
                                                                  kw2796
                                                                  (if (hash-eqv?
                                                                       v_0)
                                                                    kw3245
                                                                    kw2582)))
                                                               (error
                                                                'ser-shell
                                                                "unknown mutable: ~e"
                                                                v_0))))))))))
                                             (let ((ser-shell-fill!_0
                                                    (|#%name|
                                                     ser-shell-fill!
                                                     (lambda (v_0)
                                                       (begin
                                                         (if (serialize-fill!?
                                                              v_0)
                                                           (|#%app|
                                                            (serialize-fill!-ref
                                                             v_0)
                                                            v_0
                                                            ser-push!_0
                                                            state_0)
                                                           (if (box? v_0)
                                                             (begin
                                                               (ser-push!_0
                                                                'tag
                                                                kw2531)
                                                               (ser-push!_0
                                                                (unbox v_0)))
                                                             (if (vector? v_0)
                                                               (begin
                                                                 (ser-push!_0
                                                                  'tag
                                                                  kw3046)
                                                                 (ser-push!_0
                                                                  'exact
                                                                  (vector-length
                                                                   v_0))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (begin
                                                                      (check-vector
                                                                       v_0)
                                                                      (values
                                                                       v_0
                                                                       (unsafe-vector-length
                                                                        v_0))))
                                                                  (case-lambda
                                                                   ((vec_0
                                                                     len_0)
                                                                    (begin
                                                                      #f
                                                                      (letrec*
                                                                       ((for-loop_0
                                                                         (|#%name|
                                                                          for-loop
                                                                          (lambda (pos_0)
                                                                            (begin
                                                                              (if (unsafe-fx<
                                                                                   pos_0
                                                                                   len_0)
                                                                                (let ((v_1
                                                                                       (unsafe-vector-ref
                                                                                        vec_0
                                                                                        pos_0)))
                                                                                  (begin
                                                                                    (ser-push!_0
                                                                                     v_1)
                                                                                    (for-loop_0
                                                                                     (unsafe-fx+
                                                                                      1
                                                                                      pos_0))))
                                                                                (values)))))))
                                                                       (for-loop_0
                                                                        0))))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args))))
                                                                 (void))
                                                               (if (hash? v_0)
                                                                 (begin
                                                                   (ser-push!_0
                                                                    'tag
                                                                    kw2194)
                                                                   (begin
                                                                     (ser-push!_0
                                                                      'exact
                                                                      (hash-count
                                                                       v_0))
                                                                     (let ((ks_0
                                                                            (sorted-hash-keys
                                                                             v_0)))
                                                                       (begin
                                                                         (begin
                                                                           (letrec*
                                                                            ((for-loop_0
                                                                              (|#%name|
                                                                               for-loop
                                                                               (lambda (lst_0)
                                                                                 (begin
                                                                                   (if (pair?
                                                                                        lst_0)
                                                                                     (let ((k_0
                                                                                            (unsafe-car
                                                                                             lst_0)))
                                                                                       (let ((rest_0
                                                                                              (unsafe-cdr
                                                                                               lst_0)))
                                                                                         (begin
                                                                                           (begin
                                                                                             (ser-push!_0
                                                                                              k_0)
                                                                                             (ser-push!_0
                                                                                              (hash-ref
                                                                                               v_0
                                                                                               k_0)))
                                                                                           (for-loop_0
                                                                                            rest_0))))
                                                                                     (values)))))))
                                                                            (for-loop_0
                                                                             ks_0)))
                                                                         (void)))))
                                                                 (error
                                                                  'ser-shell-fill
                                                                  "unknown mutable: ~e"
                                                                  v_0))))))))))
                                               (let ((rev-mutables_0
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (table_0
                                                                     i_0)
                                                              (begin
                                                                (if i_0
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (hash-iterate-key+value
                                                                      mutables_0
                                                                      i_0))
                                                                   (case-lambda
                                                                    ((k_0 v_0)
                                                                     (let ((table_1
                                                                            (let ((table_1
                                                                                   (call-with-values
                                                                                    (lambda ()
                                                                                      (values
                                                                                       v_0
                                                                                       k_0))
                                                                                    (case-lambda
                                                                                     ((key_0
                                                                                       val_0)
                                                                                      (hash-set
                                                                                       table_0
                                                                                       key_0
                                                                                       val_0))
                                                                                     (args
                                                                                      (raise-binding-result-arity-error
                                                                                       2
                                                                                       args))))))
                                                                              (values
                                                                               table_1))))
                                                                       (for-loop_0
                                                                        table_1
                                                                        (hash-iterate-next
                                                                         mutables_0
                                                                         i_0))))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args))))
                                                                  table_0))))))
                                                         (for-loop_0
                                                          hash2589
                                                          (hash-iterate-first
                                                           mutables_0))))))
                                                 (let ((mutable-shell-bindings_0
                                                        (begin
                                                          (begin
                                                            (let ((end_0
                                                                   (hash-count
                                                                    mutables_0)))
                                                              (begin
                                                                (letrec*
                                                                 ((for-loop_0
                                                                   (|#%name|
                                                                    for-loop
                                                                    (lambda (pos_0)
                                                                      (begin
                                                                        (if (<
                                                                             pos_0
                                                                             end_0)
                                                                          (begin
                                                                            (ser-shell!_0
                                                                             (hash-ref
                                                                              rev-mutables_0
                                                                              pos_0))
                                                                            (for-loop_0
                                                                             (+
                                                                              pos_0
                                                                              1)))
                                                                          (values)))))))
                                                                 (for-loop_0
                                                                  0))))
                                                            (void))
                                                          (reap-stream!_0))))
                                                   (let ((rev-shares_0
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_0
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (table_0
                                                                         i_0)
                                                                  (begin
                                                                    (if i_0
                                                                      (let ((obj_0
                                                                             (hash-iterate-key
                                                                              shares_0
                                                                              i_0)))
                                                                        (let ((table_1
                                                                               (let ((table_1
                                                                                      (call-with-values
                                                                                       (lambda ()
                                                                                         (values
                                                                                          (hash-ref
                                                                                           share-step-positions_0
                                                                                           (hash-ref
                                                                                            objs_0
                                                                                            obj_0))
                                                                                          obj_0))
                                                                                       (case-lambda
                                                                                        ((key_0
                                                                                          val_0)
                                                                                         (hash-set
                                                                                          table_0
                                                                                          key_0
                                                                                          val_0))
                                                                                        (args
                                                                                         (raise-binding-result-arity-error
                                                                                          2
                                                                                          args))))))
                                                                                 (values
                                                                                  table_1))))
                                                                          (for-loop_0
                                                                           table_1
                                                                           (hash-iterate-next
                                                                            shares_0
                                                                            i_0))))
                                                                      table_0))))))
                                                             (for-loop_0
                                                              hash2589
                                                              (hash-iterate-first
                                                               shares_0))))))
                                                     (let ((shared-bindings_0
                                                            (begin
                                                              (begin
                                                                (let ((end_0
                                                                       (+
                                                                        num-mutables_0
                                                                        (hash-count
                                                                         shares_0))))
                                                                  (begin
                                                                    (letrec*
                                                                     ((for-loop_0
                                                                       (|#%name|
                                                                        for-loop
                                                                        (lambda (pos_0)
                                                                          (begin
                                                                            (if (<
                                                                                 pos_0
                                                                                 end_0)
                                                                              (begin
                                                                                (ser-push-encoded!_0
                                                                                 (hash-ref
                                                                                  rev-shares_0
                                                                                  pos_0))
                                                                                (for-loop_0
                                                                                 (+
                                                                                  pos_0
                                                                                  1)))
                                                                              (values)))))))
                                                                     (for-loop_0
                                                                      num-mutables_0))))
                                                                (void))
                                                              (reap-stream!_0))))
                                                       (let ((mutable-fills_0
                                                              (begin
                                                                (begin
                                                                  (let ((end_0
                                                                         (hash-count
                                                                          mutables_0)))
                                                                    (begin
                                                                      (letrec*
                                                                       ((for-loop_0
                                                                         (|#%name|
                                                                          for-loop
                                                                          (lambda (pos_0)
                                                                            (begin
                                                                              (if (<
                                                                                   pos_0
                                                                                   end_0)
                                                                                (begin
                                                                                  (ser-shell-fill!_0
                                                                                   (hash-ref
                                                                                    rev-mutables_0
                                                                                    pos_0))
                                                                                  (for-loop_0
                                                                                   (+
                                                                                    pos_0
                                                                                    1)))
                                                                                (values)))))))
                                                                       (for-loop_0
                                                                        0))))
                                                                  (void))
                                                                (reap-stream!_0))))
                                                         (let ((result_0
                                                                (begin
                                                                  (ser-push!_0
                                                                   v18_0)
                                                                  (reap-stream!_0))))
                                                           (if as-data?7_0
                                                             (let ((app_0
                                                                    (hash-count
                                                                     mutables_0)))
                                                               (vector
                                                                app_0
                                                                mutable-shell-bindings_0
                                                                (hash-count
                                                                 shares_0)
                                                                shared-bindings_0
                                                                mutable-fills_0
                                                                result_0))
                                                             (let ((finish_0
                                                                    (|#%name|
                                                                     finish
                                                                     (lambda (mutable-shell-bindings-expr_0
                                                                              shared-bindings-expr_0
                                                                              mutable-fills-expr_0
                                                                              result-expr_0)
                                                                       (begin
                                                                         (let ((app_0
                                                                                (list
                                                                                 'quote
                                                                                 (hash-count
                                                                                  mutables_0))))
                                                                           (list
                                                                            'deserialize
                                                                            mpi-vector-id
                                                                            (if syntax-support?8_0
                                                                              inspector-id
                                                                              #f)
                                                                            (if syntax-support?8_0
                                                                              bulk-binding-registry-id
                                                                              #f)
                                                                            app_0
                                                                            mutable-shell-bindings-expr_0
                                                                            (list
                                                                             'quote
                                                                             (hash-count
                                                                              shares_0))
                                                                            shared-bindings-expr_0
                                                                            mutable-fills-expr_0
                                                                            result-expr_0)))))))
                                                               (let ((app_0
                                                                      (list
                                                                       (list
                                                                        '(data)
                                                                        (list
                                                                         'quote
                                                                         (vector
                                                                          mutable-shell-bindings_0
                                                                          shared-bindings_0
                                                                          mutable-fills_0
                                                                          result_0))))))
                                                                 (list
                                                                  'let-values
                                                                  app_0
                                                                  (finish_0
                                                                   '(unsafe-vector*-ref
                                                                     data
                                                                     0)
                                                                   '(unsafe-vector*-ref
                                                                     data
                                                                     1)
                                                                   '(unsafe-vector*-ref
                                                                     data
                                                                     2)
                                                                   '(unsafe-vector*-ref
                                                                     data
                                                                     3)))))))))))))))))))))))))))))))))))))
(define sorted-hash-keys
  (lambda (ht_0)
    (let ((ks_0 (hash-keys ht_0)))
      (if (null? ks_0)
        ks_0
        (if (null? (cdr ks_0))
          ks_0
          (if (andmap_2344 symbol? ks_0)
            (sort.1 #f #f ks_0 symbol<?)
            (if (andmap_2344 scope? ks_0)
              (let ((scope<?36_0 scope<?)) (sort.1 #f #f ks_0 scope<?36_0))
              (if (andmap_2344 shifted-multi-scope? ks_0)
                (sort.1 #f #f ks_0 shifted-multi-scope<?)
                (if (andmap_2344 real? ks_0)
                  (sort.1 #f #f ks_0 <)
                  ks_0)))))))))
(define deserialize
  (lambda (mpis_0
           inspector_0
           bulk-binding-registry_0
           num-mutables_0
           mutable-vec_0
           num-shared_0
           shared-vec_0
           mutable-fill-vec_0
           result-vec_0)
    (let ((shared_0 (make-vector (+ num-mutables_0 num-shared_0) 'uninit)))
      (begin
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (pos_0 pos_1)
                (begin
                  (if (< pos_1 num-mutables_0)
                    (let ((pos_2
                           (let ((pos_2
                                  (call-with-values
                                   (lambda ()
                                     (decode-shell
                                      mutable-vec_0
                                      pos_0
                                      mpis_0
                                      inspector_0
                                      bulk-binding-registry_0
                                      shared_0))
                                   (case-lambda
                                    ((d_0 next-pos_0)
                                     (begin
                                       (vector-set! shared_0 pos_1 d_0)
                                       next-pos_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))))
                             (values pos_2))))
                      (for-loop_0 pos_2 (+ pos_1 1)))
                    pos_0))))))
           (for-loop_0 0 0)))
        (begin
          (let ((end_0 (+ num-mutables_0 num-shared_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (pos_0 pos_1)
                    (begin
                      (if (< pos_1 end_0)
                        (let ((pos_2
                               (let ((pos_2
                                      (call-with-values
                                       (lambda ()
                                         (decode
                                          shared-vec_0
                                          pos_0
                                          mpis_0
                                          inspector_0
                                          bulk-binding-registry_0
                                          shared_0))
                                       (case-lambda
                                        ((d_0 next-pos_0)
                                         (begin
                                           (vector-set! shared_0 pos_1 d_0)
                                           next-pos_0))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                 (values pos_2))))
                          (for-loop_0 pos_2 (+ pos_1 1)))
                        pos_0))))))
               (for-loop_0 0 num-mutables_0))))
          (begin
            (let ((start_0 0))
              (let ((end_0 num-mutables_0))
                (let ((inc_0 1))
                  (call-with-values
                   (lambda ()
                     (begin
                       (check-vector shared_0)
                       (values shared_0 (unsafe-vector-length shared_0))))
                   (case-lambda
                    ((vec_0 len_0)
                     (let ((inc_1 inc_0) (end_1 end_0) (start_1 start_0))
                       (begin
                         #f
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (pos_0 pos_1 pos_2)
                               (begin
                                 (if (if (< pos_1 end_1)
                                       (unsafe-fx< pos_2 len_0)
                                       #f)
                                   (let ((v_0 (unsafe-vector-ref vec_0 pos_2)))
                                     (let ((pos_3
                                            (let ((pos_3
                                                   (decode-fill!
                                                    v_0
                                                    mutable-fill-vec_0
                                                    pos_0
                                                    mpis_0
                                                    inspector_0
                                                    bulk-binding-registry_0
                                                    shared_0)))
                                              (values pos_3))))
                                       (let ((app_0 (+ pos_1 inc_1)))
                                         (for-loop_0
                                          pos_3
                                          app_0
                                          (unsafe-fx+ 1 pos_2)))))
                                   pos_0))))))
                          (for-loop_0 0 start_1 0)))))
                    (args (raise-binding-result-arity-error 2 args)))))))
            (call-with-values
             (lambda ()
               (decode
                result-vec_0
                0
                mpis_0
                inspector_0
                bulk-binding-registry_0
                shared_0))
             (case-lambda
              ((result_0 done-pos_0) result_0)
              (args (raise-binding-result-arity-error 2 args))))))))))
(define deserialize-data
  (lambda (mpis_0 inspector_0 bulk-binding-registry_0 data_0)
    (begin
      (if (if (vector? data_0) (= 6 (vector-length data_0)) #f)
        (void)
        (error 'syntax-deserialize "ill-formed serialization"))
      (let ((app_0 (vector-ref data_0 0)))
        (let ((app_1 (vector-ref data_0 1)))
          (let ((app_2 (vector-ref data_0 2)))
            (let ((app_3 (vector-ref data_0 3)))
              (let ((app_4 (vector-ref data_0 4)))
                (deserialize
                 mpis_0
                 inspector_0
                 bulk-binding-registry_0
                 app_0
                 app_1
                 app_2
                 app_3
                 app_4
                 (vector-ref data_0 5))))))))))
(define decode-shell
  (lambda (vec_0 pos_0 mpis_0 inspector_0 bulk-binding-registry_0 shared_0)
    (let ((tmp_0 (unsafe-vector*-ref vec_0 pos_0)))
      (if (eq? tmp_0 kw2525)
        (let ((app_0 (box #f))) (values app_0 (add1 pos_0)))
        (if (eq? tmp_0 kw2967)
          (let ((app_0 (make-vector (unsafe-vector*-ref vec_0 (add1 pos_0)))))
            (values app_0 (+ pos_0 2)))
          (if (eq? tmp_0 kw2582)
            (let ((app_0 (make-hasheq))) (values app_0 (add1 pos_0)))
            (if (eq? tmp_0 kw2796)
              (let ((app_0 (make-hasheq))) (values app_0 (add1 pos_0)))
              (if (eq? tmp_0 kw3245)
                (let ((app_0 (make-hasheqv))) (values app_0 (add1 pos_0)))
                (decode
                 vec_0
                 pos_0
                 mpis_0
                 inspector_0
                 bulk-binding-registry_0
                 shared_0)))))))))
(define decode
  (lambda (vec_0 pos_0 mpis_0 inspector_0 bulk-binding-registry_0 shared_0)
    (let ((tmp_0 (unsafe-vector*-ref vec_0 pos_0)))
      (let ((index_0
             (if (keyword? tmp_0)
               (hash-ref hash2385 tmp_0 (lambda () 0))
               0)))
        (if (unsafe-fx< index_0 15)
          (if (unsafe-fx< index_0 7)
            (if (unsafe-fx< index_0 3)
              (if (unsafe-fx< index_0 1)
                (let ((app_0 (unsafe-vector*-ref vec_0 pos_0)))
                  (values app_0 (add1 pos_0)))
                (if (unsafe-fx< index_0 2)
                  (let ((app_0
                         (unsafe-vector*-ref
                          shared_0
                          (unsafe-vector*-ref vec_0 (add1 pos_0)))))
                    (values app_0 (+ pos_0 2)))
                  (values inspector_0 (add1 pos_0))))
              (if (unsafe-fx< index_0 4)
                (values bulk-binding-registry_0 (add1 pos_0))
                (if (unsafe-fx< index_0 5)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((content_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (let ((i_0 (unsafe-vector*-ref vec_0 next-pos_0)))
                          (if (exact-integer? i_0)
                            (let ((app_0 (unsafe-vector*-ref shared_0 i_0)))
                              (values app_0 (add1 next-pos_0)))
                            (decode
                             vec_0
                             next-pos_0
                             mpis_0
                             inspector_0
                             bulk-binding-registry_0
                             shared_0))))
                      (case-lambda
                       ((context_0 next-pos_1)
                        (call-with-values
                         (lambda ()
                           (let ((i_0 (unsafe-vector*-ref vec_0 next-pos_1)))
                             (if (exact-integer? i_0)
                               (let ((app_0 (unsafe-vector*-ref shared_0 i_0)))
                                 (values app_0 (add1 next-pos_1)))
                               (decode
                                vec_0
                                next-pos_1
                                mpis_0
                                inspector_0
                                bulk-binding-registry_0
                                shared_0))))
                         (case-lambda
                          ((srcloc_0 next-pos_2)
                           (values
                            (deserialize-syntax
                             content_0
                             context_0
                             srcloc_0
                             #f
                             #f
                             inspector_0)
                            next-pos_2))
                          (args (raise-binding-result-arity-error 2 args)))))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (if (unsafe-fx< index_0 6)
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((content_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (let ((i_0 (unsafe-vector*-ref vec_0 next-pos_0)))
                            (if (exact-integer? i_0)
                              (let ((app_0 (unsafe-vector*-ref shared_0 i_0)))
                                (values app_0 (add1 next-pos_0)))
                              (decode
                               vec_0
                               next-pos_0
                               mpis_0
                               inspector_0
                               bulk-binding-registry_0
                               shared_0))))
                        (case-lambda
                         ((context_0 next-pos_1)
                          (call-with-values
                           (lambda ()
                             (let ((i_0 (unsafe-vector*-ref vec_0 next-pos_1)))
                               (if (exact-integer? i_0)
                                 (let ((app_0
                                        (unsafe-vector*-ref shared_0 i_0)))
                                   (values app_0 (add1 next-pos_1)))
                                 (decode
                                  vec_0
                                  next-pos_1
                                  mpis_0
                                  inspector_0
                                  bulk-binding-registry_0
                                  shared_0))))
                           (case-lambda
                            ((srcloc_0 next-pos_2)
                             (values
                              (deserialize-datum->syntax
                               content_0
                               context_0
                               srcloc_0
                               inspector_0)
                              next-pos_2))
                            (args (raise-binding-result-arity-error 2 args)))))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((content_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (let ((i_0 (unsafe-vector*-ref vec_0 next-pos_0)))
                            (if (exact-integer? i_0)
                              (let ((app_0 (unsafe-vector*-ref shared_0 i_0)))
                                (values app_0 (add1 next-pos_0)))
                              (decode
                               vec_0
                               next-pos_0
                               mpis_0
                               inspector_0
                               bulk-binding-registry_0
                               shared_0))))
                        (case-lambda
                         ((context_0 next-pos_1)
                          (call-with-values
                           (lambda ()
                             (let ((i_0 (unsafe-vector*-ref vec_0 next-pos_1)))
                               (if (exact-integer? i_0)
                                 (let ((app_0
                                        (unsafe-vector*-ref shared_0 i_0)))
                                   (values app_0 (add1 next-pos_1)))
                                 (decode
                                  vec_0
                                  next-pos_1
                                  mpis_0
                                  inspector_0
                                  bulk-binding-registry_0
                                  shared_0))))
                           (case-lambda
                            ((srcloc_0 next-pos_2)
                             (call-with-values
                              (lambda ()
                                (decode
                                 vec_0
                                 next-pos_2
                                 mpis_0
                                 inspector_0
                                 bulk-binding-registry_0
                                 shared_0))
                              (case-lambda
                               ((props_0 next-pos_3)
                                (call-with-values
                                 (lambda ()
                                   (decode
                                    vec_0
                                    next-pos_3
                                    mpis_0
                                    inspector_0
                                    bulk-binding-registry_0
                                    shared_0))
                                 (case-lambda
                                  ((tamper_0 next-pos_4)
                                   (values
                                    (deserialize-syntax
                                     content_0
                                     context_0
                                     srcloc_0
                                     props_0
                                     tamper_0
                                     inspector_0)
                                    next-pos_4))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))
                               (args
                                (raise-binding-result-arity-error 2 args)))))
                            (args (raise-binding-result-arity-error 2 args)))))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args))))))))
            (if (unsafe-fx< index_0 10)
              (if (unsafe-fx< index_0 8)
                (call-with-values
                 (lambda ()
                   (decode
                    vec_0
                    (add1 pos_0)
                    mpis_0
                    inspector_0
                    bulk-binding-registry_0
                    shared_0))
                 (case-lambda
                  ((source_0 next-pos_0)
                   (call-with-values
                    (lambda ()
                      (decode
                       vec_0
                       next-pos_0
                       mpis_0
                       inspector_0
                       bulk-binding-registry_0
                       shared_0))
                    (case-lambda
                     ((line_0 next-pos_1)
                      (call-with-values
                       (lambda ()
                         (decode
                          vec_0
                          next-pos_1
                          mpis_0
                          inspector_0
                          bulk-binding-registry_0
                          shared_0))
                       (case-lambda
                        ((column_0 next-pos_2)
                         (call-with-values
                          (lambda ()
                            (decode
                             vec_0
                             next-pos_2
                             mpis_0
                             inspector_0
                             bulk-binding-registry_0
                             shared_0))
                          (case-lambda
                           ((position_0 next-pos_3)
                            (call-with-values
                             (lambda ()
                               (decode
                                vec_0
                                next-pos_3
                                mpis_0
                                inspector_0
                                bulk-binding-registry_0
                                shared_0))
                             (case-lambda
                              ((span_0 next-pos_4)
                               (values
                                (unsafe-make-srcloc
                                 source_0
                                 line_0
                                 column_0
                                 position_0
                                 span_0)
                                next-pos_4))
                              (args
                               (raise-binding-result-arity-error 2 args)))))
                           (args (raise-binding-result-arity-error 2 args)))))
                        (args (raise-binding-result-arity-error 2 args)))))
                     (args (raise-binding-result-arity-error 2 args)))))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (unsafe-fx< index_0 9)
                  (let ((app_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
                    (values app_0 (+ pos_0 2)))
                  (let ((app_0
                         (unsafe-vector*-ref
                          mpis_0
                          (unsafe-vector*-ref vec_0 (add1 pos_0)))))
                    (values app_0 (+ pos_0 2)))))
              (if (unsafe-fx< index_0 12)
                (if (unsafe-fx< index_0 11)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((v_0 next-pos_0) (values (box-immutable v_0) next-pos_0))
                    (args (raise-binding-result-arity-error 2 args))))
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((a_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         next-pos_0
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((d_0 next-pos_1) (values (cons a_0 d_0) next-pos_1))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args)))))
                (if (unsafe-fx< index_0 13)
                  (let ((len_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
                    (let ((r_0 (make-vector len_0)))
                      (let ((next-pos_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (pos_1 pos_2)
                                     (begin
                                       (if (< pos_2 len_0)
                                         (let ((pos_3
                                                (let ((pos_3
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (decode
                                                              vec_0
                                                              pos_1
                                                              mpis_0
                                                              inspector_0
                                                              bulk-binding-registry_0
                                                              shared_0))
                                                           (case-lambda
                                                            ((v_0 next-pos_0)
                                                             (values
                                                              v_0
                                                              next-pos_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))
                                                        (case-lambda
                                                         ((v_0 next-pos_0)
                                                          (begin
                                                            (vector-set!
                                                             r_0
                                                             pos_2
                                                             v_0)
                                                            next-pos_0))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))))
                                                  (values pos_3))))
                                           (for-loop_0 pos_3 (+ pos_2 1)))
                                         pos_1))))))
                                (for-loop_0 (+ pos_0 2) 0)))))
                        (values
                         (if (eq? (unsafe-vector*-ref vec_0 pos_0) kw2802)
                           (vector->list r_0)
                           (vector->immutable-vector r_0))
                         next-pos_0))))
                  (if (unsafe-fx< index_0 14)
                    (let ((ht_0
                           (let ((tmp_1 (unsafe-vector*-ref vec_0 pos_0)))
                             (if (eq? tmp_1 kw2582)
                               (hash)
                               (if (eq? tmp_1 kw2796)
                                 (hasheq)
                                 (if (eq? tmp_1 kw3245)
                                   (hasheqv)
                                   (void)))))))
                      (let ((len_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (ht_1 pos_1 pos_2)
                                (begin
                                  (if (< pos_2 len_0)
                                    (call-with-values
                                     (lambda ()
                                       (call-with-values
                                        (lambda ()
                                          (call-with-values
                                           (lambda ()
                                             (decode
                                              vec_0
                                              pos_1
                                              mpis_0
                                              inspector_0
                                              bulk-binding-registry_0
                                              shared_0))
                                           (case-lambda
                                            ((k_0 next-pos_0)
                                             (call-with-values
                                              (lambda ()
                                                (decode
                                                 vec_0
                                                 next-pos_0
                                                 mpis_0
                                                 inspector_0
                                                 bulk-binding-registry_0
                                                 shared_0))
                                              (case-lambda
                                               ((v_0 next-pos_1)
                                                (values
                                                 (hash-set ht_1 k_0 v_0)
                                                 next-pos_1))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))
                                        (case-lambda
                                         ((ht_2 pos_3) (values ht_2 pos_3))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))
                                     (case-lambda
                                      ((ht_2 pos_3)
                                       (for-loop_0 ht_2 pos_3 (+ pos_2 1)))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))
                                    (values ht_1 pos_1)))))))
                           (for-loop_0 ht_0 (+ pos_0 2) 0)))))
                    (let ((ht_0 (hasheqv)))
                      (let ((len_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (ht_1 pos_1 pos_2)
                                (begin
                                  (if (< pos_2 len_0)
                                    (call-with-values
                                     (lambda ()
                                       (call-with-values
                                        (lambda ()
                                          (call-with-values
                                           (lambda ()
                                             (decode
                                              vec_0
                                              pos_1
                                              mpis_0
                                              inspector_0
                                              bulk-binding-registry_0
                                              shared_0))
                                           (case-lambda
                                            ((k_0 next-pos_0)
                                             (call-with-values
                                              (lambda ()
                                                (decode
                                                 vec_0
                                                 next-pos_0
                                                 mpis_0
                                                 inspector_0
                                                 bulk-binding-registry_0
                                                 shared_0))
                                              (case-lambda
                                               ((v_0 next-pos_1)
                                                (values
                                                 (hash-set
                                                  ht_1
                                                  (intern-phase+space k_0)
                                                  v_0)
                                                 next-pos_1))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))
                                        (case-lambda
                                         ((ht_2 pos_3) (values ht_2 pos_3))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))
                                     (case-lambda
                                      ((ht_2 pos_3)
                                       (for-loop_0 ht_2 pos_3 (+ pos_2 1)))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))
                                    (values ht_1 pos_1)))))))
                           (for-loop_0 ht_0 (+ pos_0 2) 0))))))))))
          (if (unsafe-fx< index_0 23)
            (if (unsafe-fx< index_0 18)
              (if (unsafe-fx< index_0 16)
                (let ((s_0
                       (let ((tmp_1 (unsafe-vector*-ref vec_0 pos_0)))
                         (if (eq? tmp_1 kw2473)
                           (set)
                           (if (eq? tmp_1 kw3357)
                             (seteq)
                             (if (eq? tmp_1 kw2333)
                               (begin-unsafe the-empty-hasheqv)
                               (void)))))))
                  (let ((len_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (s_1 pos_1 pos_2)
                            (begin
                              (if (< pos_2 len_0)
                                (call-with-values
                                 (lambda ()
                                   (call-with-values
                                    (lambda ()
                                      (call-with-values
                                       (lambda ()
                                         (decode
                                          vec_0
                                          pos_1
                                          mpis_0
                                          inspector_0
                                          bulk-binding-registry_0
                                          shared_0))
                                       (case-lambda
                                        ((k_0 next-pos_0)
                                         (values
                                          (begin-unsafe (hash-set s_1 k_0 #t))
                                          next-pos_0))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))
                                    (case-lambda
                                     ((s_2 pos_3) (values s_2 pos_3))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args)))))
                                 (case-lambda
                                  ((s_2 pos_3)
                                   (for-loop_0 s_2 pos_3 (+ pos_2 1)))
                                  (args
                                   (raise-binding-result-arity-error 2 args))))
                                (values s_1 pos_1)))))))
                       (for-loop_0 s_0 (+ pos_0 2) 0)))))
                (if (unsafe-fx< index_0 17)
                  (call-with-values
                   (lambda ()
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         (add1 pos_0)
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((k_0 next-pos_0) (values k_0 next-pos_0))
                       (args (raise-binding-result-arity-error 2 args)))))
                   (case-lambda
                    ((key_0 next-pos_0)
                     (let ((len_0 (unsafe-vector*-ref vec_0 next-pos_0)))
                       (call-with-values
                        (lambda ()
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (r_0 pos_1 pos_2)
                                  (begin
                                    (if (< pos_2 len_0)
                                      (call-with-values
                                       (lambda ()
                                         (call-with-values
                                          (lambda ()
                                            (call-with-values
                                             (lambda ()
                                               (decode
                                                vec_0
                                                pos_1
                                                mpis_0
                                                inspector_0
                                                bulk-binding-registry_0
                                                shared_0))
                                             (case-lambda
                                              ((v_0 next-pos_1)
                                               (values
                                                (cons v_0 r_0)
                                                next-pos_1))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args)))))
                                          (case-lambda
                                           ((r_1 pos_3) (values r_1 pos_3))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))
                                       (case-lambda
                                        ((r_1 pos_3)
                                         (for-loop_0 r_1 pos_3 (+ pos_2 1)))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (values r_0 pos_1)))))))
                             (for-loop_0 null (add1 next-pos_0) 0))))
                        (case-lambda
                         ((r_0 done-pos_0)
                          (values
                           (apply make-prefab-struct key_0 (reverse$1 r_0))
                           done-pos_0))
                         (args (raise-binding-result-arity-error 2 args))))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (values (begin-unsafe top-level-common-scope) (add1 pos_0))))
              (if (unsafe-fx< index_0 20)
                (if (unsafe-fx< index_0 19)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((kind_0 next-pos_0)
                     (values
                      (begin-unsafe
                       (scope1.1
                        (new-deserialize-scope-id!)
                        kind_0
                        empty-binding-table))
                      next-pos_0))
                    (args (raise-binding-result-arity-error 2 args))))
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((id_0 next-pos_0)
                     (values (make-interned-scope id_0) next-pos_0))
                    (args (raise-binding-result-arity-error 2 args)))))
                (if (unsafe-fx< index_0 21)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((name_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         next-pos_0
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((scopes_0 next-pos_1)
                        (values
                         (deserialize-multi-scope name_0 scopes_0)
                         next-pos_1))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (if (unsafe-fx< index_0 22)
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((phase_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (decode
                           vec_0
                           next-pos_0
                           mpis_0
                           inspector_0
                           bulk-binding-registry_0
                           shared_0))
                        (case-lambda
                         ((multi-scope_0 next-pos_1)
                          (values
                           (begin-unsafe
                            (intern-shifted-multi-scope phase_0 multi-scope_0))
                           next-pos_1))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((syms_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (decode
                           vec_0
                           next-pos_0
                           mpis_0
                           inspector_0
                           bulk-binding-registry_0
                           shared_0))
                        (case-lambda
                         ((bulk-bindings_0 next-pos_1)
                          (values
                           (begin-unsafe
                            (table-with-bulk-bindings1.1
                             syms_0
                             syms_0
                             bulk-bindings_0))
                           next-pos_1))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args))))))))
            (if (unsafe-fx< index_0 27)
              (if (unsafe-fx< index_0 24)
                (call-with-values
                 (lambda ()
                   (decode
                    vec_0
                    (add1 pos_0)
                    mpis_0
                    inspector_0
                    bulk-binding-registry_0
                    shared_0))
                 (case-lambda
                  ((scopes_0 next-pos_0)
                   (call-with-values
                    (lambda ()
                      (decode
                       vec_0
                       next-pos_0
                       mpis_0
                       inspector_0
                       bulk-binding-registry_0
                       shared_0))
                    (case-lambda
                     ((bulk_0 next-pos_1)
                      (values
                       (begin-unsafe (bulk-binding-at2.1 scopes_0 bulk_0))
                       next-pos_1))
                     (args (raise-binding-result-arity-error 2 args)))))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (unsafe-fx< index_0 25)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((kind_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         next-pos_0
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((phase_0 next-pos_1)
                        (values
                         (deserialize-representative-scope kind_0 phase_0)
                         next-pos_1))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (if (unsafe-fx< index_0 26)
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((module_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (decode
                           vec_0
                           next-pos_0
                           mpis_0
                           inspector_0
                           bulk-binding-registry_0
                           shared_0))
                        (case-lambda
                         ((sym_0 next-pos_1)
                          (call-with-values
                           (lambda ()
                             (decode
                              vec_0
                              next-pos_1
                              mpis_0
                              inspector_0
                              bulk-binding-registry_0
                              shared_0))
                           (case-lambda
                            ((phase_0 next-pos_2)
                             (call-with-values
                              (lambda ()
                                (decode
                                 vec_0
                                 next-pos_2
                                 mpis_0
                                 inspector_0
                                 bulk-binding-registry_0
                                 shared_0))
                              (case-lambda
                               ((nominal-module_0 next-pos_3)
                                (call-with-values
                                 (lambda ()
                                   (decode
                                    vec_0
                                    next-pos_3
                                    mpis_0
                                    inspector_0
                                    bulk-binding-registry_0
                                    shared_0))
                                 (case-lambda
                                  ((nominal-phase_0 next-pos_4)
                                   (call-with-values
                                    (lambda ()
                                      (decode
                                       vec_0
                                       next-pos_4
                                       mpis_0
                                       inspector_0
                                       bulk-binding-registry_0
                                       shared_0))
                                    (case-lambda
                                     ((nominal-sym_0 next-pos_5)
                                      (call-with-values
                                       (lambda ()
                                         (decode
                                          vec_0
                                          next-pos_5
                                          mpis_0
                                          inspector_0
                                          bulk-binding-registry_0
                                          shared_0))
                                       (case-lambda
                                        ((nominal-require-phase_0 next-pos_6)
                                         (call-with-values
                                          (lambda ()
                                            (decode
                                             vec_0
                                             next-pos_6
                                             mpis_0
                                             inspector_0
                                             bulk-binding-registry_0
                                             shared_0))
                                          (case-lambda
                                           ((free=id_0 next-pos_7)
                                            (call-with-values
                                             (lambda ()
                                               (decode
                                                vec_0
                                                next-pos_7
                                                mpis_0
                                                inspector_0
                                                bulk-binding-registry_0
                                                shared_0))
                                             (case-lambda
                                              ((extra-inspector_0 next-pos_8)
                                               (call-with-values
                                                (lambda ()
                                                  (decode
                                                   vec_0
                                                   next-pos_8
                                                   mpis_0
                                                   inspector_0
                                                   bulk-binding-registry_0
                                                   shared_0))
                                                (case-lambda
                                                 ((extra-nominal-bindings_0
                                                   next-pos_9)
                                                  (values
                                                   (deserialize-full-module-binding
                                                    module_0
                                                    sym_0
                                                    phase_0
                                                    nominal-module_0
                                                    nominal-phase_0
                                                    nominal-sym_0
                                                    nominal-require-phase_0
                                                    free=id_0
                                                    extra-inspector_0
                                                    extra-nominal-bindings_0)
                                                   next-pos_9))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args)))))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args)))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args)))))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))
                               (args
                                (raise-binding-result-arity-error 2 args)))))
                            (args (raise-binding-result-arity-error 2 args)))))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((module_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (decode
                           vec_0
                           next-pos_0
                           mpis_0
                           inspector_0
                           bulk-binding-registry_0
                           shared_0))
                        (case-lambda
                         ((sym_0 next-pos_1)
                          (call-with-values
                           (lambda ()
                             (decode
                              vec_0
                              next-pos_1
                              mpis_0
                              inspector_0
                              bulk-binding-registry_0
                              shared_0))
                           (case-lambda
                            ((phase_0 next-pos_2)
                             (call-with-values
                              (lambda ()
                                (decode
                                 vec_0
                                 next-pos_2
                                 mpis_0
                                 inspector_0
                                 bulk-binding-registry_0
                                 shared_0))
                              (case-lambda
                               ((nominal-module_0 next-pos_3)
                                (values
                                 (begin-unsafe
                                  (simple-module-binding46.1
                                   module_0
                                   phase_0
                                   sym_0
                                   nominal-module_0))
                                 next-pos_3))
                               (args
                                (raise-binding-result-arity-error 2 args)))))
                            (args (raise-binding-result-arity-error 2 args)))))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args)))))))
              (if (unsafe-fx< index_0 29)
                (if (unsafe-fx< index_0 28)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((key_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         next-pos_0
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((free=id_0 next-pos_1)
                        (values
                         (begin-unsafe
                          (full-local-binding1.1 #f free=id_0 key_0))
                         next-pos_1))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((prefix_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         next-pos_0
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((excepts_0 next-pos_1)
                        (call-with-values
                         (lambda ()
                           (decode
                            vec_0
                            next-pos_1
                            mpis_0
                            inspector_0
                            bulk-binding-registry_0
                            shared_0))
                         (case-lambda
                          ((mpi_0 next-pos_2)
                           (call-with-values
                            (lambda ()
                              (decode
                               vec_0
                               next-pos_2
                               mpis_0
                               inspector_0
                               bulk-binding-registry_0
                               shared_0))
                            (case-lambda
                             ((provide-phase-level_0 next-pos_3)
                              (call-with-values
                               (lambda ()
                                 (decode
                                  vec_0
                                  next-pos_3
                                  mpis_0
                                  inspector_0
                                  bulk-binding-registry_0
                                  shared_0))
                               (case-lambda
                                ((phase-shift_0 next-pos_4)
                                 (call-with-values
                                  (lambda ()
                                    (decode
                                     vec_0
                                     next-pos_4
                                     mpis_0
                                     inspector_0
                                     bulk-binding-registry_0
                                     shared_0))
                                  (case-lambda
                                   ((bulk-binding-registry_1 next-pos_5)
                                    (values
                                     (begin-unsafe
                                      (bulk-binding12.1
                                       #f
                                       prefix_0
                                       excepts_0
                                       #f
                                       mpi_0
                                       (intern-phase+space
                                        provide-phase-level_0)
                                       phase-shift_0
                                       bulk-binding-registry_1))
                                     next-pos_5))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))
                                (args
                                 (raise-binding-result-arity-error 2 args)))))
                             (args
                              (raise-binding-result-arity-error 2 args)))))
                          (args (raise-binding-result-arity-error 2 args)))))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args)))))
                (if (unsafe-fx< index_0 30)
                  (let ((app_0 (like-ambiguous-binding1.1)))
                    (values app_0 (add1 pos_0)))
                  (if (unsafe-fx< index_0 31)
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((provides_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (decode
                           vec_0
                           next-pos_0
                           mpis_0
                           inspector_0
                           bulk-binding-registry_0
                           shared_0))
                        (case-lambda
                         ((self_0 next-pos_1)
                          (call-with-values
                           (lambda ()
                             (decode
                              vec_0
                              next-pos_1
                              mpis_0
                              inspector_0
                              bulk-binding-registry_0
                              shared_0))
                           (case-lambda
                            ((prefix_0 next-pos_2)
                             (call-with-values
                              (lambda ()
                                (decode
                                 vec_0
                                 next-pos_2
                                 mpis_0
                                 inspector_0
                                 bulk-binding-registry_0
                                 shared_0))
                              (case-lambda
                               ((excepts_0 next-pos_3)
                                (call-with-values
                                 (lambda ()
                                   (decode
                                    vec_0
                                    next-pos_3
                                    mpis_0
                                    inspector_0
                                    bulk-binding-registry_0
                                    shared_0))
                                 (case-lambda
                                  ((mpi_0 next-pos_4)
                                   (call-with-values
                                    (lambda ()
                                      (decode
                                       vec_0
                                       next-pos_4
                                       mpis_0
                                       inspector_0
                                       bulk-binding-registry_0
                                       shared_0))
                                    (case-lambda
                                     ((provide-phase-level_0 next-pos_5)
                                      (call-with-values
                                       (lambda ()
                                         (decode
                                          vec_0
                                          next-pos_5
                                          mpis_0
                                          inspector_0
                                          bulk-binding-registry_0
                                          shared_0))
                                       (case-lambda
                                        ((phase-shift_0 next-pos_6)
                                         (call-with-values
                                          (lambda ()
                                            (decode
                                             vec_0
                                             next-pos_6
                                             mpis_0
                                             inspector_0
                                             bulk-binding-registry_0
                                             shared_0))
                                          (case-lambda
                                           ((bulk-binding-registry_1
                                             next-pos_7)
                                            (values
                                             (begin-unsafe
                                              (bulk-binding12.1
                                               provides_0
                                               prefix_0
                                               excepts_0
                                               self_0
                                               mpi_0
                                               (intern-phase+space
                                                provide-phase-level_0)
                                               phase-shift_0
                                               bulk-binding-registry_1))
                                             next-pos_7))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args)))))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))
                               (args
                                (raise-binding-result-arity-error 2 args)))))
                            (args (raise-binding-result-arity-error 2 args)))))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (call-with-values
                     (lambda ()
                       (decode
                        vec_0
                        (add1 pos_0)
                        mpis_0
                        inspector_0
                        bulk-binding-registry_0
                        shared_0))
                     (case-lambda
                      ((binding_0 next-pos_0)
                       (call-with-values
                        (lambda ()
                          (decode
                           vec_0
                           next-pos_0
                           mpis_0
                           inspector_0
                           bulk-binding-registry_0
                           shared_0))
                        (case-lambda
                         ((protected?_0 next-pos_1)
                          (call-with-values
                           (lambda ()
                             (decode
                              vec_0
                              next-pos_1
                              mpis_0
                              inspector_0
                              bulk-binding-registry_0
                              shared_0))
                           (case-lambda
                            ((syntax?_0 next-pos_2)
                             (values
                              (begin-unsafe
                               (provided1.1 binding_0 protected?_0 syntax?_0))
                              next-pos_2))
                            (args (raise-binding-result-arity-error 2 args)))))
                         (args (raise-binding-result-arity-error 2 args)))))
                      (args
                       (raise-binding-result-arity-error 2 args))))))))))))))
(define decode-fill!
  (lambda (v_0 vec_0 pos_0 mpis_0 inspector_0 bulk-binding-registry_0 shared_0)
    (let ((tmp_0 (unsafe-vector*-ref vec_0 pos_0)))
      (if (eq? tmp_0 #f)
        (add1 pos_0)
        (if (eq? tmp_0 kw2531)
          (call-with-values
           (lambda ()
             (decode
              vec_0
              (add1 pos_0)
              mpis_0
              inspector_0
              bulk-binding-registry_0
              shared_0))
           (case-lambda
            ((c_0 next-pos_0) (begin (set-box! v_0 c_0) next-pos_0))
            (args (raise-binding-result-arity-error 2 args))))
          (if (eq? tmp_0 kw3046)
            (let ((len_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (pos_1 pos_2)
                      (begin
                        (if (< pos_2 len_0)
                          (let ((pos_3
                                 (let ((pos_3
                                        (call-with-values
                                         (lambda ()
                                           (decode
                                            vec_0
                                            pos_1
                                            mpis_0
                                            inspector_0
                                            bulk-binding-registry_0
                                            shared_0))
                                         (case-lambda
                                          ((c_0 next-pos_0)
                                           (begin
                                             (vector-set! v_0 pos_2 c_0)
                                             next-pos_0))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))))
                                   (values pos_3))))
                            (for-loop_0 pos_3 (+ pos_2 1)))
                          pos_1))))))
                 (for-loop_0 (+ pos_0 2) 0))))
            (if (eq? tmp_0 kw2194)
              (let ((len_0 (unsafe-vector*-ref vec_0 (add1 pos_0))))
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (pos_1 pos_2)
                        (begin
                          (if (< pos_2 len_0)
                            (let ((pos_3
                                   (let ((pos_3
                                          (call-with-values
                                           (lambda ()
                                             (decode
                                              vec_0
                                              pos_1
                                              mpis_0
                                              inspector_0
                                              bulk-binding-registry_0
                                              shared_0))
                                           (case-lambda
                                            ((key_0 next-pos_0)
                                             (call-with-values
                                              (lambda ()
                                                (decode
                                                 vec_0
                                                 next-pos_0
                                                 mpis_0
                                                 inspector_0
                                                 bulk-binding-registry_0
                                                 shared_0))
                                              (case-lambda
                                               ((val_0 done-pos_0)
                                                (begin
                                                  (hash-set! v_0 key_0 val_0)
                                                  done-pos_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))
                                     (values pos_3))))
                              (for-loop_0 pos_3 (+ pos_2 1)))
                            pos_1))))))
                   (for-loop_0 (+ pos_0 2) 0))))
              (if (eq? tmp_0 kw2576)
                (call-with-values
                 (lambda ()
                   (decode
                    vec_0
                    (add1 pos_0)
                    mpis_0
                    inspector_0
                    bulk-binding-registry_0
                    shared_0))
                 (case-lambda
                  ((c_0 next-pos_0)
                   (begin
                     (begin-unsafe (set-scope-binding-table! v_0 c_0))
                     next-pos_0))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (eq? tmp_0 kw2073)
                  (call-with-values
                   (lambda ()
                     (decode
                      vec_0
                      (add1 pos_0)
                      mpis_0
                      inspector_0
                      bulk-binding-registry_0
                      shared_0))
                   (case-lambda
                    ((a_0 next-pos_0)
                     (call-with-values
                      (lambda ()
                        (decode
                         vec_0
                         next-pos_0
                         mpis_0
                         inspector_0
                         bulk-binding-registry_0
                         shared_0))
                      (case-lambda
                       ((d_0 done-pos_0)
                        (begin
                          (begin-unsafe
                           (begin
                             (begin-unsafe (set-scope-binding-table! v_0 a_0))
                             (set-representative-scope-owner! v_0 d_0)))
                          done-pos_0))
                       (args (raise-binding-result-arity-error 2 args)))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (error
                   'deserialize
                   "bad fill encoding: ~v"
                   (unsafe-vector*-ref vec_0 pos_0)))))))))))
(define find-reachable-scopes
  (lambda (v_0 bulk-shifts_0)
    (let ((seen_0 (make-hasheq)))
      (let ((reachable-scopes_0 (interned-scopes)))
        (let ((get-reachable-scopes_0
               (|#%name|
                get-reachable-scopes
                (lambda () (begin reachable-scopes_0)))))
          (let ((scope-triggers_0 (make-hasheq)))
            (begin
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (v_1 bulk-shifts_1)
                    (begin
                      (if (interned-literal? v_1)
                        (void)
                        (if (hash-ref seen_0 v_1 #f)
                          (void)
                          (begin
                            (hash-set! seen_0 v_1 #t)
                            (if (scope-with-bindings? v_1)
                              (begin
                                (set! reachable-scopes_0
                                  (let ((s_0 reachable-scopes_0))
                                    (begin-unsafe (hash-set s_0 v_1 #t))))
                                (|#%app|
                                 (reach-scopes-ref v_1)
                                 v_1
                                 bulk-shifts_1
                                 loop_0)
                                (let ((lst_0
                                       (hash-ref scope-triggers_0 v_1 null)))
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (lst_1)
                                          (begin
                                            (if (pair? lst_1)
                                              (let ((proc_0
                                                     (unsafe-car lst_1)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_1)))
                                                  (begin
                                                    (|#%app| proc_0 loop_0)
                                                    (for-loop_0 rest_0))))
                                              (values)))))))
                                     (for-loop_0 lst_0))))
                                (void)
                                (hash-remove! scope-triggers_0 v_1)
                                (|#%app|
                                 (scope-with-bindings-ref v_1)
                                 v_1
                                 get-reachable-scopes_0
                                 bulk-shifts_1
                                 loop_0
                                 (lambda (sc-unreachable_0 b_0)
                                   (let ((xform_0
                                          (lambda (l_0) (cons b_0 l_0))))
                                     (begin-unsafe
                                      (do-hash-update
                                       'hash-update!
                                       #t
                                       hash-set!
                                       scope-triggers_0
                                       sc-unreachable_0
                                       xform_0
                                       null))))))
                              (if (reach-scopes? v_1)
                                (|#%app|
                                 (reach-scopes-ref v_1)
                                 v_1
                                 bulk-shifts_1
                                 loop_0)
                                (if (pair? v_1)
                                  (begin
                                    (loop_0 (car v_1) bulk-shifts_1)
                                    (loop_0 (cdr v_1) bulk-shifts_1))
                                  (if (vector? v_1)
                                    (begin
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (check-vector v_1)
                                           (values
                                            v_1
                                            (unsafe-vector-length v_1))))
                                       (case-lambda
                                        ((vec_0 len_0)
                                         (begin
                                           #f
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (pos_0)
                                                 (begin
                                                   (if (unsafe-fx< pos_0 len_0)
                                                     (let ((e_0
                                                            (unsafe-vector-ref
                                                             vec_0
                                                             pos_0)))
                                                       (begin
                                                         (loop_0
                                                          e_0
                                                          bulk-shifts_1)
                                                         (for-loop_0
                                                          (unsafe-fx+
                                                           1
                                                           pos_0))))
                                                     (values)))))))
                                            (for-loop_0 0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (void))
                                    (if (box? v_1)
                                      (loop_0 (unbox v_1) bulk-shifts_1)
                                      (if (hash? v_1)
                                        (begin
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (i_0)
                                                  (begin
                                                    (if i_0
                                                      (call-with-values
                                                       (lambda ()
                                                         (hash-iterate-key+value
                                                          v_1
                                                          i_0))
                                                       (case-lambda
                                                        ((k_0 v_2)
                                                         (begin
                                                           (begin
                                                             (loop_0
                                                              k_0
                                                              bulk-shifts_1)
                                                             (loop_0
                                                              v_2
                                                              bulk-shifts_1))
                                                           (for-loop_0
                                                            (hash-iterate-next
                                                             v_1
                                                             i_0))))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args))))
                                                      (values)))))))
                                             (for-loop_0
                                              (hash-iterate-first v_1))))
                                          (void))
                                        (if (prefab-struct-key v_1)
                                          (begin
                                            (call-with-values
                                             (lambda ()
                                               (unsafe-normalise-inputs
                                                unsafe-vector-length
                                                (struct->vector v_1)
                                                1
                                                #f
                                                1))
                                             (case-lambda
                                              ((v*_0 start*_0 stop*_0 step*_0)
                                               (begin
                                                 #t
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (idx_0)
                                                       (begin
                                                         (if (unsafe-fx<
                                                              idx_0
                                                              stop*_0)
                                                           (let ((e_0
                                                                  (unsafe-vector-ref
                                                                   v*_0
                                                                   idx_0)))
                                                             (begin
                                                               (loop_0
                                                                e_0
                                                                bulk-shifts_1)
                                                               (for-loop_0
                                                                (unsafe-fx+
                                                                 idx_0
                                                                 1))))
                                                           (values)))))))
                                                  (for-loop_0 start*_0))))
                                              (args
                                               (raise-binding-result-arity-error
                                                4
                                                args))))
                                            (void))
                                          (if (srcloc? v_1)
                                            (loop_0
                                             (srcloc-source v_1)
                                             bulk-shifts_1)
                                            (void)))))))))))))))))
               (loop_0 v_0 bulk-shifts_0))
              reachable-scopes_0)))))))
(define deserialize-imports
  '(deserialize-module-path-indexes
    syntax-module-path-index-shift
    syntax-shift-phase-level
    module-use
    deserialize))
(define syntax-module-path-index-shift/no-keywords
  (let ((syntax-module-path-index-shift_0
         (|#%name|
          syntax-module-path-index-shift
          (lambda (s42_0 from-mpi43_0 to-mpi44_0 inspector41_0)
            (begin
              (syntax-module-path-index-shift.1
               #f
               s42_0
               from-mpi43_0
               to-mpi44_0
               inspector41_0))))))
    (|#%name|
     syntax-module-path-index-shift
     (case-lambda
      ((s_0 from-mpi_0 to-mpi_0)
       (begin (syntax-module-path-index-shift_0 s_0 from-mpi_0 to-mpi_0 #f)))
      ((s_0 from-mpi_0 to-mpi_0 inspector41_0)
       (syntax-module-path-index-shift_0
        s_0
        from-mpi_0
        to-mpi_0
        inspector41_0))))))
(define deserialize-instance
  (make-instance
   'deserialize
   #f
   'consistent
   'deserialize-module-path-indexes
   deserialize-module-path-indexes
   'syntax-module-path-index-shift
   syntax-module-path-index-shift/no-keywords
   'syntax-shift-phase-level
   syntax-shift-phase-level$1
   'module-use
   module-use1.1
   'deserialize
   deserialize))
(define finish_2891
  (make-struct-type-install-properties
   '(parsed)
   1
   0
   #f
   (list (cons prop:authentic #t))
   #f
   #f
   '(0)
   #f
   'parsed))
(define struct:parsed
  (make-record-type-descriptor
   'parsed
   #f
   (|#%nongenerative-uid| parsed)
   #f
   #f
   '(1 . 0)))
(define effect_3056 (finish_2891 struct:parsed))
(define parsed1.1
  (|#%name|
   parsed
   (record-constructor
    (make-record-constructor-descriptor struct:parsed #f #f))))
(define parsed? (|#%name| parsed? (record-predicate struct:parsed)))
(define parsed-s (|#%name| parsed-s (record-accessor struct:parsed 0)))
(define finish_2783
  (make-struct-type-install-properties
   '(parsed-id)
   2
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'parsed-id))
(define struct:parsed-id
  (make-record-type-descriptor
   'parsed-id
   struct:parsed
   (|#%nongenerative-uid| parsed-id)
   #f
   #f
   '(2 . 0)))
(define effect_2596 (finish_2783 struct:parsed-id))
(define parsed-id2.1
  (|#%name|
   parsed-id
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-id #f #f))))
(define parsed-id? (|#%name| parsed-id? (record-predicate struct:parsed-id)))
(define parsed-id-binding
  (|#%name| parsed-id-binding (record-accessor struct:parsed-id 0)))
(define parsed-id-inspector
  (|#%name| parsed-id-inspector (record-accessor struct:parsed-id 1)))
(define finish_2627
  (make-struct-type-install-properties
   '(parsed-primitive-id)
   0
   0
   struct:parsed-id
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   'parsed-primitive-id))
(define struct:parsed-primitive-id
  (make-record-type-descriptor
   'parsed-primitive-id
   struct:parsed-id
   (|#%nongenerative-uid| parsed-primitive-id)
   #f
   #f
   '(0 . 0)))
(define effect_2448 (finish_2627 struct:parsed-primitive-id))
(define parsed-primitive-id3.1
  (|#%name|
   parsed-primitive-id
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-primitive-id #f #f))))
(define parsed-primitive-id?
  (|#%name|
   parsed-primitive-id?
   (record-predicate struct:parsed-primitive-id)))
(define finish_2584
  (make-struct-type-install-properties
   '(parsed-top-id)
   0
   0
   struct:parsed-id
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   'parsed-top-id))
(define struct:parsed-top-id
  (make-record-type-descriptor
   'parsed-top-id
   struct:parsed-id
   (|#%nongenerative-uid| parsed-top-id)
   #f
   #f
   '(0 . 0)))
(define effect_2581 (finish_2584 struct:parsed-top-id))
(define parsed-top-id4.1
  (|#%name|
   parsed-top-id
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-top-id #f #f))))
(define parsed-top-id?
  (|#%name| parsed-top-id? (record-predicate struct:parsed-top-id)))
(define finish_2495
  (make-struct-type-install-properties
   '(parsed-lambda)
   2
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'parsed-lambda))
(define struct:parsed-lambda
  (make-record-type-descriptor
   'parsed-lambda
   struct:parsed
   (|#%nongenerative-uid| parsed-lambda)
   #f
   #f
   '(2 . 0)))
(define effect_2349 (finish_2495 struct:parsed-lambda))
(define parsed-lambda5.1
  (|#%name|
   parsed-lambda
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-lambda #f #f))))
(define parsed-lambda?
  (|#%name| parsed-lambda? (record-predicate struct:parsed-lambda)))
(define parsed-lambda-keys
  (|#%name| parsed-lambda-keys (record-accessor struct:parsed-lambda 0)))
(define parsed-lambda-body
  (|#%name| parsed-lambda-body (record-accessor struct:parsed-lambda 1)))
(define finish_2679
  (make-struct-type-install-properties
   '(parsed-case-lambda)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-case-lambda))
(define struct:parsed-case-lambda
  (make-record-type-descriptor
   'parsed-case-lambda
   struct:parsed
   (|#%nongenerative-uid| parsed-case-lambda)
   #f
   #f
   '(1 . 0)))
(define effect_2437 (finish_2679 struct:parsed-case-lambda))
(define parsed-case-lambda6.1
  (|#%name|
   parsed-case-lambda
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-case-lambda #f #f))))
(define parsed-case-lambda?
  (|#%name| parsed-case-lambda? (record-predicate struct:parsed-case-lambda)))
(define parsed-case-lambda-clauses
  (|#%name|
   parsed-case-lambda-clauses
   (record-accessor struct:parsed-case-lambda 0)))
(define finish_2548
  (make-struct-type-install-properties
   '(parsed-app)
   2
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'parsed-app))
(define struct:parsed-app
  (make-record-type-descriptor
   'parsed-app
   struct:parsed
   (|#%nongenerative-uid| parsed-app)
   #f
   #f
   '(2 . 0)))
(define effect_2862 (finish_2548 struct:parsed-app))
(define parsed-app7.1
  (|#%name|
   parsed-app
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-app #f #f))))
(define parsed-app?
  (|#%name| parsed-app? (record-predicate struct:parsed-app)))
(define parsed-app-rator
  (|#%name| parsed-app-rator (record-accessor struct:parsed-app 0)))
(define parsed-app-rands
  (|#%name| parsed-app-rands (record-accessor struct:parsed-app 1)))
(define finish_2663
  (make-struct-type-install-properties
   '(parsed-if)
   3
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'parsed-if))
(define struct:parsed-if
  (make-record-type-descriptor
   'parsed-if
   struct:parsed
   (|#%nongenerative-uid| parsed-if)
   #f
   #f
   '(3 . 0)))
(define effect_2506 (finish_2663 struct:parsed-if))
(define parsed-if8.1
  (|#%name|
   parsed-if
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-if #f #f))))
(define parsed-if? (|#%name| parsed-if? (record-predicate struct:parsed-if)))
(define parsed-if-tst
  (|#%name| parsed-if-tst (record-accessor struct:parsed-if 0)))
(define parsed-if-thn
  (|#%name| parsed-if-thn (record-accessor struct:parsed-if 1)))
(define parsed-if-els
  (|#%name| parsed-if-els (record-accessor struct:parsed-if 2)))
(define finish_3030
  (make-struct-type-install-properties
   '(parsed-set!)
   2
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'parsed-set!))
(define struct:parsed-set!
  (make-record-type-descriptor
   'parsed-set!
   struct:parsed
   (|#%nongenerative-uid| parsed-set!)
   #f
   #f
   '(2 . 0)))
(define effect_2747 (finish_3030 struct:parsed-set!))
(define parsed-set!9.1
  (|#%name|
   parsed-set!
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-set! #f #f))))
(define parsed-set!?
  (|#%name| parsed-set!? (record-predicate struct:parsed-set!)))
(define parsed-set!-id
  (|#%name| parsed-set!-id (record-accessor struct:parsed-set! 0)))
(define parsed-set!-rhs
  (|#%name| parsed-set!-rhs (record-accessor struct:parsed-set! 1)))
(define finish_2301
  (make-struct-type-install-properties
   '(parsed-with-continuation-mark)
   3
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'parsed-with-continuation-mark))
(define struct:parsed-with-continuation-mark
  (make-record-type-descriptor
   'parsed-with-continuation-mark
   struct:parsed
   (|#%nongenerative-uid| parsed-with-continuation-mark)
   #f
   #f
   '(3 . 0)))
(define effect_2564 (finish_2301 struct:parsed-with-continuation-mark))
(define parsed-with-continuation-mark10.1
  (|#%name|
   parsed-with-continuation-mark
   (record-constructor
    (make-record-constructor-descriptor
     struct:parsed-with-continuation-mark
     #f
     #f))))
(define parsed-with-continuation-mark?
  (|#%name|
   parsed-with-continuation-mark?
   (record-predicate struct:parsed-with-continuation-mark)))
(define parsed-with-continuation-mark-key
  (|#%name|
   parsed-with-continuation-mark-key
   (record-accessor struct:parsed-with-continuation-mark 0)))
(define parsed-with-continuation-mark-val
  (|#%name|
   parsed-with-continuation-mark-val
   (record-accessor struct:parsed-with-continuation-mark 1)))
(define parsed-with-continuation-mark-body
  (|#%name|
   parsed-with-continuation-mark-body
   (record-accessor struct:parsed-with-continuation-mark 2)))
(define finish_2388
  (make-struct-type-install-properties
   '(|parsed-#%variable-reference|)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   '|parsed-#%variable-reference|))
(define |struct:parsed-#%variable-reference|
  (make-record-type-descriptor
   '|parsed-#%variable-reference|
   struct:parsed
   (|#%nongenerative-uid| |parsed-#%variable-reference|)
   #f
   #f
   '(1 . 0)))
(define effect_3025 (finish_2388 |struct:parsed-#%variable-reference|))
(define |parsed-#%variable-reference11.1|
  (|#%name|
   |parsed-#%variable-reference|
   (record-constructor
    (make-record-constructor-descriptor
     |struct:parsed-#%variable-reference|
     #f
     #f))))
(define |parsed-#%variable-reference?|
  (|#%name|
   |parsed-#%variable-reference?|
   (record-predicate |struct:parsed-#%variable-reference|)))
(define |parsed-#%variable-reference-id|
  (|#%name|
   |parsed-#%variable-reference-id|
   (record-accessor |struct:parsed-#%variable-reference| 0)))
(define finish_2060
  (make-struct-type-install-properties
   '(parsed-begin)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-begin))
(define struct:parsed-begin
  (make-record-type-descriptor
   'parsed-begin
   struct:parsed
   (|#%nongenerative-uid| parsed-begin)
   #f
   #f
   '(1 . 0)))
(define effect_2189 (finish_2060 struct:parsed-begin))
(define parsed-begin12.1
  (|#%name|
   parsed-begin
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-begin #f #f))))
(define parsed-begin?
  (|#%name| parsed-begin? (record-predicate struct:parsed-begin)))
(define parsed-begin-body
  (|#%name| parsed-begin-body (record-accessor struct:parsed-begin 0)))
(define finish_2062
  (make-struct-type-install-properties
   '(parsed-begin0)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-begin0))
(define struct:parsed-begin0
  (make-record-type-descriptor
   'parsed-begin0
   struct:parsed
   (|#%nongenerative-uid| parsed-begin0)
   #f
   #f
   '(1 . 0)))
(define effect_2190 (finish_2062 struct:parsed-begin0))
(define parsed-begin013.1
  (|#%name|
   parsed-begin0
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-begin0 #f #f))))
(define parsed-begin0?
  (|#%name| parsed-begin0? (record-predicate struct:parsed-begin0)))
(define parsed-begin0-body
  (|#%name| parsed-begin0-body (record-accessor struct:parsed-begin0 0)))
(define finish_2790
  (make-struct-type-install-properties
   '(parsed-quote)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-quote))
(define struct:parsed-quote
  (make-record-type-descriptor
   'parsed-quote
   struct:parsed
   (|#%nongenerative-uid| parsed-quote)
   #f
   #f
   '(1 . 0)))
(define effect_2174 (finish_2790 struct:parsed-quote))
(define parsed-quote14.1
  (|#%name|
   parsed-quote
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-quote #f #f))))
(define parsed-quote?
  (|#%name| parsed-quote? (record-predicate struct:parsed-quote)))
(define parsed-quote-datum
  (|#%name| parsed-quote-datum (record-accessor struct:parsed-quote 0)))
(define finish_2149
  (make-struct-type-install-properties
   '(parsed-quote-syntax)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-quote-syntax))
(define struct:parsed-quote-syntax
  (make-record-type-descriptor
   'parsed-quote-syntax
   struct:parsed
   (|#%nongenerative-uid| parsed-quote-syntax)
   #f
   #f
   '(1 . 0)))
(define effect_3320 (finish_2149 struct:parsed-quote-syntax))
(define parsed-quote-syntax15.1
  (|#%name|
   parsed-quote-syntax
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-quote-syntax #f #f))))
(define parsed-quote-syntax?
  (|#%name|
   parsed-quote-syntax?
   (record-predicate struct:parsed-quote-syntax)))
(define parsed-quote-syntax-datum
  (|#%name|
   parsed-quote-syntax-datum
   (record-accessor struct:parsed-quote-syntax 0)))
(define finish_2373
  (make-struct-type-install-properties
   '(parsed-let_-values)
   3
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'parsed-let_-values))
(define struct:parsed-let_-values
  (make-record-type-descriptor
   'parsed-let_-values
   struct:parsed
   (|#%nongenerative-uid| parsed-let_-values)
   #f
   #f
   '(3 . 0)))
(define effect_2494 (finish_2373 struct:parsed-let_-values))
(define parsed-let_-values16.1
  (|#%name|
   parsed-let_-values
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-let_-values #f #f))))
(define parsed-let_-values?
  (|#%name| parsed-let_-values? (record-predicate struct:parsed-let_-values)))
(define parsed-let_-values-idss
  (|#%name|
   parsed-let_-values-idss
   (record-accessor struct:parsed-let_-values 0)))
(define parsed-let_-values-clauses
  (|#%name|
   parsed-let_-values-clauses
   (record-accessor struct:parsed-let_-values 1)))
(define parsed-let_-values-body
  (|#%name|
   parsed-let_-values-body
   (record-accessor struct:parsed-let_-values 2)))
(define finish_2586
  (make-struct-type-install-properties
   '(parsed-let-values)
   0
   0
   struct:parsed-let_-values
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   'parsed-let-values))
(define struct:parsed-let-values
  (make-record-type-descriptor
   'parsed-let-values
   struct:parsed-let_-values
   (|#%nongenerative-uid| parsed-let-values)
   #f
   #f
   '(0 . 0)))
(define effect_2429 (finish_2586 struct:parsed-let-values))
(define parsed-let-values17.1
  (|#%name|
   parsed-let-values
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-let-values #f #f))))
(define parsed-let-values?
  (|#%name| parsed-let-values? (record-predicate struct:parsed-let-values)))
(define finish_2434
  (make-struct-type-install-properties
   '(parsed-letrec-values)
   0
   0
   struct:parsed-let_-values
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   'parsed-letrec-values))
(define struct:parsed-letrec-values
  (make-record-type-descriptor
   'parsed-letrec-values
   struct:parsed-let_-values
   (|#%nongenerative-uid| parsed-letrec-values)
   #f
   #f
   '(0 . 0)))
(define effect_2573 (finish_2434 struct:parsed-letrec-values))
(define parsed-letrec-values18.1
  (|#%name|
   parsed-letrec-values
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-letrec-values #f #f))))
(define parsed-letrec-values?
  (|#%name|
   parsed-letrec-values?
   (record-predicate struct:parsed-letrec-values)))
(define finish_2907
  (make-struct-type-install-properties
   '(parsed-define-values)
   3
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'parsed-define-values))
(define struct:parsed-define-values
  (make-record-type-descriptor
   'parsed-define-values
   struct:parsed
   (|#%nongenerative-uid| parsed-define-values)
   #f
   #f
   '(3 . 0)))
(define effect_2826 (finish_2907 struct:parsed-define-values))
(define parsed-define-values19.1
  (|#%name|
   parsed-define-values
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-define-values #f #f))))
(define parsed-define-values?
  (|#%name|
   parsed-define-values?
   (record-predicate struct:parsed-define-values)))
(define parsed-define-values-ids
  (|#%name|
   parsed-define-values-ids
   (record-accessor struct:parsed-define-values 0)))
(define parsed-define-values-syms
  (|#%name|
   parsed-define-values-syms
   (record-accessor struct:parsed-define-values 1)))
(define parsed-define-values-rhs
  (|#%name|
   parsed-define-values-rhs
   (record-accessor struct:parsed-define-values 2)))
(define finish_3035
  (make-struct-type-install-properties
   '(parsed-define-syntaxes)
   3
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'parsed-define-syntaxes))
(define struct:parsed-define-syntaxes
  (make-record-type-descriptor
   'parsed-define-syntaxes
   struct:parsed
   (|#%nongenerative-uid| parsed-define-syntaxes)
   #f
   #f
   '(3 . 0)))
(define effect_2530 (finish_3035 struct:parsed-define-syntaxes))
(define parsed-define-syntaxes20.1
  (|#%name|
   parsed-define-syntaxes
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-define-syntaxes #f #f))))
(define parsed-define-syntaxes?
  (|#%name|
   parsed-define-syntaxes?
   (record-predicate struct:parsed-define-syntaxes)))
(define parsed-define-syntaxes-ids
  (|#%name|
   parsed-define-syntaxes-ids
   (record-accessor struct:parsed-define-syntaxes 0)))
(define parsed-define-syntaxes-syms
  (|#%name|
   parsed-define-syntaxes-syms
   (record-accessor struct:parsed-define-syntaxes 1)))
(define parsed-define-syntaxes-rhs
  (|#%name|
   parsed-define-syntaxes-rhs
   (record-accessor struct:parsed-define-syntaxes 2)))
(define finish_2438
  (make-struct-type-install-properties
   '(parsed-begin-for-syntax)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-begin-for-syntax))
(define struct:parsed-begin-for-syntax
  (make-record-type-descriptor
   'parsed-begin-for-syntax
   struct:parsed
   (|#%nongenerative-uid| parsed-begin-for-syntax)
   #f
   #f
   '(1 . 0)))
(define effect_2361 (finish_2438 struct:parsed-begin-for-syntax))
(define parsed-begin-for-syntax21.1
  (|#%name|
   parsed-begin-for-syntax
   (record-constructor
    (make-record-constructor-descriptor
     struct:parsed-begin-for-syntax
     #f
     #f))))
(define parsed-begin-for-syntax?
  (|#%name|
   parsed-begin-for-syntax?
   (record-predicate struct:parsed-begin-for-syntax)))
(define parsed-begin-for-syntax-body
  (|#%name|
   parsed-begin-for-syntax-body
   (record-accessor struct:parsed-begin-for-syntax 0)))
(define finish_2594
  (make-struct-type-install-properties
   '(|parsed-#%declare|)
   0
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   '|parsed-#%declare|))
(define |struct:parsed-#%declare|
  (make-record-type-descriptor
   '|parsed-#%declare|
   struct:parsed
   (|#%nongenerative-uid| |parsed-#%declare|)
   #f
   #f
   '(0 . 0)))
(define effect_2603 (finish_2594 |struct:parsed-#%declare|))
(define |parsed-#%declare22.1|
  (|#%name|
   |parsed-#%declare|
   (record-constructor
    (make-record-constructor-descriptor |struct:parsed-#%declare| #f #f))))
(define |parsed-#%declare?|
  (|#%name| |parsed-#%declare?| (record-predicate |struct:parsed-#%declare|)))
(define finish_2834
  (make-struct-type-install-properties
   '(parsed-require)
   1
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'parsed-require))
(define struct:parsed-require
  (make-record-type-descriptor
   'parsed-require
   struct:parsed
   (|#%nongenerative-uid| parsed-require)
   #f
   #f
   '(1 . 0)))
(define effect_2194 (finish_2834 struct:parsed-require))
(define parsed-require23.1
  (|#%name|
   parsed-require
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-require #f #f))))
(define parsed-require?
  (|#%name| parsed-require? (record-predicate struct:parsed-require)))
(define parsed-require-portal-syms
  (|#%name|
   parsed-require-portal-syms
   (record-accessor struct:parsed-require 0)))
(define finish_2724
  (make-struct-type-install-properties
   '(|parsed-#%module-begin|)
   2
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   '|parsed-#%module-begin|))
(define |struct:parsed-#%module-begin|
  (make-record-type-descriptor
   '|parsed-#%module-begin|
   struct:parsed
   (|#%nongenerative-uid| |parsed-#%module-begin|)
   #f
   #f
   '(2 . 0)))
(define effect_2515 (finish_2724 |struct:parsed-#%module-begin|))
(define |parsed-#%module-begin24.1|
  (|#%name|
   |parsed-#%module-begin|
   (record-constructor
    (make-record-constructor-descriptor
     |struct:parsed-#%module-begin|
     #f
     #f))))
(define |parsed-#%module-begin?|
  (|#%name|
   |parsed-#%module-begin?|
   (record-predicate |struct:parsed-#%module-begin|)))
(define |parsed-#%module-begin-body|
  (|#%name|
   |parsed-#%module-begin-body|
   (record-accessor |struct:parsed-#%module-begin| 0)))
(define |parsed-#%module-begin-realm|
  (|#%name|
   |parsed-#%module-begin-realm|
   (record-accessor |struct:parsed-#%module-begin| 1)))
(define finish_2472
  (make-struct-type-install-properties
   '(parsed-module)
   13
   0
   struct:parsed
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10 11 12)
   #f
   'parsed-module))
(define struct:parsed-module
  (make-record-type-descriptor
   'parsed-module
   struct:parsed
   (|#%nongenerative-uid| parsed-module)
   #f
   #f
   '(13 . 0)))
(define effect_2433 (finish_2472 struct:parsed-module))
(define parsed-module25.1
  (|#%name|
   parsed-module
   (record-constructor
    (make-record-constructor-descriptor struct:parsed-module #f #f))))
(define parsed-module?
  (|#%name| parsed-module? (record-predicate struct:parsed-module)))
(define parsed-module-star?
  (|#%name| parsed-module-star? (record-accessor struct:parsed-module 0)))
(define parsed-module-name-id
  (|#%name| parsed-module-name-id (record-accessor struct:parsed-module 1)))
(define parsed-module-self
  (|#%name| parsed-module-self (record-accessor struct:parsed-module 2)))
(define parsed-module-requires
  (|#%name| parsed-module-requires (record-accessor struct:parsed-module 3)))
(define parsed-module-recur-requires
  (|#%name|
   parsed-module-recur-requires
   (record-accessor struct:parsed-module 4)))
(define parsed-module-provides
  (|#%name| parsed-module-provides (record-accessor struct:parsed-module 5)))
(define parsed-module-root-ctx-simple?
  (|#%name|
   parsed-module-root-ctx-simple?
   (record-accessor struct:parsed-module 6)))
(define parsed-module-encoded-root-ctx
  (|#%name|
   parsed-module-encoded-root-ctx
   (record-accessor struct:parsed-module 7)))
(define parsed-module-body
  (|#%name| parsed-module-body (record-accessor struct:parsed-module 8)))
(define parsed-module-realm
  (|#%name| parsed-module-realm (record-accessor struct:parsed-module 9)))
(define parsed-module-portal-syntaxes
  (|#%name|
   parsed-module-portal-syntaxes
   (record-accessor struct:parsed-module 10)))
(define parsed-module-compiled-module
  (|#%name|
   parsed-module-compiled-module
   (record-accessor struct:parsed-module 11)))
(define parsed-module-compiled-submodules
  (|#%name|
   parsed-module-compiled-submodules
   (record-accessor struct:parsed-module 12)))
(define add-space-scope
  (lambda (stx_0 space_0)
    (if space_0 (add-scope stx_0 (make-interned-scope space_0)) stx_0)))
(define remove-space-scope
  (lambda (stx_0 space_0)
    (if space_0 (remove-scope stx_0 (make-interned-scope space_0)) stx_0)))
(define module-path->mpi.1
  (|#%name|
   module-path->mpi
   (lambda (declared-submodule-names1_0 mod-path3_0 self4_0)
     (begin
       (if (if (list? mod-path3_0)
             (if (= 2 (length mod-path3_0))
               (if (eq? 'quote (car mod-path3_0))
                 (if (symbol? (cadr mod-path3_0))
                   (hash-ref declared-submodule-names1_0 (cadr mod-path3_0) #f)
                   #f)
                 #f)
               #f)
             #f)
         (1/module-path-index-join
          (list 'submod "." (cadr mod-path3_0))
          self4_0)
         (if (if (list? mod-path3_0)
               (if (eq? 'submod (car mod-path3_0))
                 (let ((mod-path_0 (cadr mod-path3_0)))
                   (if (list? mod-path_0)
                     (if (= 2 (length mod-path_0))
                       (if (eq? 'quote (car mod-path_0))
                         (if (symbol? (cadr mod-path_0))
                           (hash-ref
                            declared-submodule-names1_0
                            (cadr mod-path_0)
                            #f)
                           #f)
                         #f)
                       #f)
                     #f))
                 #f)
               #f)
           (1/module-path-index-join
            (let ((app_0 (cadr (cadr mod-path3_0))))
              (list* 'submod "." app_0 (cddr mod-path3_0)))
            self4_0)
           (1/module-path-index-join mod-path3_0 self4_0)))))))
(define module-path->mpi/context
  (lambda (mod-path_0 ctx_0)
    (let ((temp7_0
           (namespace-mpi
            (begin-unsafe
             (expand-context/inner-namespace
              (root-expand-context/outer-inner ctx_0))))))
      (let ((temp8_0
             (begin-unsafe
              (expand-context/inner-declared-submodule-names
               (root-expand-context/outer-inner ctx_0)))))
        (module-path->mpi.1 temp8_0 mod-path_0 temp7_0)))))
(define syntax-mapped-names.1
  (|#%name|
   syntax-mapped-names
   (lambda (exactly?2_0 only-interned?1_0 s5_0 phase6_0)
     (begin
       (let ((s-scs_0 (syntax-scope-set s5_0 phase6_0)))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (syms_0 i_0)
                 (begin
                   (if i_0
                     (let ((sc_0
                            (unsafe-immutable-hash-iterate-key s-scs_0 i_0)))
                       (let ((syms_1
                              (let ((syms_1
                                     (set-union
                                      syms_0
                                      (let ((temp8_0
                                             (scope-binding-table sc_0)))
                                        (binding-table-symbols.1
                                         exactly?2_0
                                         only-interned?1_0
                                         temp8_0
                                         s-scs_0
                                         s5_0
                                         null)))))
                                (values syms_1))))
                         (for-loop_0
                          syms_1
                          (unsafe-immutable-hash-iterate-next s-scs_0 i_0))))
                     syms_0))))))
            (let ((app_0 (seteq)))
              (for-loop_0
               app_0
               (unsafe-immutable-hash-iterate-first s-scs_0))))))))))
(define syntax-mapped-phases
  (lambda (s_0)
    (let ((smss_0 (fallback-first (syntax-shifted-multi-scopes s_0))))
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (phases_0 i_0)
              (begin
                (if i_0
                  (let ((sms_0 (unsafe-immutable-hash-iterate-key smss_0 i_0)))
                    (let ((phases_1
                           (let ((phases_1
                                  (shifted-multi-scope-add-binding-phases
                                   sms_0
                                   phases_0)))
                             (values phases_1))))
                      (for-loop_0
                       phases_1
                       (unsafe-immutable-hash-iterate-next smss_0 i_0))))
                  phases_0))))))
         (for-loop_0
          (begin-unsafe the-empty-hasheqv)
          (unsafe-immutable-hash-iterate-first smss_0)))))))
(define finish_3291
  (make-struct-type-install-properties
   '(requires+provides)
   13
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9)
   #f
   'requires+provides))
(define struct:requires+provides
  (make-record-type-descriptor
   'requires+provides
   #f
   (|#%nongenerative-uid| requires+provides)
   #f
   #f
   '(13 . 7168)))
(define effect_3171 (finish_3291 struct:requires+provides))
(define requires+provides1.1
  (|#%name|
   requires+provides
   (record-constructor
    (make-record-constructor-descriptor struct:requires+provides #f #f))))
(define requires+provides?
  (|#%name| requires+provides? (record-predicate struct:requires+provides)))
(define requires+provides-self
  (|#%name|
   requires+provides-self
   (record-accessor struct:requires+provides 0)))
(define requires+provides-require-mpis
  (|#%name|
   requires+provides-require-mpis
   (record-accessor struct:requires+provides 1)))
(define requires+provides-require-mpis-in-order
  (|#%name|
   requires+provides-require-mpis-in-order
   (record-accessor struct:requires+provides 2)))
(define requires+provides-requires
  (|#%name|
   requires+provides-requires
   (record-accessor struct:requires+provides 3)))
(define requires+provides-transitive-requires
  (|#%name|
   requires+provides-transitive-requires
   (record-accessor struct:requires+provides 4)))
(define requires+provides-provides
  (|#%name|
   requires+provides-provides
   (record-accessor struct:requires+provides 5)))
(define requires+provides-phase-to-defined-syms
  (|#%name|
   requires+provides-phase-to-defined-syms
   (record-accessor struct:requires+provides 6)))
(define requires+provides-also-required
  (|#%name|
   requires+provides-also-required
   (record-accessor struct:requires+provides 7)))
(define requires+provides-spaces
  (|#%name|
   requires+provides-spaces
   (record-accessor struct:requires+provides 8)))
(define requires+provides-portal-syntaxes
  (|#%name|
   requires+provides-portal-syntaxes
   (record-accessor struct:requires+provides 9)))
(define requires+provides-can-cross-phase-persistent?
  (|#%name|
   requires+provides-can-cross-phase-persistent?
   (record-accessor struct:requires+provides 10)))
(define requires+provides-all-bindings-simple?
  (|#%name|
   requires+provides-all-bindings-simple?
   (record-accessor struct:requires+provides 11)))
(define requires+provides-definitions-shadow-imports?
  (|#%name|
   requires+provides-definitions-shadow-imports?
   (record-accessor struct:requires+provides 12)))
(define set-requires+provides-can-cross-phase-persistent?!
  (|#%name|
   set-requires+provides-can-cross-phase-persistent?!
   (record-mutator struct:requires+provides 10)))
(define set-requires+provides-all-bindings-simple?!
  (|#%name|
   set-requires+provides-all-bindings-simple?!
   (record-mutator struct:requires+provides 11)))
(define set-requires+provides-definitions-shadow-imports?!
  (|#%name|
   set-requires+provides-definitions-shadow-imports?!
   (record-mutator struct:requires+provides 12)))
(define finish_2532
  (make-struct-type-install-properties
   '(required)
   4
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'required))
(define struct:required
  (make-record-type-descriptor
   'required
   #f
   (|#%nongenerative-uid| required)
   #f
   #f
   '(4 . 0)))
(define effect_2757 (finish_2532 struct:required))
(define required2.1
  (|#%name|
   required
   (record-constructor
    (make-record-constructor-descriptor struct:required #f #f))))
(define required? (|#%name| required? (record-predicate struct:required)))
(define required-id (|#%name| required-id (record-accessor struct:required 0)))
(define required-phase+space
  (|#%name| required-phase+space (record-accessor struct:required 1)))
(define required-can-be-shadowed?
  (|#%name| required-can-be-shadowed? (record-accessor struct:required 2)))
(define required-as-transformer?
  (|#%name| required-as-transformer? (record-accessor struct:required 3)))
(define finish_2664
  (make-struct-type-install-properties
   '(bulk-required)
   5
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4)
   #f
   'bulk-required))
(define struct:bulk-required
  (make-record-type-descriptor
   'bulk-required
   #f
   (|#%nongenerative-uid| bulk-required)
   #f
   #f
   '(5 . 0)))
(define effect_3099 (finish_2664 struct:bulk-required))
(define bulk-required3.1
  (|#%name|
   bulk-required
   (record-constructor
    (make-record-constructor-descriptor struct:bulk-required #f #f))))
(define bulk-required?
  (|#%name| bulk-required? (record-predicate struct:bulk-required)))
(define bulk-required-provides
  (|#%name| bulk-required-provides (record-accessor struct:bulk-required 0)))
(define bulk-required-prefix-len
  (|#%name| bulk-required-prefix-len (record-accessor struct:bulk-required 1)))
(define bulk-required-s
  (|#%name| bulk-required-s (record-accessor struct:bulk-required 2)))
(define bulk-required-provide-phase+space
  (|#%name|
   bulk-required-provide-phase+space
   (record-accessor struct:bulk-required 3)))
(define bulk-required-can-be-shadowed?
  (|#%name|
   bulk-required-can-be-shadowed?
   (record-accessor struct:bulk-required 4)))
(define make-requires+provides.1
  (|#%name|
   make-requires+provides
   (lambda (copy-requires4_0 portal-syntaxes5_0 self8_0)
     (begin
       (let ((portal-syntaxes_0
              (if (eq? portal-syntaxes5_0 unsafe-undefined)
                (if copy-requires4_0
                  (hash-copy
                   (requires+provides-portal-syntaxes copy-requires4_0))
                  #f)
                portal-syntaxes5_0)))
         (let ((app_0
                (if copy-requires4_0
                  (requires+provides-require-mpis copy-requires4_0)
                  (make-module-path-index-intern-table))))
           (let ((app_1
                  (if copy-requires4_0
                    (hash-copy
                     (requires+provides-require-mpis-in-order
                      copy-requires4_0))
                    (make-hasheqv))))
             (let ((app_2 (make-hasheq)))
               (let ((app_3 (make-hasheq)))
                 (let ((app_4 (make-hasheqv)))
                   (let ((app_5 (make-hasheqv)))
                     (let ((app_6 (make-hasheq)))
                       (requires+provides1.1
                        self8_0
                        app_0
                        app_1
                        app_2
                        app_3
                        app_4
                        app_5
                        app_6
                        (make-hasheq)
                        portal-syntaxes_0
                        #t
                        #t
                        #t)))))))))))))
(define requires+provides-reset!
  (lambda (r+p_0)
    (begin
      (hash-clear! (requires+provides-requires r+p_0))
      (hash-clear! (requires+provides-transitive-requires r+p_0))
      (hash-clear! (requires+provides-provides r+p_0))
      (hash-clear! (requires+provides-phase-to-defined-syms r+p_0))
      (hash-clear! (requires+provides-also-required r+p_0))
      (hash-clear! (requires+provides-spaces r+p_0)))))
(define intern-mpi
  (lambda (r+p_0 mpi_0)
    (intern-module-path-index! (requires+provides-require-mpis r+p_0) mpi_0)))
(define add-required-space!
  (lambda (r+p_0 space_0)
    (if space_0
      (hash-set! (requires+provides-spaces r+p_0) space_0 #t)
      (void))))
(define add-required-module!
  (lambda (r+p_0 mod-name_0 phase+space-shift_0 is-cross-phase-persistent?_0)
    (let ((mpi_0
           (begin-unsafe
            (intern-module-path-index!
             (requires+provides-require-mpis r+p_0)
             mod-name_0))))
      (begin
        (if (hash-ref
             (hash-ref (requires+provides-requires r+p_0) mpi_0 hash2589)
             phase+space-shift_0
             #f)
          (void)
          (begin
            (let ((ht_0 (requires+provides-require-mpis-in-order r+p_0)))
              (let ((key_0
                     (phase+space-shift-phase-level phase+space-shift_0)))
                (let ((xform_0 (lambda (l_0) (cons mpi_0 l_0))))
                  (let ((key_1 key_0) (ht_1 ht_0))
                    (begin-unsafe
                     (do-hash-update
                      'hash-update!
                      #t
                      hash-set!
                      ht_1
                      key_1
                      xform_0
                      null))))))
            (let ((app_0
                   (hash-ref!
                    (requires+provides-requires r+p_0)
                    mpi_0
                    make-hasheqv)))
              (hash-set! app_0 phase+space-shift_0 (make-hasheq)))))
        (if is-cross-phase-persistent?_0
          (void)
          (set-requires+provides-can-cross-phase-persistent?! r+p_0 #f))
        mpi_0))))
(define add-defined-or-required-id!.1
  (|#%name|
   add-defined-or-required-id!
   (lambda (as-transformer?11_0
            can-be-shadowed?10_0
            r+p14_0
            id15_0
            phase+space16_0
            binding17_0)
     (begin
       (begin
         (if (eqv?
              phase+space16_0
              (let ((p+s_0 (module-binding-nominal-phase+space binding17_0)))
                (let ((level_0
                       (module-binding-nominal-require-phase+space-shift
                        binding17_0)))
                  (let ((p+s_1 p+s_0))
                    (begin-unsafe
                     (intern-phase+space (phase+space+$1 p+s_1 level_0)))))))
           (void)
           (error
            "internal error: binding phase+space does not match nominal info"))
         (let ((temp104_0 (module-binding-nominal-module binding17_0)))
           (let ((temp105_0
                  (module-binding-nominal-require-phase+space-shift
                   binding17_0)))
             (let ((temp104_1 temp104_0))
               (add-defined-or-required-id-at-nominal!.1
                as-transformer?11_0
                can-be-shadowed?10_0
                temp104_1
                temp105_0
                r+p14_0
                id15_0
                phase+space16_0)))))))))
(define add-defined-or-required-id-at-nominal!.1
  (|#%name|
   add-defined-or-required-id-at-nominal!
   (lambda (as-transformer?22_0
            can-be-shadowed?21_0
            nominal-module19_0
            nominal-require-phase+space-shift20_0
            r+p27_0
            id28_0
            phase+space29_0)
     (begin
       (let ((at-mod_0
              (hash-ref!
               (requires+provides-requires r+p27_0)
               (begin-unsafe
                (intern-module-path-index!
                 (requires+provides-require-mpis r+p27_0)
                 nominal-module19_0))
               make-hasheqv)))
         (let ((sym-to-reqds_0
                (hash-ref!
                 at-mod_0
                 nominal-require-phase+space-shift20_0
                 make-hasheq)))
           (let ((sym_0 (syntax-e$1 id28_0)))
             (hash-set!
              sym-to-reqds_0
              sym_0
              (let ((app_0
                     (required2.1
                      id28_0
                      phase+space29_0
                      can-be-shadowed?21_0
                      as-transformer?22_0)))
                (cons-ish app_0 (hash-ref sym-to-reqds_0 sym_0 null)))))))))))
(define add-bulk-required-ids!.1
  (|#%name|
   add-bulk-required-ids!
   (lambda (accum-update-nominals37_0
            can-be-shadowed?35_0
            check-and-remove?36_0
            excepts32_0
            in34_0
            prefix31_0
            symbols-accum33_0
            who38_0
            r+p47_0
            s48_0
            self49_0
            nominal-module50_0
            phase-level51_0
            provides52_0
            provide-phase+space53_0)
     (begin
       (let ((phase+space_0
              (begin-unsafe
               (intern-phase+space
                (phase+space+$1 provide-phase+space53_0 phase-level51_0)))))
         (let ((phase_0 (phase+space-phase phase+space_0)))
           (let ((space_0 (phase+space-space phase+space_0)))
             (let ((s-at-space_0 (add-space-scope s48_0 space_0)))
               (let ((shortcut-table_0
                      (if check-and-remove?36_0
                        (if (> (hash-count provides52_0) 64)
                          (syntax-mapped-names.1 #f #f s-at-space_0 phase_0)
                          #f)
                        #f)))
                 (let ((mpi_0
                        (begin-unsafe
                         (intern-module-path-index!
                          (requires+provides-require-mpis r+p47_0)
                          nominal-module50_0))))
                   (let ((at-mod_0
                          (hash-ref!
                           (requires+provides-requires r+p47_0)
                           mpi_0
                           make-hasheqv)))
                     (let ((sym-to-reqds_0
                            (hash-ref! at-mod_0 phase-level51_0 make-hasheq)))
                       (let ((prefix-len_0
                              (if prefix31_0
                                (string-length (symbol->string prefix31_0))
                                0)))
                         (let ((br_0
                                (bulk-required3.1
                                 provides52_0
                                 prefix-len_0
                                 s48_0
                                 provide-phase+space53_0
                                 can-be-shadowed?35_0)))
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (any-already-defined?_0 i_0)
                                   (begin
                                     (if i_0
                                       (call-with-values
                                        (lambda ()
                                          (hash-iterate-key+value
                                           provides52_0
                                           i_0))
                                        (case-lambda
                                         ((out-sym_0 binding/p_0)
                                          (let ((any-already-defined?_1
                                                 (if (not
                                                      (symbol-interned?
                                                       out-sym_0))
                                                   any-already-defined?_0
                                                   (let ((any-already-defined?_1
                                                          (begin
                                                            (if symbols-accum33_0
                                                              (hash-set!
                                                               symbols-accum33_0
                                                               out-sym_0
                                                               #t)
                                                              (void))
                                                            (if (hash-ref
                                                                 excepts32_0
                                                                 out-sym_0
                                                                 #f)
                                                              #f
                                                              (let ((sym_0
                                                                     (if (not
                                                                          prefix31_0)
                                                                       out-sym_0
                                                                       (string->symbol
                                                                        (let ((app_0
                                                                               (symbol->string
                                                                                prefix31_0)))
                                                                          (string-append
                                                                           app_0
                                                                           (symbol->string
                                                                            out-sym_0)))))))
                                                                (let ((bound-status_0
                                                                       (if (if check-and-remove?36_0
                                                                             (let ((or-part_0
                                                                                    (not
                                                                                     shortcut-table_0)))
                                                                               (if or-part_0
                                                                                 or-part_0
                                                                                 (hash-ref
                                                                                  shortcut-table_0
                                                                                  sym_0
                                                                                  #f)))
                                                                             #f)
                                                                         (let ((id_0
                                                                                (datum->syntax$1
                                                                                 s-at-space_0
                                                                                 sym_0
                                                                                 s-at-space_0)))
                                                                           (begin
                                                                             (adjust-shadow-requires!
                                                                              r+p47_0
                                                                              id_0
                                                                              phase_0
                                                                              space_0)
                                                                             (let ((temp111_0
                                                                                    (requires+provides-definitions-shadow-imports?
                                                                                     r+p47_0)))
                                                                               (let ((temp117_0
                                                                                      (lambda ()
                                                                                        (provide-binding-to-require-binding.1
                                                                                         mpi_0
                                                                                         phase-level51_0
                                                                                         provide-phase+space53_0
                                                                                         self49_0
                                                                                         binding/p_0
                                                                                         sym_0))))
                                                                                 (let ((temp111_1
                                                                                        temp111_0))
                                                                                   (check-not-defined.1
                                                                                    accum-update-nominals37_0
                                                                                    temp111_1
                                                                                    #t
                                                                                    in34_0
                                                                                    #t
                                                                                    temp117_0
                                                                                    who38_0
                                                                                    r+p47_0
                                                                                    id_0
                                                                                    phase_0
                                                                                    space_0))))))
                                                                         #f)))
                                                                  (let ((already-defined?_0
                                                                         (eq?
                                                                          bound-status_0
                                                                          'defined)))
                                                                    (begin
                                                                      (if already-defined?_0
                                                                        (void)
                                                                        (hash-set!
                                                                         sym-to-reqds_0
                                                                         sym_0
                                                                         (cons-ish
                                                                          br_0
                                                                          (hash-ref
                                                                           sym-to-reqds_0
                                                                           sym_0
                                                                           null))))
                                                                      (if any-already-defined?_0
                                                                        any-already-defined?_0
                                                                        already-defined?_0)))))))))
                                                     (values
                                                      any-already-defined?_1)))))
                                            (for-loop_0
                                             any-already-defined?_1
                                             (hash-iterate-next
                                              provides52_0
                                              i_0))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))
                                       any-already-defined?_0))))))
                              (for-loop_0
                               #f
                               (hash-iterate-first
                                provides52_0))))))))))))))))))
(define bulk-required->required
  (lambda (br_0 nominal-module_0 phase+space-shift_0 sym_0)
    (let ((prefix-len_0 (bulk-required-prefix-len br_0)))
      (let ((out-sym_0
             (if (zero? prefix-len_0)
               sym_0
               (string->symbol
                (substring (symbol->string sym_0) prefix-len_0)))))
        (let ((binding/p_0 (hash-ref (bulk-required-provides br_0) out-sym_0)))
          (let ((phase+space_0
                 (let ((p+s_0 (bulk-required-provide-phase+space br_0)))
                   (begin-unsafe
                    (intern-phase+space
                     (phase+space+$1 p+s_0 phase+space-shift_0))))))
            (let ((app_0
                   (let ((app_0
                          (datum->syntax$1 (bulk-required-s br_0) sym_0)))
                     (add-space-scope
                      app_0
                      (phase+space-space phase+space_0)))))
              (required2.1
               app_0
               phase+space_0
               (bulk-required-can-be-shadowed? br_0)
               (provided-as-transformer? binding/p_0)))))))))
(define normalize-required
  (lambda (r_0 mod-name_0 phase+space-shift_0 sym_0)
    (if (bulk-required? r_0)
      (bulk-required->required r_0 mod-name_0 phase+space-shift_0 sym_0)
      r_0)))
(define add-enclosing-module-defined-and-required!.1
  (|#%name|
   add-enclosing-module-defined-and-required!
   (lambda (enclosing-requires+provides55_0
            r+p57_0
            enclosing-mod58_0
            phase-level59_0)
     (begin
       (begin
         (set-requires+provides-all-bindings-simple?! r+p57_0 #f)
         (let ((ht_0
                (requires+provides-requires enclosing-requires+provides55_0)))
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (i_0)
                   (begin
                     (if i_0
                       (call-with-values
                        (lambda () (hash-iterate-key+value ht_0 i_0))
                        (case-lambda
                         ((mod-name_0 at-mod_0)
                          (begin
                            (begin
                              (begin
                                (letrec*
                                 ((for-loop_1
                                   (|#%name|
                                    for-loop
                                    (lambda (i_1)
                                      (begin
                                        (if i_1
                                          (call-with-values
                                           (lambda ()
                                             (hash-iterate-key+value
                                              at-mod_0
                                              i_1))
                                           (case-lambda
                                            ((phase+space-shift_0 at-phase_0)
                                             (call-with-values
                                              (lambda ()
                                                (begin
                                                  (letrec*
                                                   ((for-loop_2
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (i_2)
                                                        (begin
                                                          (if i_2
                                                            (call-with-values
                                                             (lambda ()
                                                               (hash-iterate-key+value
                                                                at-phase_0
                                                                i_2))
                                                             (case-lambda
                                                              ((sym_0 reqds_0)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (begin
                                                                    (letrec*
                                                                     ((for-loop_3
                                                                       (|#%name|
                                                                        for-loop
                                                                        (lambda (lst_0)
                                                                          (begin
                                                                            (if (not
                                                                                 (null?
                                                                                  lst_0))
                                                                              (let ((reqd/maybe-bulk_0
                                                                                     (if (pair?
                                                                                          lst_0)
                                                                                       (car
                                                                                        lst_0)
                                                                                       lst_0)))
                                                                                (let ((rest_0
                                                                                       (if (pair?
                                                                                            lst_0)
                                                                                         (cdr
                                                                                          lst_0)
                                                                                         null)))
                                                                                  (let ((reqd/maybe-bulk_1
                                                                                         reqd/maybe-bulk_0))
                                                                                    (begin
                                                                                      (let ((reqd_0
                                                                                             (begin-unsafe
                                                                                              (if (bulk-required?
                                                                                                   reqd/maybe-bulk_1)
                                                                                                (bulk-required->required
                                                                                                 reqd/maybe-bulk_1
                                                                                                 mod-name_0
                                                                                                 phase+space-shift_0
                                                                                                 sym_0)
                                                                                                reqd/maybe-bulk_1))))
                                                                                        (let ((temp128_0
                                                                                               (syntax-shift-phase-level$1
                                                                                                (let ((temp134_0
                                                                                                       (required-id
                                                                                                        reqd_0)))
                                                                                                  (let ((temp135_0
                                                                                                         (requires+provides-self
                                                                                                          enclosing-requires+provides55_0)))
                                                                                                    (syntax-module-path-index-shift.1
                                                                                                     #f
                                                                                                     temp134_0
                                                                                                     temp135_0
                                                                                                     enclosing-mod58_0
                                                                                                     #f)))
                                                                                                phase-level59_0)))
                                                                                          (let ((temp129_0
                                                                                                 (let ((p+s_0
                                                                                                        (required-phase+space
                                                                                                         reqd_0)))
                                                                                                   (begin-unsafe
                                                                                                    (intern-phase+space
                                                                                                     (phase+space+$1
                                                                                                      p+s_0
                                                                                                      phase-level59_0))))))
                                                                                            (let ((temp133_0
                                                                                                   (required-as-transformer?
                                                                                                    reqd_0)))
                                                                                              (let ((temp129_1
                                                                                                     temp129_0)
                                                                                                    (temp128_1
                                                                                                     temp128_0))
                                                                                                (add-defined-or-required-id-at-nominal!.1
                                                                                                 temp133_0
                                                                                                 #t
                                                                                                 enclosing-mod58_0
                                                                                                 phase-level59_0
                                                                                                 r+p57_0
                                                                                                 temp128_1
                                                                                                 temp129_1))))))
                                                                                      (for-loop_3
                                                                                       rest_0)))))
                                                                              (values)))))))
                                                                     (for-loop_3
                                                                      reqds_0))))
                                                                (case-lambda
                                                                 (()
                                                                  (for-loop_2
                                                                   (hash-iterate-next
                                                                    at-phase_0
                                                                    i_2)))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   0
                                                                   args)))))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args))))
                                                            (values)))))))
                                                   (for-loop_2
                                                    (hash-iterate-first
                                                     at-phase_0)))))
                                              (case-lambda
                                               (()
                                                (for-loop_1
                                                 (hash-iterate-next
                                                  at-mod_0
                                                  i_1)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 0
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (values)))))))
                                 (for-loop_1 (hash-iterate-first at-mod_0))))
                              (void))
                            (for-loop_0 (hash-iterate-next ht_0 i_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (values)))))))
              (for-loop_0 (hash-iterate-first ht_0)))))
         (void))))))
(define remove-required-id!
  (lambda (r+p_0 id_0 phase_0)
    (let ((remove!_0
           (|#%name|
            remove!
            (lambda (bind-as-ambiguous?137_0 id139_0)
              (begin
                (let ((b_0
                       (resolve+shift.1
                        #f
                        #t
                        null
                        unsafe-undefined
                        #f
                        id139_0
                        phase_0)))
                  (if (if (module-binding? b_0)
                        (not
                         (eq?
                          (requires+provides-self r+p_0)
                          (module-binding-module b_0)))
                        #f)
                    (begin
                      (if bind-as-ambiguous?137_0
                        (let ((temp146_0 (like-ambiguous-binding1.1)))
                          (add-binding!.1 #f #f id139_0 temp146_0 phase_0))
                        (void))
                      (let ((mpi_0
                             (let ((mpi_0 (module-binding-nominal-module b_0)))
                               (begin-unsafe
                                (intern-module-path-index!
                                 (requires+provides-require-mpis r+p_0)
                                 mpi_0)))))
                        (let ((at-mod_0
                               (hash-ref
                                (requires+provides-requires r+p_0)
                                mpi_0
                                #f)))
                          (if at-mod_0
                            (let ((nominal-phase+space-shift_0
                                   (module-binding-nominal-require-phase+space-shift
                                    b_0)))
                              (let ((sym-to-reqds_0
                                     (hash-ref
                                      at-mod_0
                                      nominal-phase+space-shift_0
                                      #f)))
                                (if sym-to-reqds_0
                                  (let ((sym_0 (syntax-e$1 id139_0)))
                                    (let ((l_0
                                           (hash-ref
                                            sym-to-reqds_0
                                            sym_0
                                            null)))
                                      (if (null? l_0)
                                        (void)
                                        (hash-set!
                                         sym-to-reqds_0
                                         sym_0
                                         (remove-non-matching-requireds
                                          l_0
                                          id139_0
                                          phase_0
                                          mpi_0
                                          nominal-phase+space-shift_0
                                          sym_0)))))
                                  (void))))
                            (void)))))
                    (void))))))))
      (begin
        (remove!_0 #f id_0)
        (let ((ht_0 (requires+provides-spaces r+p_0)))
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (i_0)
                  (begin
                    (if i_0
                      (let ((space_0 (hash-iterate-key ht_0 i_0)))
                        (begin
                          (let ((temp148_0 (add-space-scope id_0 space_0)))
                            (remove!_0 #t temp148_0))
                          (for-loop_0 (hash-iterate-next ht_0 i_0))))
                      (values)))))))
             (for-loop_0 (hash-iterate-first ht_0)))))
        (void)))))
(define remove-non-matching-requireds
  (lambda (reqds_0 id_0 phase_0 mpi_0 nominal-phase+space-shift_0 sym_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (not (null? lst_0))
                 (let ((r_0 (if (pair? lst_0) (car lst_0) lst_0)))
                   (let ((rest_0 (if (pair? lst_0) (cdr lst_0) null)))
                     (let ((r_1 r_0))
                       (let ((fold-var_1
                              (let ((id*_0
                                     (begin-unsafe
                                      (if (bulk-required? r_1)
                                        (bulk-required->required
                                         r_1
                                         mpi_0
                                         nominal-phase+space-shift_0
                                         sym_0)
                                        r_1))))
                                (begin
                                  #t
                                  (letrec*
                                   ((for-loop_1
                                     (|#%name|
                                      for-loop
                                      (lambda (fold-var_1)
                                        (begin
                                          (let ((fold-var_2
                                                 (if (if (eqv?
                                                          phase_0
                                                          (phase+space-phase
                                                           (required-phase+space
                                                            id*_0)))
                                                       (free-identifier=?$1
                                                        (required-id id*_0)
                                                        id_0
                                                        phase_0
                                                        phase_0)
                                                       #f)
                                                   fold-var_1
                                                   (let ((fold-var_2
                                                          (cons
                                                           id*_0
                                                           fold-var_1)))
                                                     (values fold-var_2)))))
                                            fold-var_2))))))
                                   (for-loop_1 fold-var_0))))))
                         (for-loop_0 fold-var_1 rest_0)))))
                 fold-var_0))))))
        (for-loop_0 null reqds_0))))))
(define check-not-defined.1
  (|#%name|
   check-not-defined
   (lambda (accum-update-nominals66_0
            allow-defined?62_0
            check-not-required?61_0
            in63_0
            remove-shadowed!?65_0
            unless-matches64_0
            who67_0
            r+p75_0
            id76_0
            phase77_0
            space78_0)
     (begin
       (let ((b_0
              (resolve+shift.1
               #f
               #t
               null
               unsafe-undefined
               #f
               id76_0
               phase77_0)))
         (let ((check-default-space_0
                (|#%name|
                 check-default-space
                 (lambda ()
                   (begin
                     (if (let ((or-part_0 (not space78_0)))
                           (if or-part_0
                             or-part_0
                             (not check-not-required?61_0)))
                       #f
                       (let ((default-b_0
                              (let ((temp153_0
                                     (remove-space-scope id76_0 space78_0)))
                                (resolve+shift.1
                                 #f
                                 #t
                                 null
                                 unsafe-undefined
                                 #f
                                 temp153_0
                                 phase77_0))))
                         (let ((defined?_0
                                (if default-b_0
                                  (eq?
                                   (requires+provides-self r+p75_0)
                                   (module-binding-module default-b_0))
                                  #f)))
                           (if defined?_0
                             (begin
                               (let ((temp157_0 (like-ambiguous-binding1.1)))
                                 (add-binding!.1
                                  #f
                                  #f
                                  id76_0
                                  temp157_0
                                  phase77_0))
                               'defined)
                             #f)))))))))
           (if (not b_0)
             (check-default-space_0)
             (if (not (module-binding? b_0))
               (if allow-defined?62_0
                 (begin
                   (set-requires+provides-all-bindings-simple?! r+p75_0 #f)
                   'defined)
                 (raise-syntax-error$1 #f "identifier out of context" id76_0))
               (let ((defined?_0
                      (if b_0
                        (eq?
                         (requires+provides-self r+p75_0)
                         (module-binding-module b_0))
                        #f)))
                 (if (if defined?_0
                       (not
                        (let ((app_0
                               (hash-ref
                                (requires+provides-phase-to-defined-syms
                                 r+p75_0)
                                phase77_0
                                hash2610)))
                          (hash-ref app_0 (module-binding-sym b_0) #f)))
                       #f)
                   (check-default-space_0)
                   (let ((define-shadowing-require?_0
                          (if (not defined?_0)
                            (if (requires+provides-definitions-shadow-imports?
                                 r+p75_0)
                              (not check-not-required?61_0)
                              #f)
                            #f)))
                     (let ((mpi_0
                            (let ((mpi_0 (module-binding-nominal-module b_0)))
                              (begin-unsafe
                               (intern-module-path-index!
                                (requires+provides-require-mpis r+p75_0)
                                mpi_0)))))
                       (let ((at-mod_0
                              (hash-ref
                               (requires+provides-requires r+p75_0)
                               mpi_0
                               #f)))
                         (let ((ok-binding_0
                                (if (not define-shadowing-require?_0)
                                  (if (procedure? unless-matches64_0)
                                    (|#%app| unless-matches64_0)
                                    unless-matches64_0)
                                  #f)))
                           (let ((raise-already-bound_0
                                  (|#%name|
                                   raise-already-bound
                                   (lambda (defined?_1 where_0)
                                     (begin
                                       (let ((app_0
                                              (string-append
                                               "identifier"
                                               (if (if (not defined?_1)
                                                     (not
                                                      check-not-required?61_0)
                                                     #f)
                                                 " for definition"
                                                 (if (if defined?_1
                                                       check-not-required?61_0
                                                       #f)
                                                   " for require"
                                                   ""))
                                               " already "
                                               (if defined?_1
                                                 "defined"
                                                 "required")
                                               (if (begin-unsafe
                                                    (eq? phase77_0 0))
                                                 ""
                                                 (if (begin-unsafe
                                                      (not phase77_0))
                                                   " for label"
                                                   (if (= 1 phase77_0)
                                                     " for syntax"
                                                     (format
                                                      " for phase ~a"
                                                      phase77_0)))))))
                                         (raise-syntax-error$1
                                          who67_0
                                          app_0
                                          in63_0
                                          id76_0
                                          null
                                          (if (bulk-required? where_0)
                                            (format
                                             "\n  also provided by: ~.s"
                                             (syntax->datum$1
                                              (bulk-required-s where_0)))
                                            ""))))))))
                             (if (if (not at-mod_0)
                                   (not define-shadowing-require?_0)
                                   #f)
                               (check-default-space_0)
                               (if (if ok-binding_0
                                     (same-binding? b_0 ok-binding_0)
                                     #f)
                                 (begin
                                   (if (same-binding-nominals?
                                        b_0
                                        ok-binding_0)
                                     (void)
                                     (let ((update!_0
                                            (|#%name|
                                             update!
                                             (lambda ()
                                               (begin
                                                 (let ((temp161_0
                                                        (let ((temp164_0
                                                               (cons
                                                                b_0
                                                                (module-binding-extra-nominal-bindings
                                                                 b_0))))
                                                          (module-binding-update.1
                                                           unsafe-undefined
                                                           temp164_0
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           unsafe-undefined
                                                           ok-binding_0))))
                                                   (add-binding!.1
                                                    #f
                                                    #t
                                                    id76_0
                                                    temp161_0
                                                    phase77_0)))))))
                                       (if accum-update-nominals66_0
                                         (set-box!
                                          accum-update-nominals66_0
                                          (cons
                                           update!_0
                                           (unbox accum-update-nominals66_0)))
                                         (update!_0))))
                                   (if defined?_0 'defined 'required))
                                 (if (if defined?_0 allow-defined?62_0 #f)
                                   (let ((also-required_0
                                          (requires+provides-also-required
                                           r+p75_0)))
                                     (let ((prev-b_0
                                            (hash-ref
                                             also-required_0
                                             (module-binding-sym b_0)
                                             #f)))
                                       (begin
                                         (if (if prev-b_0
                                               (not
                                                (same-binding?
                                                 ok-binding_0
                                                 prev-b_0))
                                               #f)
                                           (raise-already-bound_0 #f #f)
                                           (void))
                                         (hash-set!
                                          also-required_0
                                          (module-binding-sym b_0)
                                          ok-binding_0)
                                         (set-requires+provides-all-bindings-simple?!
                                          r+p75_0
                                          #f)
                                         'defined)))
                                   (let ((nominal-phase+space-shift_0
                                          (module-binding-nominal-require-phase+space-shift
                                           b_0)))
                                     (let ((sym-to-reqds_0
                                            (hash-ref
                                             at-mod_0
                                             nominal-phase+space-shift_0
                                             hash2610)))
                                       (let ((reqds_0
                                              (hash-ref
                                               sym-to-reqds_0
                                               (syntax-e$1 id76_0)
                                               null)))
                                         (let ((only-can-can-shadow-require?_0
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (only-can-can-shadow-require?_0
                                                               lst_0)
                                                        (begin
                                                          (if (not
                                                               (null? lst_0))
                                                            (let ((r_0
                                                                   (if (pair?
                                                                        lst_0)
                                                                     (car
                                                                      lst_0)
                                                                     lst_0)))
                                                              (let ((rest_0
                                                                     (if (pair?
                                                                          lst_0)
                                                                       (cdr
                                                                        lst_0)
                                                                       null)))
                                                                (let ((r_1
                                                                       r_0))
                                                                  (let ((only-can-can-shadow-require?_1
                                                                         (let ((only-can-can-shadow-require?_1
                                                                                (if (if (bulk-required?
                                                                                         r_1)
                                                                                      (bulk-required-can-be-shadowed?
                                                                                       r_1)
                                                                                      (required-can-be-shadowed?
                                                                                       r_1))
                                                                                  (begin
                                                                                    (set-requires+provides-all-bindings-simple?!
                                                                                     r+p75_0
                                                                                     #f)
                                                                                    only-can-can-shadow-require?_0)
                                                                                  (if define-shadowing-require?_0
                                                                                    #f
                                                                                    (raise-already-bound_0
                                                                                     defined?_0
                                                                                     r_1)))))
                                                                           (values
                                                                            only-can-can-shadow-require?_1))))
                                                                    (for-loop_0
                                                                     only-can-can-shadow-require?_1
                                                                     rest_0)))))
                                                            only-can-can-shadow-require?_0))))))
                                                   (for-loop_0 #t reqds_0)))))
                                           (begin
                                             (if define-shadowing-require?_0
                                               (begin
                                                 (set-requires+provides-all-bindings-simple?!
                                                  r+p75_0
                                                  #f)
                                                 (if only-can-can-shadow-require?_0
                                                   (void)
                                                   (hash-set!
                                                    (requires+provides-also-required
                                                     r+p75_0)
                                                    (module-binding-sym b_0)
                                                    b_0)))
                                               (if (if remove-shadowed!?65_0
                                                     (not (null? reqds_0))
                                                     #f)
                                                 (let ((app_0
                                                        (syntax-e$1 id76_0)))
                                                   (hash-set!
                                                    sym-to-reqds_0
                                                    app_0
                                                    (remove-non-matching-requireds
                                                     reqds_0
                                                     id76_0
                                                     phase77_0
                                                     mpi_0
                                                     nominal-phase+space-shift_0
                                                     (syntax-e$1 id76_0))))
                                                 (void)))
                                             #f)))))))))))))))))))))))
(define adjust-shadow-requires!
  (lambda (r+p_0 id_0 phase_0 space_0)
    (if space_0
      (void)
      (begin
        (let ((ht_0 (requires+provides-spaces r+p_0)))
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (i_0)
                  (begin
                    (if i_0
                      (let ((space_1 (hash-iterate-key ht_0 i_0)))
                        (begin
                          (let ((space-id_0 (add-space-scope id_0 space_1)))
                            (let ((b_0
                                   (resolve+shift.1
                                    #f
                                    #t
                                    null
                                    unsafe-undefined
                                    #f
                                    space-id_0
                                    phase_0)))
                              (if (if (module-binding? b_0)
                                    (not
                                     (eq?
                                      (requires+provides-self r+p_0)
                                      (module-binding-module b_0)))
                                    #f)
                                (let ((mpi_0
                                       (let ((mpi_0
                                              (module-binding-nominal-module
                                               b_0)))
                                         (begin-unsafe
                                          (intern-module-path-index!
                                           (requires+provides-require-mpis
                                            r+p_0)
                                           mpi_0)))))
                                  (let ((at-mod_0
                                         (hash-ref
                                          (requires+provides-requires r+p_0)
                                          mpi_0
                                          #f)))
                                    (let ((nominal-phase+space-shift_0
                                           (module-binding-nominal-require-phase+space-shift
                                            b_0)))
                                      (let ((sym-to-reqds_0
                                             (hash-ref
                                              at-mod_0
                                              nominal-phase+space-shift_0
                                              hash2610)))
                                        (let ((reqds_0
                                               (hash-ref
                                                sym-to-reqds_0
                                                (syntax-e$1 id_0)
                                                null)))
                                          (if (begin
                                                (letrec*
                                                 ((for-loop_1
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (result_0 lst_0)
                                                      (begin
                                                        (if (not (null? lst_0))
                                                          (let ((r_0
                                                                 (if (pair?
                                                                      lst_0)
                                                                   (car lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (pair?
                                                                        lst_0)
                                                                     (cdr
                                                                      lst_0)
                                                                     null)))
                                                              (let ((r_1 r_0))
                                                                (let ((result_1
                                                                       (let ((result_1
                                                                              (if (bulk-required?
                                                                                   r_1)
                                                                                (bulk-required-can-be-shadowed?
                                                                                 r_1)
                                                                                (required-can-be-shadowed?
                                                                                 r_1))))
                                                                         (values
                                                                          result_1))))
                                                                  (if (if (not
                                                                           (let ((x_0
                                                                                  (list
                                                                                   r_1)))
                                                                             (not
                                                                              result_1)))
                                                                        #t
                                                                        #f)
                                                                    (for-loop_1
                                                                     result_1
                                                                     rest_0)
                                                                    result_1)))))
                                                          result_0))))))
                                                 (for-loop_1 #t reqds_0)))
                                            (begin
                                              (let ((app_0 (syntax-e$1 id_0)))
                                                (hash-set!
                                                 sym-to-reqds_0
                                                 app_0
                                                 (remove-non-matching-requireds
                                                  reqds_0
                                                  space-id_0
                                                  phase_0
                                                  mpi_0
                                                  nominal-phase+space-shift_0
                                                  (syntax-e$1 id_0))))
                                              (let ((temp169_0
                                                     (like-ambiguous-binding1.1)))
                                                (add-binding!.1
                                                 #f
                                                 #f
                                                 space-id_0
                                                 temp169_0
                                                 phase_0)))
                                            (void)))))))
                                (void))))
                          (for-loop_0 (hash-iterate-next ht_0 i_0))))
                      (values)))))))
             (for-loop_0 (hash-iterate-first ht_0)))))
        (void)))))
(define add-defined-syms!.1
  (|#%name|
   add-defined-syms!
   (lambda (as-transformer?80_0 r+p82_0 syms83_0 phase84_0)
     (begin
       (let ((phase-to-defined-syms_0
              (requires+provides-phase-to-defined-syms r+p82_0)))
         (let ((defined-syms_0
                (hash-ref phase-to-defined-syms_0 phase84_0 hash2610)))
           (let ((new-defined-syms_0
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (defined-syms_1 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((sym_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((defined-syms_2
                                         (let ((defined-syms_2
                                                (hash-set
                                                 defined-syms_1
                                                 sym_0
                                                 (if as-transformer?80_0
                                                   'transformer
                                                   'variable))))
                                           (values defined-syms_2))))
                                    (for-loop_0 defined-syms_2 rest_0))))
                              defined-syms_1))))))
                     (for-loop_0 defined-syms_0 syms83_0)))))
             (hash-set!
              phase-to-defined-syms_0
              phase84_0
              new-defined-syms_0))))))))
(define defined-sym-kind
  (lambda (r+p_0 sym_0 phase_0)
    (let ((phase-to-defined-syms_0
           (requires+provides-phase-to-defined-syms r+p_0)))
      (let ((defined-syms_0
             (hash-ref phase-to-defined-syms_0 phase_0 hash2610)))
        (hash-ref defined-syms_0 sym_0 #f)))))
(define extract-module-requires
  (lambda (r+p_0 mod-name_0 phase+space-shift_0)
    (let ((mpi_0
           (begin-unsafe
            (intern-module-path-index!
             (requires+provides-require-mpis r+p_0)
             mod-name_0))))
      (let ((at-mod_0 (hash-ref (requires+provides-requires r+p_0) mpi_0 #f)))
        (if at-mod_0
          (reverse$1
           (let ((ht_0 (hash-ref at-mod_0 phase+space-shift_0 hash2610)))
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (fold-var_0 i_0)
                     (begin
                       (if i_0
                         (call-with-values
                          (lambda () (hash-iterate-key+value ht_0 i_0))
                          (case-lambda
                           ((sym_0 reqds_0)
                            (let ((fold-var_1
                                   (begin
                                     (letrec*
                                      ((for-loop_1
                                        (|#%name|
                                         for-loop
                                         (lambda (fold-var_1 lst_0)
                                           (begin
                                             (if (not (null? lst_0))
                                               (let ((reqd_0
                                                      (if (pair? lst_0)
                                                        (car lst_0)
                                                        lst_0)))
                                                 (let ((rest_0
                                                        (if (pair? lst_0)
                                                          (cdr lst_0)
                                                          null)))
                                                   (let ((reqd_1 reqd_0))
                                                     (let ((fold-var_2
                                                            (let ((fold-var_2
                                                                   (cons
                                                                    (begin-unsafe
                                                                     (if (bulk-required?
                                                                          reqd_1)
                                                                       (bulk-required->required
                                                                        reqd_1
                                                                        mpi_0
                                                                        phase+space-shift_0
                                                                        sym_0)
                                                                       reqd_1))
                                                                    fold-var_1)))
                                                              (values
                                                               fold-var_2))))
                                                       (for-loop_1
                                                        fold-var_2
                                                        rest_0)))))
                                               fold-var_1))))))
                                      (for-loop_1 fold-var_0 reqds_0)))))
                              (for-loop_0
                               fold-var_1
                               (hash-iterate-next ht_0 i_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         fold-var_0))))))
                (for-loop_0 null (hash-iterate-first ht_0))))))
          #f)))))
(define extract-module-definitions
  (lambda (r+p_0)
    (let ((or-part_0
           (extract-module-requires r+p_0 (requires+provides-self r+p_0) 0)))
      (if or-part_0 or-part_0 null))))
(define extract-all-module-requires
  (lambda (r+p_0 mod-name_0 phase+space-shift_0)
    (let ((self_0 (requires+provides-self r+p_0)))
      (let ((requires_0 (requires+provides-requires r+p_0)))
        (call-with-escape-continuation
         (lambda (esc_0)
           (reverse$1
            (let ((lst_0
                   (if mod-name_0
                     (list
                      (begin-unsafe
                       (intern-module-path-index!
                        (requires+provides-require-mpis r+p_0)
                        mod-name_0)))
                     (hash-keys requires_0))))
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (fold-var_0 lst_1)
                      (begin
                        (if (pair? lst_1)
                          (let ((mod-name_1 (unsafe-car lst_1)))
                            (let ((rest_0 (unsafe-cdr lst_1)))
                              (let ((fold-var_1
                                     (if (eq? mod-name_1 self_0)
                                       fold-var_0
                                       (let ((id*_0
                                              (hash-ref
                                               requires_0
                                               mod-name_1
                                               hash2589)))
                                         (begin
                                           #t
                                           (letrec*
                                            ((for-loop_1
                                              (|#%name|
                                               for-loop
                                               (lambda (fold-var_1)
                                                 (begin
                                                   (let ((fold-var_2
                                                          (let ((lst_2
                                                                 (if (eq?
                                                                      phase+space-shift_0
                                                                      'all)
                                                                   (hash-keys
                                                                    id*_0)
                                                                   (list
                                                                    phase+space-shift_0))))
                                                            (begin
                                                              (letrec*
                                                               ((for-loop_2
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (fold-var_2
                                                                           lst_3)
                                                                    (begin
                                                                      (if (pair?
                                                                           lst_3)
                                                                        (let ((phase+space-shift_1
                                                                               (unsafe-car
                                                                                lst_3)))
                                                                          (let ((rest_1
                                                                                 (unsafe-cdr
                                                                                  lst_3)))
                                                                            (let ((fold-var_3
                                                                                   (let ((ht_0
                                                                                          (hash-ref
                                                                                           id*_0
                                                                                           phase+space-shift_1
                                                                                           (lambda ()
                                                                                             (|#%app|
                                                                                              esc_0
                                                                                              #f)))))
                                                                                     (begin
                                                                                       (letrec*
                                                                                        ((for-loop_3
                                                                                          (|#%name|
                                                                                           for-loop
                                                                                           (lambda (fold-var_3
                                                                                                    i_0)
                                                                                             (begin
                                                                                               (if i_0
                                                                                                 (call-with-values
                                                                                                  (lambda ()
                                                                                                    (hash-iterate-key+value
                                                                                                     ht_0
                                                                                                     i_0))
                                                                                                  (case-lambda
                                                                                                   ((sym_0
                                                                                                     reqds_0)
                                                                                                    (let ((fold-var_4
                                                                                                           (begin
                                                                                                             (letrec*
                                                                                                              ((for-loop_4
                                                                                                                (|#%name|
                                                                                                                 for-loop
                                                                                                                 (lambda (fold-var_4
                                                                                                                          lst_4)
                                                                                                                   (begin
                                                                                                                     (if (not
                                                                                                                          (null?
                                                                                                                           lst_4))
                                                                                                                       (let ((reqd_0
                                                                                                                              (if (pair?
                                                                                                                                   lst_4)
                                                                                                                                (car
                                                                                                                                 lst_4)
                                                                                                                                lst_4)))
                                                                                                                         (let ((rest_2
                                                                                                                                (if (pair?
                                                                                                                                     lst_4)
                                                                                                                                  (cdr
                                                                                                                                   lst_4)
                                                                                                                                  null)))
                                                                                                                           (let ((reqd_1
                                                                                                                                  reqd_0))
                                                                                                                             (let ((fold-var_5
                                                                                                                                    (let ((fold-var_5
                                                                                                                                           (cons
                                                                                                                                            (begin-unsafe
                                                                                                                                             (if (bulk-required?
                                                                                                                                                  reqd_1)
                                                                                                                                               (bulk-required->required
                                                                                                                                                reqd_1
                                                                                                                                                mod-name_1
                                                                                                                                                phase+space-shift_1
                                                                                                                                                sym_0)
                                                                                                                                               reqd_1))
                                                                                                                                            fold-var_4)))
                                                                                                                                      (values
                                                                                                                                       fold-var_5))))
                                                                                                                               (for-loop_4
                                                                                                                                fold-var_5
                                                                                                                                rest_2)))))
                                                                                                                       fold-var_4))))))
                                                                                                              (for-loop_4
                                                                                                               fold-var_3
                                                                                                               reqds_0)))))
                                                                                                      (for-loop_3
                                                                                                       fold-var_4
                                                                                                       (hash-iterate-next
                                                                                                        ht_0
                                                                                                        i_0))))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     2
                                                                                                     args))))
                                                                                                 fold-var_3))))))
                                                                                        (for-loop_3
                                                                                         fold-var_2
                                                                                         (hash-iterate-first
                                                                                          ht_0)))))))
                                                                              (for-loop_2
                                                                               fold-var_3
                                                                               rest_1))))
                                                                        fold-var_2))))))
                                                               (for-loop_2
                                                                fold-var_1
                                                                lst_2))))))
                                                     fold-var_2))))))
                                            (for-loop_1 fold-var_0)))))))
                                (for-loop_0 fold-var_1 rest_0))))
                          fold-var_0))))))
                 (for-loop_0 null lst_0)))))))))))
(define disable-definitions-shadow-imports!
  (lambda (r+p_0)
    (set-requires+provides-definitions-shadow-imports?! r+p_0 #f)))
(define add-provide!.1
  (|#%name|
   add-provide!
   (lambda (as-protected?86_0
            as-transformer?87_0
            r+p90_0
            sym91_0
            phase+space92_0
            binding93_0
            immed-binding94_0
            id95_0
            orig-s96_0)
     (begin
       (begin
         (if (if as-protected?86_0
               (not
                (let ((app_0 (module-binding-module immed-binding94_0)))
                  (eq? app_0 (requires+provides-self r+p90_0))))
               #f)
           (raise-syntax-error$1
            #f
            "cannot protect required identifier in re-provide"
            sym91_0)
           (void))
         (let ((ht_0 (requires+provides-provides r+p90_0)))
           (let ((xform_0
                  (lambda (at-phase_0)
                    (let ((b/p_0 (hash-ref at-phase_0 sym91_0 #f)))
                      (let ((b_0 (provided-as-binding b/p_0)))
                        (if (not b_0)
                          (let ((plain-binding_0
                                 (if (binding-free=id binding93_0)
                                   (module-binding-update.1
                                    unsafe-undefined
                                    unsafe-undefined
                                    unsafe-undefined
                                    #f
                                    unsafe-undefined
                                    unsafe-undefined
                                    unsafe-undefined
                                    unsafe-undefined
                                    unsafe-undefined
                                    unsafe-undefined
                                    unsafe-undefined
                                    binding93_0)
                                   binding93_0)))
                            (hash-set
                             at-phase_0
                             sym91_0
                             (if (if as-protected?86_0
                                   as-protected?86_0
                                   as-transformer?87_0)
                               (provided1.1
                                plain-binding_0
                                as-protected?86_0
                                as-transformer?87_0)
                               plain-binding_0)))
                          (if (same-binding? b_0 binding93_0)
                            at-phase_0
                            (raise-syntax-error$1
                             #f
                             "identifier already provided (as a different binding)"
                             orig-s96_0
                             id95_0))))))))
             (let ((default_0 hash2610))
               (begin-unsafe
                (do-hash-update
                 'hash-update!
                 #t
                 hash-set!
                 ht_0
                 phase+space92_0
                 xform_0
                 default_0))))))))))
(define extract-requires-and-provides
  (lambda (r+p_0 old-self_0 new-self_0)
    (let ((extract-requires_0
           (|#%name|
            extract-requires
            (lambda (recurs?173_0)
              (begin
                (let ((phase-to-mpis-in-order_0
                       (requires+provides-require-mpis-in-order r+p_0)))
                  (let ((phases-in-order_0
                         (let ((temp176_0
                                (hash-keys phase-to-mpis-in-order_0)))
                           (sort.1 #f #f temp176_0 phase<?))))
                    (let ((transitive-requires_0
                           (requires+provides-transitive-requires r+p_0)))
                      (reverse$1
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (fold-var_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((phase_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((fold-var_1
                                              (let ((fold-var_1
                                                     (cons
                                                      (let ((elems_0
                                                             (reverse$1
                                                              (let ((lst_1
                                                                     (reverse$1
                                                                      (hash-ref
                                                                       phase-to-mpis-in-order_0
                                                                       phase_0))))
                                                                (begin
                                                                  (letrec*
                                                                   ((for-loop_1
                                                                     (|#%name|
                                                                      for-loop
                                                                      (lambda (fold-var_1
                                                                               lst_2)
                                                                        (begin
                                                                          (if (pair?
                                                                               lst_2)
                                                                            (let ((mpi_0
                                                                                   (unsafe-car
                                                                                    lst_2)))
                                                                              (let ((rest_1
                                                                                     (unsafe-cdr
                                                                                      lst_2)))
                                                                                (let ((fold-var_2
                                                                                       (if (eq?
                                                                                            mpi_0
                                                                                            old-self_0)
                                                                                         fold-var_1
                                                                                         (let ((fold-var_2
                                                                                                (cons
                                                                                                 (if recurs?173_0
                                                                                                   (not
                                                                                                    (hash-ref
                                                                                                     (hash-ref
                                                                                                      transitive-requires_0
                                                                                                      (module-path-index-resolved
                                                                                                       mpi_0)
                                                                                                      hash2589)
                                                                                                     phase_0
                                                                                                     #f))
                                                                                                   (module-path-index-shift
                                                                                                    mpi_0
                                                                                                    old-self_0
                                                                                                    new-self_0))
                                                                                                 fold-var_1)))
                                                                                           (values
                                                                                            fold-var_2)))))
                                                                                  (for-loop_1
                                                                                   fold-var_2
                                                                                   rest_1))))
                                                                            fold-var_1))))))
                                                                   (for-loop_1
                                                                    null
                                                                    lst_1)))))))
                                                        (if recurs?173_0
                                                          elems_0
                                                          (cons
                                                           phase_0
                                                           elems_0)))
                                                      fold-var_0)))
                                                (values fold-var_1))))
                                         (for-loop_0 fold-var_1 rest_0))))
                                   fold-var_0))))))
                          (for-loop_0 null phases-in-order_0))))))))))))
      (let ((extract-provides_0
             (|#%name|
              extract-provides
              (lambda ()
                (begin
                  (shift-provides-module-path-index
                   (requires+provides-provides r+p_0)
                   old-self_0
                   new-self_0))))))
        (let ((app_0 (extract-requires_0 #f)))
          (let ((app_1 (extract-requires_0 #t)))
            (values app_0 app_1 (extract-provides_0))))))))
(define shift-provides-module-path-index
  (lambda (provides_0 from-mpi_0 to-mpi_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (table_0 i_0)
            (begin
              (if i_0
                (call-with-values
                 (lambda () (hash-iterate-key+value provides_0 i_0))
                 (case-lambda
                  ((phase+space_0 at-phase_0)
                   (let ((table_1
                          (let ((table_1
                                 (call-with-values
                                  (lambda ()
                                    (values
                                     phase+space_0
                                     (begin
                                       (letrec*
                                        ((for-loop_1
                                          (|#%name|
                                           for-loop
                                           (lambda (table_1 i_1)
                                             (begin
                                               (if i_1
                                                 (call-with-values
                                                  (lambda ()
                                                    (hash-iterate-key+value
                                                     at-phase_0
                                                     i_1))
                                                  (case-lambda
                                                   ((sym_0 binding_0)
                                                    (let ((table_2
                                                           (let ((table_2
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (values
                                                                      sym_0
                                                                      (if (eq?
                                                                           from-mpi_0
                                                                           to-mpi_0)
                                                                        binding_0
                                                                        (letrec*
                                                                         ((loop_0
                                                                           (|#%name|
                                                                            loop
                                                                            (lambda (binding_1)
                                                                              (begin
                                                                                (if (provided?
                                                                                     binding_1)
                                                                                  (let ((app_0
                                                                                         (loop_0
                                                                                          (provided-binding
                                                                                           binding_1))))
                                                                                    (let ((app_1
                                                                                           (provided-protected?
                                                                                            binding_1)))
                                                                                      (provided1.1
                                                                                       app_0
                                                                                       app_1
                                                                                       (provided-syntax?
                                                                                        binding_1))))
                                                                                  (binding-module-path-index-shift
                                                                                   binding_1
                                                                                   from-mpi_0
                                                                                   to-mpi_0)))))))
                                                                         (loop_0
                                                                          binding_0)))))
                                                                   (case-lambda
                                                                    ((key_0
                                                                      val_0)
                                                                     (hash-set
                                                                      table_1
                                                                      key_0
                                                                      val_0))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args))))))
                                                             (values
                                                              table_2))))
                                                      (for-loop_1
                                                       table_2
                                                       (hash-iterate-next
                                                        at-phase_0
                                                        i_1))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))
                                                 table_1))))))
                                        (for-loop_1
                                         hash2610
                                         (hash-iterate-first at-phase_0))))))
                                  (case-lambda
                                   ((key_0 val_0)
                                    (hash-set table_0 key_0 val_0))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))))
                            (values table_1))))
                     (for-loop_0 table_1 (hash-iterate-next provides_0 i_0))))
                  (args (raise-binding-result-arity-error 2 args))))
                table_0))))))
       (for-loop_0 hash2589 (hash-iterate-first provides_0))))))
(define finish_2697
  (make-struct-type-install-properties
   '(adjust-only)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'adjust-only))
(define struct:adjust-only
  (make-record-type-descriptor
   'adjust-only
   #f
   (|#%nongenerative-uid| adjust-only)
   #f
   #f
   '(1 . 0)))
(define effect_2893 (finish_2697 struct:adjust-only))
(define adjust-only1.1
  (|#%name|
   adjust-only
   (record-constructor
    (make-record-constructor-descriptor struct:adjust-only #f #f))))
(define adjust-only?_2229
  (|#%name| adjust-only? (record-predicate struct:adjust-only)))
(define adjust-only?
  (|#%name|
   adjust-only?
   (lambda (v)
     (if (adjust-only?_2229 v)
       #t
       ($value
        (if (impersonator? v) (adjust-only?_2229 (impersonator-val v)) #f))))))
(define adjust-only-syms_2775
  (|#%name| adjust-only-syms (record-accessor struct:adjust-only 0)))
(define adjust-only-syms
  (|#%name|
   adjust-only-syms
   (lambda (s)
     (if (adjust-only?_2229 s)
       (adjust-only-syms_2775 s)
       ($value
        (impersonate-ref
         adjust-only-syms_2775
         struct:adjust-only
         0
         s
         'syms))))))
(define finish_2542
  (make-struct-type-install-properties
   '(adjust-prefix)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'adjust-prefix))
(define struct:adjust-prefix
  (make-record-type-descriptor
   'adjust-prefix
   #f
   (|#%nongenerative-uid| adjust-prefix)
   #f
   #f
   '(1 . 0)))
(define effect_2600 (finish_2542 struct:adjust-prefix))
(define adjust-prefix2.1
  (|#%name|
   adjust-prefix
   (record-constructor
    (make-record-constructor-descriptor struct:adjust-prefix #f #f))))
(define adjust-prefix?_2456
  (|#%name| adjust-prefix? (record-predicate struct:adjust-prefix)))
(define adjust-prefix?
  (|#%name|
   adjust-prefix?
   (lambda (v)
     (if (adjust-prefix?_2456 v)
       #t
       ($value
        (if (impersonator? v)
          (adjust-prefix?_2456 (impersonator-val v))
          #f))))))
(define adjust-prefix-sym_2592
  (|#%name| adjust-prefix-sym (record-accessor struct:adjust-prefix 0)))
(define adjust-prefix-sym
  (|#%name|
   adjust-prefix-sym
   (lambda (s)
     (if (adjust-prefix?_2456 s)
       (adjust-prefix-sym_2592 s)
       ($value
        (impersonate-ref
         adjust-prefix-sym_2592
         struct:adjust-prefix
         0
         s
         'sym))))))
(define finish_2348
  (make-struct-type-install-properties
   '(adjust-all-except)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'adjust-all-except))
(define struct:adjust-all-except
  (make-record-type-descriptor
   'adjust-all-except
   #f
   (|#%nongenerative-uid| adjust-all-except)
   #f
   #f
   '(2 . 0)))
(define effect_2205 (finish_2348 struct:adjust-all-except))
(define adjust-all-except3.1
  (|#%name|
   adjust-all-except
   (record-constructor
    (make-record-constructor-descriptor struct:adjust-all-except #f #f))))
(define adjust-all-except?_2297
  (|#%name| adjust-all-except? (record-predicate struct:adjust-all-except)))
(define adjust-all-except?
  (|#%name|
   adjust-all-except?
   (lambda (v)
     (if (adjust-all-except?_2297 v)
       #t
       ($value
        (if (impersonator? v)
          (adjust-all-except?_2297 (impersonator-val v))
          #f))))))
(define adjust-all-except-prefix-sym_2606
  (|#%name|
   adjust-all-except-prefix-sym
   (record-accessor struct:adjust-all-except 0)))
(define adjust-all-except-prefix-sym
  (|#%name|
   adjust-all-except-prefix-sym
   (lambda (s)
     (if (adjust-all-except?_2297 s)
       (adjust-all-except-prefix-sym_2606 s)
       ($value
        (impersonate-ref
         adjust-all-except-prefix-sym_2606
         struct:adjust-all-except
         0
         s
         'prefix-sym))))))
(define adjust-all-except-syms_3082
  (|#%name|
   adjust-all-except-syms
   (record-accessor struct:adjust-all-except 1)))
(define adjust-all-except-syms
  (|#%name|
   adjust-all-except-syms
   (lambda (s)
     (if (adjust-all-except?_2297 s)
       (adjust-all-except-syms_3082 s)
       ($value
        (impersonate-ref
         adjust-all-except-syms_3082
         struct:adjust-all-except
         1
         s
         'syms))))))
(define finish_2750
  (make-struct-type-install-properties
   '(adjust-rename)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'adjust-rename))
(define struct:adjust-rename
  (make-record-type-descriptor
   'adjust-rename
   #f
   (|#%nongenerative-uid| adjust-rename)
   #f
   #f
   '(2 . 0)))
(define effect_3082 (finish_2750 struct:adjust-rename))
(define adjust-rename4.1
  (|#%name|
   adjust-rename
   (record-constructor
    (make-record-constructor-descriptor struct:adjust-rename #f #f))))
(define adjust-rename?_2182
  (|#%name| adjust-rename? (record-predicate struct:adjust-rename)))
(define adjust-rename?
  (|#%name|
   adjust-rename?
   (lambda (v)
     (if (adjust-rename?_2182 v)
       #t
       ($value
        (if (impersonator? v)
          (adjust-rename?_2182 (impersonator-val v))
          #f))))))
(define adjust-rename-to-id_2236
  (|#%name| adjust-rename-to-id (record-accessor struct:adjust-rename 0)))
(define adjust-rename-to-id
  (|#%name|
   adjust-rename-to-id
   (lambda (s)
     (if (adjust-rename?_2182 s)
       (adjust-rename-to-id_2236 s)
       ($value
        (impersonate-ref
         adjust-rename-to-id_2236
         struct:adjust-rename
         0
         s
         'to-id))))))
(define adjust-rename-from-sym_2159
  (|#%name| adjust-rename-from-sym (record-accessor struct:adjust-rename 1)))
(define adjust-rename-from-sym
  (|#%name|
   adjust-rename-from-sym
   (lambda (s)
     (if (adjust-rename?_2182 s)
       (adjust-rename-from-sym_2159 s)
       ($value
        (impersonate-ref
         adjust-rename-from-sym_2159
         struct:adjust-rename
         1
         s
         'from-sym))))))
(define layers$1 '(raw phaseless spaceless justspaceless path))
(define parse-and-perform-requires!.1
  (|#%name|
   parse-and-perform-requires!
   (lambda (add-defined-portal14_0
            all-scopes-stx15_0
            copy-variable-as-constant?11_0
            copy-variable-phase-level10_0
            declared-submodule-names9_0
            initial-require?13_0
            run-phase6_0
            run?7_0
            self5_0
            skip-variable-phase-level12_0
            visit?8_0
            who16_0
            reqs29_0
            orig-s30_0
            m-ns31_0
            phase-shift32_0
            requires+provides33_0)
     (begin
       (let ((run-phase_0
              (if (eq? run-phase6_0 unsafe-undefined)
                (namespace-phase m-ns31_0)
                run-phase6_0)))
         (let ((initial-require?_0 initial-require?13_0))
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (reqs_0
                        top-req_0
                        phase-shift_0
                        space-level_0
                        just-meta_0
                        just-space_0
                        adjust_0
                        for-meta-ok?_0
                        just-meta-ok?_0
                        layer_0)
                 (begin
                   (begin
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (lst_0)
                             (begin
                               (if (pair? lst_0)
                                 (let ((req_0 (unsafe-car lst_0)))
                                   (let ((rest_0 (unsafe-cdr lst_0)))
                                     (begin
                                       (let ((check-nested_0
                                              (|#%name|
                                               check-nested
                                               (lambda (want-layer132_0
                                                        ok?131_0)
                                                 (begin
                                                   (if (if ok?131_0
                                                         (member
                                                          want-layer132_0
                                                          (member
                                                           layer_0
                                                           layers$1))
                                                         #f)
                                                     (void)
                                                     (raise-syntax-error$1
                                                      #f
                                                      "invalid nesting"
                                                      orig-s30_0
                                                      req_0)))))))
                                         (let ((check-nested_1
                                                (|#%name|
                                                 check-nested
                                                 (case-lambda
                                                  ((want-layer_0)
                                                   (begin
                                                     (check-nested_0
                                                      want-layer_0
                                                      #t)))
                                                  ((want-layer_0 ok?131_0)
                                                   (check-nested_0
                                                    want-layer_0
                                                    ok?131_0))))))
                                           (let ((fm_0
                                                  (if (pair?
                                                       (syntax-e$1 req_0))
                                                    (if (identifier?
                                                         (car
                                                          (syntax-e$1 req_0)))
                                                      (syntax-e$1
                                                       (car
                                                        (syntax-e$1 req_0)))
                                                      #f)
                                                    #f)))
                                             (let ((index_0
                                                    (if (symbol? fm_0)
                                                      (hash-ref
                                                       hash2804
                                                       fm_0
                                                       (lambda () 0))
                                                      0)))
                                               (if (unsafe-fx< index_0 6)
                                                 (if (unsafe-fx< index_0 2)
                                                   (if (unsafe-fx< index_0 1)
                                                     (let ((maybe-mp_0
                                                            (syntax->datum$1
                                                             req_0)))
                                                       (begin
                                                         (if (let ((or-part_0
                                                                    (1/module-path?
                                                                     maybe-mp_0)))
                                                               (if or-part_0
                                                                 or-part_0
                                                                 (1/resolved-module-path?
                                                                  maybe-mp_0)))
                                                           (void)
                                                           (raise-syntax-error$1
                                                            #f
                                                            "bad require spec"
                                                            orig-s30_0
                                                            req_0))
                                                         (begin
                                                           (if (if (requires+provides-all-bindings-simple?
                                                                    requires+provides33_0)
                                                                 (if adjust_0
                                                                   adjust_0
                                                                   (let ((or-part_0
                                                                          (not
                                                                           (eq?
                                                                            just-meta_0
                                                                            'all))))
                                                                     (if or-part_0
                                                                       or-part_0
                                                                       (let ((or-part_1
                                                                              (not
                                                                               (eq?
                                                                                space-level_0
                                                                                kw2450))))
                                                                         (if or-part_1
                                                                           or-part_1
                                                                           (if all-scopes-stx15_0
                                                                             (not
                                                                              (same-scopes?
                                                                               req_0
                                                                               all-scopes-stx15_0))
                                                                             #f))))))
                                                                 #f)
                                                             (set-requires+provides-all-bindings-simple?!
                                                              requires+provides33_0
                                                              #f)
                                                             (void))
                                                           (let ((mp_0
                                                                  (if (1/resolved-module-path?
                                                                       maybe-mp_0)
                                                                    (resolved-module-path->module-path
                                                                     maybe-mp_0)
                                                                    maybe-mp_0)))
                                                             (let ((mpi_0
                                                                    (module-path->mpi.1
                                                                     declared-submodule-names9_0
                                                                     mp_0
                                                                     self5_0)))
                                                               (begin
                                                                 (let ((temp136_0
                                                                        (if req_0
                                                                          req_0
                                                                          top-req_0)))
                                                                   (let ((initial-require?150_0
                                                                          initial-require?_0))
                                                                     (let ((temp136_1
                                                                            temp136_0))
                                                                       (perform-require!.1
                                                                        adjust_0
                                                                        #t
                                                                        #f
                                                                        copy-variable-as-constant?11_0
                                                                        copy-variable-phase-level10_0
                                                                        initial-require?150_0
                                                                        just-meta_0
                                                                        just-space_0
                                                                        phase-shift_0
                                                                        requires+provides33_0
                                                                        run-phase_0
                                                                        run?7_0
                                                                        skip-variable-phase-level12_0
                                                                        space-level_0
                                                                        visit?8_0
                                                                        who16_0
                                                                        mpi_0
                                                                        req_0
                                                                        self5_0
                                                                        temp136_1
                                                                        m-ns31_0))))
                                                                 (set! initial-require?_0
                                                                   #f)))))))
                                                     (begin
                                                       (check-nested_1
                                                        'raw
                                                        for-meta-ok?_0)
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((s_0
                                                                    (if (syntax?$1
                                                                         req_0)
                                                                      (syntax-e$1
                                                                       req_0)
                                                                      req_0)))
                                                               (if (pair? s_0)
                                                                 (let ((for-meta158_0
                                                                        (let ((s_1
                                                                               (car
                                                                                s_0)))
                                                                          s_1)))
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (let ((s_1
                                                                             (cdr
                                                                              s_0)))
                                                                        (let ((s_2
                                                                               (if (syntax?$1
                                                                                    s_1)
                                                                                 (syntax-e$1
                                                                                  s_1)
                                                                                 s_1)))
                                                                          (if (pair?
                                                                               s_2)
                                                                            (let ((phase-level161_0
                                                                                   (let ((s_3
                                                                                          (car
                                                                                           s_2)))
                                                                                     s_3)))
                                                                              (let ((spec162_0
                                                                                     (let ((s_3
                                                                                            (cdr
                                                                                             s_2)))
                                                                                       (let ((s_4
                                                                                              (if (syntax?$1
                                                                                                   s_3)
                                                                                                (syntax-e$1
                                                                                                 s_3)
                                                                                                s_3)))
                                                                                         (let ((flat-s_0
                                                                                                (to-syntax-list.1
                                                                                                 s_4)))
                                                                                           (if (not
                                                                                                flat-s_0)
                                                                                             (raise-syntax-error$1
                                                                                              #f
                                                                                              "bad syntax"
                                                                                              req_0)
                                                                                             flat-s_0))))))
                                                                                (let ((phase-level161_1
                                                                                       phase-level161_0))
                                                                                  (values
                                                                                   phase-level161_1
                                                                                   spec162_0))))
                                                                            (raise-syntax-error$1
                                                                             #f
                                                                             "bad syntax"
                                                                             req_0)))))
                                                                    (case-lambda
                                                                     ((phase-level159_0
                                                                       spec160_0)
                                                                      (let ((for-meta158_1
                                                                             for-meta158_0))
                                                                        (values
                                                                         for-meta158_1
                                                                         phase-level159_0
                                                                         spec160_0)))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args)))))
                                                                 (raise-syntax-error$1
                                                                  #f
                                                                  "bad syntax"
                                                                  req_0))))
                                                           (case-lambda
                                                            ((for-meta155_0
                                                              phase-level156_0
                                                              spec157_0)
                                                             (values
                                                              #t
                                                              for-meta155_0
                                                              phase-level156_0
                                                              spec157_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              3
                                                              args)))))
                                                        (case-lambda
                                                         ((ok?_0
                                                           for-meta155_0
                                                           phase-level156_0
                                                           spec157_0)
                                                          (let ((p_0
                                                                 (syntax-e$1
                                                                  phase-level156_0)))
                                                            (begin
                                                              (if (phase? p_0)
                                                                (void)
                                                                (raise-syntax-error$1
                                                                 #f
                                                                 "bad phase"
                                                                 orig-s30_0
                                                                 req_0))
                                                              (loop_0
                                                               spec157_0
                                                               (if top-req_0
                                                                 top-req_0
                                                                 req_0)
                                                               (phase+
                                                                phase-shift_0
                                                                p_0)
                                                               space-level_0
                                                               just-meta_0
                                                               just-space_0
                                                               adjust_0
                                                               #f
                                                               just-meta-ok?_0
                                                               'raw))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           4
                                                           args))))))
                                                   (if (unsafe-fx< index_0 3)
                                                     (begin
                                                       (check-nested_1
                                                        'raw
                                                        for-meta-ok?_0)
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((s_0
                                                                    (if (syntax?$1
                                                                         req_0)
                                                                      (syntax-e$1
                                                                       req_0)
                                                                      req_0)))
                                                               (if (pair? s_0)
                                                                 (let ((for-syntax165_0
                                                                        (let ((s_1
                                                                               (car
                                                                                s_0)))
                                                                          s_1)))
                                                                   (let ((spec166_0
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (let ((flat-s_0
                                                                                     (to-syntax-list.1
                                                                                      s_2)))
                                                                                (if (not
                                                                                     flat-s_0)
                                                                                  (raise-syntax-error$1
                                                                                   #f
                                                                                   "bad syntax"
                                                                                   req_0)
                                                                                  flat-s_0))))))
                                                                     (let ((for-syntax165_1
                                                                            for-syntax165_0))
                                                                       (values
                                                                        for-syntax165_1
                                                                        spec166_0))))
                                                                 (raise-syntax-error$1
                                                                  #f
                                                                  "bad syntax"
                                                                  req_0))))
                                                           (case-lambda
                                                            ((for-syntax163_0
                                                              spec164_0)
                                                             (values
                                                              #t
                                                              for-syntax163_0
                                                              spec164_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))
                                                        (case-lambda
                                                         ((ok?_0
                                                           for-syntax163_0
                                                           spec164_0)
                                                          (loop_0
                                                           spec164_0
                                                           (if top-req_0
                                                             top-req_0
                                                             req_0)
                                                           (phase+
                                                            phase-shift_0
                                                            1)
                                                           space-level_0
                                                           just-meta_0
                                                           just-space_0
                                                           adjust_0
                                                           #f
                                                           just-meta-ok?_0
                                                           'raw))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           3
                                                           args)))))
                                                     (if (unsafe-fx< index_0 4)
                                                       (begin
                                                         (check-nested_1
                                                          'raw
                                                          for-meta-ok?_0)
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           req_0)
                                                                        (syntax-e$1
                                                                         req_0)
                                                                        req_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((for-template169_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (let ((spec170_0
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (let ((flat-s_0
                                                                                       (to-syntax-list.1
                                                                                        s_2)))
                                                                                  (if (not
                                                                                       flat-s_0)
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     req_0)
                                                                                    flat-s_0))))))
                                                                       (let ((for-template169_1
                                                                              for-template169_0))
                                                                         (values
                                                                          for-template169_1
                                                                          spec170_0))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    req_0))))
                                                             (case-lambda
                                                              ((for-template167_0
                                                                spec168_0)
                                                               (values
                                                                #t
                                                                for-template167_0
                                                                spec168_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             for-template167_0
                                                             spec168_0)
                                                            (loop_0
                                                             spec168_0
                                                             (if top-req_0
                                                               top-req_0
                                                               req_0)
                                                             (phase+
                                                              phase-shift_0
                                                              -1)
                                                             space-level_0
                                                             just-meta_0
                                                             just-space_0
                                                             adjust_0
                                                             #f
                                                             just-meta-ok?_0
                                                             'raw))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             3
                                                             args)))))
                                                       (if (unsafe-fx<
                                                            index_0
                                                            5)
                                                         (begin
                                                           (check-nested_1
                                                            'raw
                                                            for-meta-ok?_0)
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             req_0)
                                                                          (syntax-e$1
                                                                           req_0)
                                                                          req_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((for-label173_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (let ((spec174_0
                                                                              (let ((s_1
                                                                                     (cdr
                                                                                      s_0)))
                                                                                (let ((s_2
                                                                                       (if (syntax?$1
                                                                                            s_1)
                                                                                         (syntax-e$1
                                                                                          s_1)
                                                                                         s_1)))
                                                                                  (let ((flat-s_0
                                                                                         (to-syntax-list.1
                                                                                          s_2)))
                                                                                    (if (not
                                                                                         flat-s_0)
                                                                                      (raise-syntax-error$1
                                                                                       #f
                                                                                       "bad syntax"
                                                                                       req_0)
                                                                                      flat-s_0))))))
                                                                         (let ((for-label173_1
                                                                                for-label173_0))
                                                                           (values
                                                                            for-label173_1
                                                                            spec174_0))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      req_0))))
                                                               (case-lambda
                                                                ((for-label171_0
                                                                  spec172_0)
                                                                 (values
                                                                  #t
                                                                  for-label171_0
                                                                  spec172_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               for-label171_0
                                                               spec172_0)
                                                              (loop_0
                                                               spec172_0
                                                               (if top-req_0
                                                                 top-req_0
                                                                 req_0)
                                                               (phase+
                                                                phase-shift_0
                                                                #f)
                                                               space-level_0
                                                               just-meta_0
                                                               just-space_0
                                                               adjust_0
                                                               #f
                                                               just-meta-ok?_0
                                                               'raw))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args)))))
                                                         (begin
                                                           (check-nested_1
                                                            'raw
                                                            just-meta-ok?_0)
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             req_0)
                                                                          (syntax-e$1
                                                                           req_0)
                                                                          req_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((just-meta178_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (if (pair?
                                                                                   s_2)
                                                                                (let ((phase-level181_0
                                                                                       (let ((s_3
                                                                                              (car
                                                                                               s_2)))
                                                                                         s_3)))
                                                                                  (let ((spec182_0
                                                                                         (let ((s_3
                                                                                                (cdr
                                                                                                 s_2)))
                                                                                           (let ((s_4
                                                                                                  (if (syntax?$1
                                                                                                       s_3)
                                                                                                    (syntax-e$1
                                                                                                     s_3)
                                                                                                    s_3)))
                                                                                             (let ((flat-s_0
                                                                                                    (to-syntax-list.1
                                                                                                     s_4)))
                                                                                               (if (not
                                                                                                    flat-s_0)
                                                                                                 (raise-syntax-error$1
                                                                                                  #f
                                                                                                  "bad syntax"
                                                                                                  req_0)
                                                                                                 flat-s_0))))))
                                                                                    (let ((phase-level181_1
                                                                                           phase-level181_0))
                                                                                      (values
                                                                                       phase-level181_1
                                                                                       spec182_0))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 req_0)))))
                                                                        (case-lambda
                                                                         ((phase-level179_0
                                                                           spec180_0)
                                                                          (let ((just-meta178_1
                                                                                 just-meta178_0))
                                                                            (values
                                                                             just-meta178_1
                                                                             phase-level179_0
                                                                             spec180_0)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args)))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      req_0))))
                                                               (case-lambda
                                                                ((just-meta175_0
                                                                  phase-level176_0
                                                                  spec177_0)
                                                                 (values
                                                                  #t
                                                                  just-meta175_0
                                                                  phase-level176_0
                                                                  spec177_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  3
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               just-meta175_0
                                                               phase-level176_0
                                                               spec177_0)
                                                              (let ((p_0
                                                                     (syntax-e$1
                                                                      phase-level176_0)))
                                                                (begin
                                                                  (if (phase?
                                                                       p_0)
                                                                    (void)
                                                                    (raise-syntax-error$1
                                                                     #f
                                                                     "bad phase"
                                                                     orig-s30_0
                                                                     req_0))
                                                                  (loop_0
                                                                   spec177_0
                                                                   (if top-req_0
                                                                     top-req_0
                                                                     req_0)
                                                                   phase-shift_0
                                                                   space-level_0
                                                                   p_0
                                                                   just-space_0
                                                                   adjust_0
                                                                   for-meta-ok?_0
                                                                   #f
                                                                   'raw))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               4
                                                               args)))))))))
                                                 (if (unsafe-fx< index_0 9)
                                                   (if (unsafe-fx< index_0 7)
                                                     (begin
                                                       (check-nested_1
                                                        'raw
                                                        (eq? just-meta_0 'all))
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((s_0
                                                                    (if (syntax?$1
                                                                         req_0)
                                                                      (syntax-e$1
                                                                       req_0)
                                                                      req_0)))
                                                               (if (pair? s_0)
                                                                 (let ((portal186_0
                                                                        (let ((s_1
                                                                               (car
                                                                                s_0)))
                                                                          s_1)))
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (let ((s_1
                                                                             (cdr
                                                                              s_0)))
                                                                        (let ((s_2
                                                                               (if (syntax?$1
                                                                                    s_1)
                                                                                 (syntax-e$1
                                                                                  s_1)
                                                                                 s_1)))
                                                                          (if (pair?
                                                                               s_2)
                                                                            (let ((id:name189_0
                                                                                   (let ((s_3
                                                                                          (car
                                                                                           s_2)))
                                                                                     (if (let ((or-part_0
                                                                                                (if (syntax?$1
                                                                                                     s_3)
                                                                                                  (symbol?
                                                                                                   (syntax-e$1
                                                                                                    s_3))
                                                                                                  #f)))
                                                                                           (if or-part_0
                                                                                             or-part_0
                                                                                             (symbol?
                                                                                              s_3)))
                                                                                       s_3
                                                                                       (raise-syntax-error$1
                                                                                        #f
                                                                                        "not an identifier"
                                                                                        req_0
                                                                                        s_3)))))
                                                                              (let ((stx190_0
                                                                                     (let ((s_3
                                                                                            (cdr
                                                                                             s_2)))
                                                                                       (let ((s_4
                                                                                              (if (syntax?$1
                                                                                                   s_3)
                                                                                                (syntax-e$1
                                                                                                 s_3)
                                                                                                s_3)))
                                                                                         (if (pair?
                                                                                              s_4)
                                                                                           (let ((stx191_0
                                                                                                  (let ((s_5
                                                                                                         (car
                                                                                                          s_4)))
                                                                                                    s_5)))
                                                                                             (call-with-values
                                                                                              (lambda ()
                                                                                                (let ((s_5
                                                                                                       (cdr
                                                                                                        s_4)))
                                                                                                  (let ((s_6
                                                                                                         (if (syntax?$1
                                                                                                              s_5)
                                                                                                           (syntax-e$1
                                                                                                            s_5)
                                                                                                           s_5)))
                                                                                                    (if (null?
                                                                                                         s_6)
                                                                                                      (values)
                                                                                                      (raise-syntax-error$1
                                                                                                       #f
                                                                                                       "bad syntax"
                                                                                                       req_0)))))
                                                                                              (case-lambda
                                                                                               (()
                                                                                                (let ((stx191_1
                                                                                                       stx191_0))
                                                                                                  (values
                                                                                                   stx191_1)))
                                                                                               (args
                                                                                                (raise-binding-result-arity-error
                                                                                                 0
                                                                                                 args)))))
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "bad syntax"
                                                                                            req_0))))))
                                                                                (let ((id:name189_1
                                                                                       id:name189_0))
                                                                                  (values
                                                                                   id:name189_1
                                                                                   stx190_0))))
                                                                            (raise-syntax-error$1
                                                                             #f
                                                                             "bad syntax"
                                                                             req_0)))))
                                                                    (case-lambda
                                                                     ((id:name187_0
                                                                       stx188_0)
                                                                      (let ((portal186_1
                                                                             portal186_0))
                                                                        (values
                                                                         portal186_1
                                                                         id:name187_0
                                                                         stx188_0)))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args)))))
                                                                 (raise-syntax-error$1
                                                                  #f
                                                                  "bad syntax"
                                                                  req_0))))
                                                           (case-lambda
                                                            ((portal183_0
                                                              id:name184_0
                                                              stx185_0)
                                                             (values
                                                              #t
                                                              portal183_0
                                                              id:name184_0
                                                              stx185_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              3
                                                              args)))))
                                                        (case-lambda
                                                         ((ok?_0
                                                           portal183_0
                                                           id:name184_0
                                                           stx185_0)
                                                          (perform-portal-syntax-bind!.1
                                                           add-defined-portal14_0
                                                           orig-s30_0
                                                           phase-shift_0
                                                           requires+provides33_0
                                                           self5_0
                                                           id:name184_0
                                                           stx185_0))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           4
                                                           args)))))
                                                     (if (unsafe-fx< index_0 8)
                                                       (begin
                                                         (check-nested_1
                                                          'phaseless)
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           req_0)
                                                                        (syntax-e$1
                                                                         req_0)
                                                                        req_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((for-space202_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((s_1
                                                                               (cdr
                                                                                s_0)))
                                                                          (let ((s_2
                                                                                 (if (syntax?$1
                                                                                      s_1)
                                                                                   (syntax-e$1
                                                                                    s_1)
                                                                                   s_1)))
                                                                            (if (pair?
                                                                                 s_2)
                                                                              (let ((space205_0
                                                                                     (let ((s_3
                                                                                            (car
                                                                                             s_2)))
                                                                                       s_3)))
                                                                                (let ((spec206_0
                                                                                       (let ((s_3
                                                                                              (cdr
                                                                                               s_2)))
                                                                                         (let ((s_4
                                                                                                (if (syntax?$1
                                                                                                     s_3)
                                                                                                  (syntax-e$1
                                                                                                   s_3)
                                                                                                  s_3)))
                                                                                           (let ((flat-s_0
                                                                                                  (to-syntax-list.1
                                                                                                   s_4)))
                                                                                             (if (not
                                                                                                  flat-s_0)
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                req_0)
                                                                                               flat-s_0))))))
                                                                                  (let ((space205_1
                                                                                         space205_0))
                                                                                    (values
                                                                                     space205_1
                                                                                     spec206_0))))
                                                                              (raise-syntax-error$1
                                                                               #f
                                                                               "bad syntax"
                                                                               req_0)))))
                                                                      (case-lambda
                                                                       ((space203_0
                                                                         spec204_0)
                                                                        (let ((for-space202_1
                                                                               for-space202_0))
                                                                          (values
                                                                           for-space202_1
                                                                           space203_0
                                                                           spec204_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    req_0))))
                                                             (case-lambda
                                                              ((for-space199_0
                                                                space200_0
                                                                spec201_0)
                                                               (values
                                                                #t
                                                                for-space199_0
                                                                space200_0
                                                                spec201_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             for-space199_0
                                                             space200_0
                                                             spec201_0)
                                                            (let ((space_0
                                                                   (syntax-e$1
                                                                    space200_0)))
                                                              (begin
                                                                (if (space?
                                                                     space_0)
                                                                  (void)
                                                                  (raise-syntax-error$1
                                                                   #f
                                                                   "bad space"
                                                                   orig-s30_0
                                                                   req_0))
                                                                (loop_0
                                                                 spec201_0
                                                                 (if top-req_0
                                                                   top-req_0
                                                                   req_0)
                                                                 phase-shift_0
                                                                 space_0
                                                                 just-meta_0
                                                                 just-space_0
                                                                 adjust_0
                                                                 #f
                                                                 #f
                                                                 'spaceless))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args)))))
                                                       (begin
                                                         (check-nested_1
                                                          'spaceless)
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           req_0)
                                                                        (syntax-e$1
                                                                         req_0)
                                                                        req_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((just-space210_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((s_1
                                                                               (cdr
                                                                                s_0)))
                                                                          (let ((s_2
                                                                                 (if (syntax?$1
                                                                                      s_1)
                                                                                   (syntax-e$1
                                                                                    s_1)
                                                                                   s_1)))
                                                                            (if (pair?
                                                                                 s_2)
                                                                              (let ((space213_0
                                                                                     (let ((s_3
                                                                                            (car
                                                                                             s_2)))
                                                                                       s_3)))
                                                                                (let ((spec214_0
                                                                                       (let ((s_3
                                                                                              (cdr
                                                                                               s_2)))
                                                                                         (let ((s_4
                                                                                                (if (syntax?$1
                                                                                                     s_3)
                                                                                                  (syntax-e$1
                                                                                                   s_3)
                                                                                                  s_3)))
                                                                                           (let ((flat-s_0
                                                                                                  (to-syntax-list.1
                                                                                                   s_4)))
                                                                                             (if (not
                                                                                                  flat-s_0)
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                req_0)
                                                                                               flat-s_0))))))
                                                                                  (let ((space213_1
                                                                                         space213_0))
                                                                                    (values
                                                                                     space213_1
                                                                                     spec214_0))))
                                                                              (raise-syntax-error$1
                                                                               #f
                                                                               "bad syntax"
                                                                               req_0)))))
                                                                      (case-lambda
                                                                       ((space211_0
                                                                         spec212_0)
                                                                        (let ((just-space210_1
                                                                               just-space210_0))
                                                                          (values
                                                                           just-space210_1
                                                                           space211_0
                                                                           spec212_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    req_0))))
                                                             (case-lambda
                                                              ((just-space207_0
                                                                space208_0
                                                                spec209_0)
                                                               (values
                                                                #t
                                                                just-space207_0
                                                                space208_0
                                                                spec209_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             just-space207_0
                                                             space208_0
                                                             spec209_0)
                                                            (let ((space_0
                                                                   (syntax-e$1
                                                                    space208_0)))
                                                              (begin
                                                                (if (space?
                                                                     space_0)
                                                                  (void)
                                                                  (raise-syntax-error$1
                                                                   #f
                                                                   "bad space"
                                                                   orig-s30_0
                                                                   req_0))
                                                                (loop_0
                                                                 spec209_0
                                                                 (if top-req_0
                                                                   top-req_0
                                                                   req_0)
                                                                 phase-shift_0
                                                                 space-level_0
                                                                 just-meta_0
                                                                 space_0
                                                                 adjust_0
                                                                 #f
                                                                 #f
                                                                 'justspaceless))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args)))))))
                                                   (if (unsafe-fx< index_0 11)
                                                     (if (unsafe-fx<
                                                          index_0
                                                          10)
                                                       (begin
                                                         (check-nested_1
                                                          'justspaceless)
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           req_0)
                                                                        (syntax-e$1
                                                                         req_0)
                                                                        req_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((only218_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((s_1
                                                                               (cdr
                                                                                s_0)))
                                                                          (let ((s_2
                                                                                 (if (syntax?$1
                                                                                      s_1)
                                                                                   (syntax-e$1
                                                                                    s_1)
                                                                                   s_1)))
                                                                            (if (pair?
                                                                                 s_2)
                                                                              (let ((spec221_0
                                                                                     (let ((s_3
                                                                                            (car
                                                                                             s_2)))
                                                                                       s_3)))
                                                                                (let ((id222_0
                                                                                       (let ((s_3
                                                                                              (cdr
                                                                                               s_2)))
                                                                                         (let ((s_4
                                                                                                (if (syntax?$1
                                                                                                     s_3)
                                                                                                  (syntax-e$1
                                                                                                   s_3)
                                                                                                  s_3)))
                                                                                           (let ((flat-s_0
                                                                                                  (to-syntax-list.1
                                                                                                   s_4)))
                                                                                             (if (not
                                                                                                  flat-s_0)
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                req_0)
                                                                                               (let ((id_0
                                                                                                      (begin
                                                                                                        (letrec*
                                                                                                         ((for-loop_1
                                                                                                           (|#%name|
                                                                                                            for-loop
                                                                                                            (lambda (id_0
                                                                                                                     lst_1)
                                                                                                              (begin
                                                                                                                (if (pair?
                                                                                                                     lst_1)
                                                                                                                  (let ((s_5
                                                                                                                         (unsafe-car
                                                                                                                          lst_1)))
                                                                                                                    (let ((rest_1
                                                                                                                           (unsafe-cdr
                                                                                                                            lst_1)))
                                                                                                                      (let ((id_1
                                                                                                                             (let ((id_1
                                                                                                                                    (let ((id223_0
                                                                                                                                           (if (let ((or-part_0
                                                                                                                                                      (if (syntax?$1
                                                                                                                                                           s_5)
                                                                                                                                                        (symbol?
                                                                                                                                                         (syntax-e$1
                                                                                                                                                          s_5))
                                                                                                                                                        #f)))
                                                                                                                                                 (if or-part_0
                                                                                                                                                   or-part_0
                                                                                                                                                   (symbol?
                                                                                                                                                    s_5)))
                                                                                                                                             s_5
                                                                                                                                             (raise-syntax-error$1
                                                                                                                                              #f
                                                                                                                                              "not an identifier"
                                                                                                                                              req_0
                                                                                                                                              s_5))))
                                                                                                                                      (cons
                                                                                                                                       id223_0
                                                                                                                                       id_0))))
                                                                                                                               (values
                                                                                                                                id_1))))
                                                                                                                        (for-loop_1
                                                                                                                         id_1
                                                                                                                         rest_1))))
                                                                                                                  id_0))))))
                                                                                                         (for-loop_1
                                                                                                          null
                                                                                                          flat-s_0)))))
                                                                                                 (reverse$1
                                                                                                  id_0))))))))
                                                                                  (let ((spec221_1
                                                                                         spec221_0))
                                                                                    (values
                                                                                     spec221_1
                                                                                     id222_0))))
                                                                              (raise-syntax-error$1
                                                                               #f
                                                                               "bad syntax"
                                                                               req_0)))))
                                                                      (case-lambda
                                                                       ((spec219_0
                                                                         id220_0)
                                                                        (let ((only218_1
                                                                               only218_0))
                                                                          (values
                                                                           only218_1
                                                                           spec219_0
                                                                           id220_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    req_0))))
                                                             (case-lambda
                                                              ((only215_0
                                                                spec216_0
                                                                id217_0)
                                                               (values
                                                                #t
                                                                only215_0
                                                                spec216_0
                                                                id217_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             only215_0
                                                             spec216_0
                                                             id217_0)
                                                            (let ((app_0
                                                                   (list
                                                                    spec216_0)))
                                                              (loop_0
                                                               app_0
                                                               (if top-req_0
                                                                 top-req_0
                                                                 req_0)
                                                               phase-shift_0
                                                               space-level_0
                                                               just-meta_0
                                                               just-space_0
                                                               (adjust-only1.1
                                                                (ids->sym-set
                                                                 id217_0))
                                                               #f
                                                               #f
                                                               'path)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args)))))
                                                       (begin
                                                         (check-nested_1
                                                          'justspaceless)
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           req_0)
                                                                        (syntax-e$1
                                                                         req_0)
                                                                        req_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((prefix227_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((s_1
                                                                               (cdr
                                                                                s_0)))
                                                                          (let ((s_2
                                                                                 (if (syntax?$1
                                                                                      s_1)
                                                                                   (syntax-e$1
                                                                                    s_1)
                                                                                   s_1)))
                                                                            (if (pair?
                                                                                 s_2)
                                                                              (let ((id:prefix230_0
                                                                                     (let ((s_3
                                                                                            (car
                                                                                             s_2)))
                                                                                       (if (let ((or-part_0
                                                                                                  (if (syntax?$1
                                                                                                       s_3)
                                                                                                    (symbol?
                                                                                                     (syntax-e$1
                                                                                                      s_3))
                                                                                                    #f)))
                                                                                             (if or-part_0
                                                                                               or-part_0
                                                                                               (symbol?
                                                                                                s_3)))
                                                                                         s_3
                                                                                         (raise-syntax-error$1
                                                                                          #f
                                                                                          "not an identifier"
                                                                                          req_0
                                                                                          s_3)))))
                                                                                (let ((spec231_0
                                                                                       (let ((s_3
                                                                                              (cdr
                                                                                               s_2)))
                                                                                         (let ((s_4
                                                                                                (if (syntax?$1
                                                                                                     s_3)
                                                                                                  (syntax-e$1
                                                                                                   s_3)
                                                                                                  s_3)))
                                                                                           (if (pair?
                                                                                                s_4)
                                                                                             (let ((spec232_0
                                                                                                    (let ((s_5
                                                                                                           (car
                                                                                                            s_4)))
                                                                                                      s_5)))
                                                                                               (call-with-values
                                                                                                (lambda ()
                                                                                                  (let ((s_5
                                                                                                         (cdr
                                                                                                          s_4)))
                                                                                                    (let ((s_6
                                                                                                           (if (syntax?$1
                                                                                                                s_5)
                                                                                                             (syntax-e$1
                                                                                                              s_5)
                                                                                                             s_5)))
                                                                                                      (if (null?
                                                                                                           s_6)
                                                                                                        (values)
                                                                                                        (raise-syntax-error$1
                                                                                                         #f
                                                                                                         "bad syntax"
                                                                                                         req_0)))))
                                                                                                (case-lambda
                                                                                                 (()
                                                                                                  (let ((spec232_1
                                                                                                         spec232_0))
                                                                                                    (values
                                                                                                     spec232_1)))
                                                                                                 (args
                                                                                                  (raise-binding-result-arity-error
                                                                                                   0
                                                                                                   args)))))
                                                                                             (raise-syntax-error$1
                                                                                              #f
                                                                                              "bad syntax"
                                                                                              req_0))))))
                                                                                  (let ((id:prefix230_1
                                                                                         id:prefix230_0))
                                                                                    (values
                                                                                     id:prefix230_1
                                                                                     spec231_0))))
                                                                              (raise-syntax-error$1
                                                                               #f
                                                                               "bad syntax"
                                                                               req_0)))))
                                                                      (case-lambda
                                                                       ((id:prefix228_0
                                                                         spec229_0)
                                                                        (let ((prefix227_1
                                                                               prefix227_0))
                                                                          (values
                                                                           prefix227_1
                                                                           id:prefix228_0
                                                                           spec229_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    req_0))))
                                                             (case-lambda
                                                              ((prefix224_0
                                                                id:prefix225_0
                                                                spec226_0)
                                                               (values
                                                                #t
                                                                prefix224_0
                                                                id:prefix225_0
                                                                spec226_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             prefix224_0
                                                             id:prefix225_0
                                                             spec226_0)
                                                            (let ((app_0
                                                                   (list
                                                                    spec226_0)))
                                                              (loop_0
                                                               app_0
                                                               (if top-req_0
                                                                 top-req_0
                                                                 req_0)
                                                               phase-shift_0
                                                               space-level_0
                                                               just-meta_0
                                                               just-space_0
                                                               (adjust-prefix2.1
                                                                (syntax-e$1
                                                                 id:prefix225_0))
                                                               #f
                                                               #f
                                                               'path)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args))))))
                                                     (if (unsafe-fx<
                                                          index_0
                                                          12)
                                                       (begin
                                                         (check-nested_1
                                                          'justspaceless)
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           req_0)
                                                                        (syntax-e$1
                                                                         req_0)
                                                                        req_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((all-except236_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((s_1
                                                                               (cdr
                                                                                s_0)))
                                                                          (let ((s_2
                                                                                 (if (syntax?$1
                                                                                      s_1)
                                                                                   (syntax-e$1
                                                                                    s_1)
                                                                                   s_1)))
                                                                            (if (pair?
                                                                                 s_2)
                                                                              (let ((spec239_0
                                                                                     (let ((s_3
                                                                                            (car
                                                                                             s_2)))
                                                                                       s_3)))
                                                                                (let ((id240_0
                                                                                       (let ((s_3
                                                                                              (cdr
                                                                                               s_2)))
                                                                                         (let ((s_4
                                                                                                (if (syntax?$1
                                                                                                     s_3)
                                                                                                  (syntax-e$1
                                                                                                   s_3)
                                                                                                  s_3)))
                                                                                           (let ((flat-s_0
                                                                                                  (to-syntax-list.1
                                                                                                   s_4)))
                                                                                             (if (not
                                                                                                  flat-s_0)
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                req_0)
                                                                                               (let ((id_0
                                                                                                      (begin
                                                                                                        (letrec*
                                                                                                         ((for-loop_1
                                                                                                           (|#%name|
                                                                                                            for-loop
                                                                                                            (lambda (id_0
                                                                                                                     lst_1)
                                                                                                              (begin
                                                                                                                (if (pair?
                                                                                                                     lst_1)
                                                                                                                  (let ((s_5
                                                                                                                         (unsafe-car
                                                                                                                          lst_1)))
                                                                                                                    (let ((rest_1
                                                                                                                           (unsafe-cdr
                                                                                                                            lst_1)))
                                                                                                                      (let ((id_1
                                                                                                                             (let ((id_1
                                                                                                                                    (let ((id241_0
                                                                                                                                           (if (let ((or-part_0
                                                                                                                                                      (if (syntax?$1
                                                                                                                                                           s_5)
                                                                                                                                                        (symbol?
                                                                                                                                                         (syntax-e$1
                                                                                                                                                          s_5))
                                                                                                                                                        #f)))
                                                                                                                                                 (if or-part_0
                                                                                                                                                   or-part_0
                                                                                                                                                   (symbol?
                                                                                                                                                    s_5)))
                                                                                                                                             s_5
                                                                                                                                             (raise-syntax-error$1
                                                                                                                                              #f
                                                                                                                                              "not an identifier"
                                                                                                                                              req_0
                                                                                                                                              s_5))))
                                                                                                                                      (cons
                                                                                                                                       id241_0
                                                                                                                                       id_0))))
                                                                                                                               (values
                                                                                                                                id_1))))
                                                                                                                        (for-loop_1
                                                                                                                         id_1
                                                                                                                         rest_1))))
                                                                                                                  id_0))))))
                                                                                                         (for-loop_1
                                                                                                          null
                                                                                                          flat-s_0)))))
                                                                                                 (reverse$1
                                                                                                  id_0))))))))
                                                                                  (let ((spec239_1
                                                                                         spec239_0))
                                                                                    (values
                                                                                     spec239_1
                                                                                     id240_0))))
                                                                              (raise-syntax-error$1
                                                                               #f
                                                                               "bad syntax"
                                                                               req_0)))))
                                                                      (case-lambda
                                                                       ((spec237_0
                                                                         id238_0)
                                                                        (let ((all-except236_1
                                                                               all-except236_0))
                                                                          (values
                                                                           all-except236_1
                                                                           spec237_0
                                                                           id238_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    req_0))))
                                                             (case-lambda
                                                              ((all-except233_0
                                                                spec234_0
                                                                id235_0)
                                                               (values
                                                                #t
                                                                all-except233_0
                                                                spec234_0
                                                                id235_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             all-except233_0
                                                             spec234_0
                                                             id235_0)
                                                            (let ((app_0
                                                                   (list
                                                                    spec234_0)))
                                                              (loop_0
                                                               app_0
                                                               (if top-req_0
                                                                 top-req_0
                                                                 req_0)
                                                               phase-shift_0
                                                               space-level_0
                                                               just-meta_0
                                                               just-space_0
                                                               (adjust-all-except3.1
                                                                '||
                                                                (ids->sym-set
                                                                 id235_0))
                                                               #f
                                                               #f
                                                               'path)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args)))))
                                                       (if (unsafe-fx<
                                                            index_0
                                                            13)
                                                         (begin
                                                           (check-nested_1
                                                            'justspaceless)
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             req_0)
                                                                          (syntax-e$1
                                                                           req_0)
                                                                          req_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((prefix-all-except246_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (if (pair?
                                                                                   s_2)
                                                                                (let ((id:prefix250_0
                                                                                       (let ((s_3
                                                                                              (car
                                                                                               s_2)))
                                                                                         (if (let ((or-part_0
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (symbol?
                                                                                                       (syntax-e$1
                                                                                                        s_3))
                                                                                                      #f)))
                                                                                               (if or-part_0
                                                                                                 or-part_0
                                                                                                 (symbol?
                                                                                                  s_3)))
                                                                                           s_3
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "not an identifier"
                                                                                            req_0
                                                                                            s_3)))))
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((s_3
                                                                                            (cdr
                                                                                             s_2)))
                                                                                       (let ((s_4
                                                                                              (if (syntax?$1
                                                                                                   s_3)
                                                                                                (syntax-e$1
                                                                                                 s_3)
                                                                                                s_3)))
                                                                                         (if (pair?
                                                                                              s_4)
                                                                                           (let ((spec253_0
                                                                                                  (let ((s_5
                                                                                                         (car
                                                                                                          s_4)))
                                                                                                    s_5)))
                                                                                             (let ((id254_0
                                                                                                    (let ((s_5
                                                                                                           (cdr
                                                                                                            s_4)))
                                                                                                      (let ((s_6
                                                                                                             (if (syntax?$1
                                                                                                                  s_5)
                                                                                                               (syntax-e$1
                                                                                                                s_5)
                                                                                                               s_5)))
                                                                                                        (let ((flat-s_0
                                                                                                               (to-syntax-list.1
                                                                                                                s_6)))
                                                                                                          (if (not
                                                                                                               flat-s_0)
                                                                                                            (raise-syntax-error$1
                                                                                                             #f
                                                                                                             "bad syntax"
                                                                                                             req_0)
                                                                                                            (let ((id_0
                                                                                                                   (begin
                                                                                                                     (letrec*
                                                                                                                      ((for-loop_1
                                                                                                                        (|#%name|
                                                                                                                         for-loop
                                                                                                                         (lambda (id_0
                                                                                                                                  lst_1)
                                                                                                                           (begin
                                                                                                                             (if (pair?
                                                                                                                                  lst_1)
                                                                                                                               (let ((s_7
                                                                                                                                      (unsafe-car
                                                                                                                                       lst_1)))
                                                                                                                                 (let ((rest_1
                                                                                                                                        (unsafe-cdr
                                                                                                                                         lst_1)))
                                                                                                                                   (let ((id_1
                                                                                                                                          (let ((id_1
                                                                                                                                                 (let ((id255_0
                                                                                                                                                        (if (let ((or-part_0
                                                                                                                                                                   (if (syntax?$1
                                                                                                                                                                        s_7)
                                                                                                                                                                     (symbol?
                                                                                                                                                                      (syntax-e$1
                                                                                                                                                                       s_7))
                                                                                                                                                                     #f)))
                                                                                                                                                              (if or-part_0
                                                                                                                                                                or-part_0
                                                                                                                                                                (symbol?
                                                                                                                                                                 s_7)))
                                                                                                                                                          s_7
                                                                                                                                                          (raise-syntax-error$1
                                                                                                                                                           #f
                                                                                                                                                           "not an identifier"
                                                                                                                                                           req_0
                                                                                                                                                           s_7))))
                                                                                                                                                   (cons
                                                                                                                                                    id255_0
                                                                                                                                                    id_0))))
                                                                                                                                            (values
                                                                                                                                             id_1))))
                                                                                                                                     (for-loop_1
                                                                                                                                      id_1
                                                                                                                                      rest_1))))
                                                                                                                               id_0))))))
                                                                                                                      (for-loop_1
                                                                                                                       null
                                                                                                                       flat-s_0)))))
                                                                                                              (reverse$1
                                                                                                               id_0))))))))
                                                                                               (let ((spec253_1
                                                                                                      spec253_0))
                                                                                                 (values
                                                                                                  spec253_1
                                                                                                  id254_0))))
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "bad syntax"
                                                                                            req_0)))))
                                                                                   (case-lambda
                                                                                    ((spec251_0
                                                                                      id252_0)
                                                                                     (let ((id:prefix250_1
                                                                                            id:prefix250_0))
                                                                                       (values
                                                                                        id:prefix250_1
                                                                                        spec251_0
                                                                                        id252_0)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args)))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 req_0)))))
                                                                        (case-lambda
                                                                         ((id:prefix247_0
                                                                           spec248_0
                                                                           id249_0)
                                                                          (let ((prefix-all-except246_1
                                                                                 prefix-all-except246_0))
                                                                            (values
                                                                             prefix-all-except246_1
                                                                             id:prefix247_0
                                                                             spec248_0
                                                                             id249_0)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           3
                                                                           args)))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      req_0))))
                                                               (case-lambda
                                                                ((prefix-all-except242_0
                                                                  id:prefix243_0
                                                                  spec244_0
                                                                  id245_0)
                                                                 (values
                                                                  #t
                                                                  prefix-all-except242_0
                                                                  id:prefix243_0
                                                                  spec244_0
                                                                  id245_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  4
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               prefix-all-except242_0
                                                               id:prefix243_0
                                                               spec244_0
                                                               id245_0)
                                                              (let ((app_0
                                                                     (list
                                                                      spec244_0)))
                                                                (loop_0
                                                                 app_0
                                                                 (if top-req_0
                                                                   top-req_0
                                                                   req_0)
                                                                 phase-shift_0
                                                                 space-level_0
                                                                 just-meta_0
                                                                 just-space_0
                                                                 (let ((app_1
                                                                        (syntax-e$1
                                                                         id:prefix243_0)))
                                                                   (adjust-all-except3.1
                                                                    app_1
                                                                    (ids->sym-set
                                                                     id245_0)))
                                                                 #f
                                                                 #f
                                                                 'path)))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               5
                                                               args)))))
                                                         (begin
                                                           (check-nested_1
                                                            'justspaceless)
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             req_0)
                                                                          (syntax-e$1
                                                                           req_0)
                                                                          req_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((rename260_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (if (pair?
                                                                                   s_2)
                                                                                (let ((spec264_0
                                                                                       (let ((s_3
                                                                                              (car
                                                                                               s_2)))
                                                                                         s_3)))
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((s_3
                                                                                            (cdr
                                                                                             s_2)))
                                                                                       (let ((s_4
                                                                                              (if (syntax?$1
                                                                                                   s_3)
                                                                                                (syntax-e$1
                                                                                                 s_3)
                                                                                                s_3)))
                                                                                         (if (pair?
                                                                                              s_4)
                                                                                           (let ((id:to267_0
                                                                                                  (let ((s_5
                                                                                                         (car
                                                                                                          s_4)))
                                                                                                    (if (let ((or-part_0
                                                                                                               (if (syntax?$1
                                                                                                                    s_5)
                                                                                                                 (symbol?
                                                                                                                  (syntax-e$1
                                                                                                                   s_5))
                                                                                                                 #f)))
                                                                                                          (if or-part_0
                                                                                                            or-part_0
                                                                                                            (symbol?
                                                                                                             s_5)))
                                                                                                      s_5
                                                                                                      (raise-syntax-error$1
                                                                                                       #f
                                                                                                       "not an identifier"
                                                                                                       req_0
                                                                                                       s_5)))))
                                                                                             (let ((id:from268_0
                                                                                                    (let ((s_5
                                                                                                           (cdr
                                                                                                            s_4)))
                                                                                                      (let ((s_6
                                                                                                             (if (syntax?$1
                                                                                                                  s_5)
                                                                                                               (syntax-e$1
                                                                                                                s_5)
                                                                                                               s_5)))
                                                                                                        (if (pair?
                                                                                                             s_6)
                                                                                                          (let ((id:from269_0
                                                                                                                 (let ((s_7
                                                                                                                        (car
                                                                                                                         s_6)))
                                                                                                                   (if (let ((or-part_0
                                                                                                                              (if (syntax?$1
                                                                                                                                   s_7)
                                                                                                                                (symbol?
                                                                                                                                 (syntax-e$1
                                                                                                                                  s_7))
                                                                                                                                #f)))
                                                                                                                         (if or-part_0
                                                                                                                           or-part_0
                                                                                                                           (symbol?
                                                                                                                            s_7)))
                                                                                                                     s_7
                                                                                                                     (raise-syntax-error$1
                                                                                                                      #f
                                                                                                                      "not an identifier"
                                                                                                                      req_0
                                                                                                                      s_7)))))
                                                                                                            (call-with-values
                                                                                                             (lambda ()
                                                                                                               (let ((s_7
                                                                                                                      (cdr
                                                                                                                       s_6)))
                                                                                                                 (let ((s_8
                                                                                                                        (if (syntax?$1
                                                                                                                             s_7)
                                                                                                                          (syntax-e$1
                                                                                                                           s_7)
                                                                                                                          s_7)))
                                                                                                                   (if (null?
                                                                                                                        s_8)
                                                                                                                     (values)
                                                                                                                     (raise-syntax-error$1
                                                                                                                      #f
                                                                                                                      "bad syntax"
                                                                                                                      req_0)))))
                                                                                                             (case-lambda
                                                                                                              (()
                                                                                                               (let ((id:from269_1
                                                                                                                      id:from269_0))
                                                                                                                 (values
                                                                                                                  id:from269_1)))
                                                                                                              (args
                                                                                                               (raise-binding-result-arity-error
                                                                                                                0
                                                                                                                args)))))
                                                                                                          (raise-syntax-error$1
                                                                                                           #f
                                                                                                           "bad syntax"
                                                                                                           req_0))))))
                                                                                               (let ((id:to267_1
                                                                                                      id:to267_0))
                                                                                                 (values
                                                                                                  id:to267_1
                                                                                                  id:from268_0))))
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "bad syntax"
                                                                                            req_0)))))
                                                                                   (case-lambda
                                                                                    ((id:to265_0
                                                                                      id:from266_0)
                                                                                     (let ((spec264_1
                                                                                            spec264_0))
                                                                                       (values
                                                                                        spec264_1
                                                                                        id:to265_0
                                                                                        id:from266_0)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args)))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 req_0)))))
                                                                        (case-lambda
                                                                         ((spec261_0
                                                                           id:to262_0
                                                                           id:from263_0)
                                                                          (let ((rename260_1
                                                                                 rename260_0))
                                                                            (values
                                                                             rename260_1
                                                                             spec261_0
                                                                             id:to262_0
                                                                             id:from263_0)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           3
                                                                           args)))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      req_0))))
                                                               (case-lambda
                                                                ((rename256_0
                                                                  spec257_0
                                                                  id:to258_0
                                                                  id:from259_0)
                                                                 (values
                                                                  #t
                                                                  rename256_0
                                                                  spec257_0
                                                                  id:to258_0
                                                                  id:from259_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  4
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               rename256_0
                                                               spec257_0
                                                               id:to258_0
                                                               id:from259_0)
                                                              (let ((app_0
                                                                     (list
                                                                      spec257_0)))
                                                                (loop_0
                                                                 app_0
                                                                 (if top-req_0
                                                                   top-req_0
                                                                   req_0)
                                                                 phase-shift_0
                                                                 space-level_0
                                                                 just-meta_0
                                                                 just-space_0
                                                                 (adjust-rename4.1
                                                                  id:to258_0
                                                                  (syntax-e$1
                                                                   id:from259_0))
                                                                 #f
                                                                 #f
                                                                 'path)))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               5
                                                               args))))))))))))))
                                       (for-loop_0 rest_0))))
                                 (values)))))))
                        (for-loop_0 reqs_0)))
                     (void)))))))
            (loop_0
             reqs29_0
             #f
             phase-shift32_0
             kw2450
             'all
             #t
             #f
             #t
             #t
             'raw))))))))
(define ids->sym-set
  (lambda (ids_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (table_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((id_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((table_1
                           (let ((table_1
                                  (call-with-values
                                   (lambda () (values (syntax-e$1 id_0) #t))
                                   (case-lambda
                                    ((key_0 val_0)
                                     (hash-set table_0 key_0 val_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))))
                             (values table_1))))
                      (for-loop_0 table_1 rest_0))))
                table_0))))))
       (for-loop_0 hash2725 ids_0)))))
(define same-scopes?
  (lambda (a_0 b_0)
    (let ((app_0 (syntax-scope-set a_0 0)))
      (equal? app_0 (syntax-scope-set b_0 0)))))
(define build-initial-require-mpi
  (lambda (mod-path_0 self_0)
    (module-path->mpi.1 hash2610 mod-path_0 self_0)))
(define perform-initial-require!.1
  (|#%name|
   perform-initial-require!
   (lambda (bind?35_0
            who36_0
            mpi39_0
            self40_0
            in-stx41_0
            m-ns42_0
            requires+provides43_0)
     (begin
       (perform-require!.1
        #f
        bind?35_0
        #t
        #f
        #f
        #t
        'all
        #t
        0
        requires+provides43_0
        0
        #f
        #f
        unsafe-undefined
        #t
        who36_0
        mpi39_0
        #f
        self40_0
        in-stx41_0
        m-ns42_0)))))
(define perform-require!.1
  (|#%name|
   perform-require!
   (lambda (adjust50_0
            bind?59_0
            can-be-shadowed?54_0
            copy-variable-as-constant?57_0
            copy-variable-phase-level56_0
            initial-require?55_0
            just-meta48_0
            just-space49_0
            phase-shift45_0
            requires+provides51_0
            run-phase47_0
            run?53_0
            skip-variable-phase-level58_0
            space-level46_0
            visit?52_0
            who60_0
            mpi77_0
            orig-s78_0
            self79_0
            in-stx80_0
            m-ns81_0)
     (begin
       (let ((space-level_0
              (if (eq? space-level46_0 unsafe-undefined)
                kw2450
                space-level46_0)))
         (begin
           (if log-performance?
             (start-performance-region 'expand 'require)
             (void))
           (begin0
             (let ((module-name_0
                    (1/module-path-index-resolve mpi77_0 #t orig-s78_0)))
               (let ((bind-in-stx_0
                      (if (adjust-rename? adjust50_0)
                        (adjust-rename-to-id adjust50_0)
                        in-stx80_0)))
                 (let ((done-syms_0 (if adjust50_0 (make-hasheq) #f)))
                   (let ((m_0 (namespace->module m-ns81_0 module-name_0)))
                     (begin
                       (if m_0
                         (void)
                         (begin-unsafe
                          (raise-arguments-error
                           'require
                           "unknown module"
                           "module name"
                           (module-name->error-string module-name_0))))
                       (let ((interned-mpi_0
                              (if requires+provides51_0
                                (let ((app_0
                                       (intern-phase+space-shift
                                        phase-shift45_0
                                        space-level_0)))
                                  (add-required-module!
                                   requires+provides51_0
                                   mpi77_0
                                   app_0
                                   (module-cross-phase-persistent? m_0)))
                                mpi77_0)))
                         (let ((transitive-requires_0
                                (if requires+provides51_0
                                  (requires+provides-transitive-requires
                                   requires+provides51_0)
                                  #f)))
                           (begin
                             (if visit?52_0
                               (namespace-module-visit!.1
                                transitive-requires_0
                                run-phase47_0
                                m-ns81_0
                                interned-mpi_0
                                phase-shift45_0)
                               (void))
                             (begin
                               (if run?53_0
                                 (namespace-module-instantiate!.1
                                  #f
                                  #t
                                  run-phase47_0
                                  hash2610
                                  null
                                  #f
                                  transitive-requires_0
                                  m-ns81_0
                                  interned-mpi_0
                                  phase-shift45_0)
                                 (void))
                               (begin
                                 (if (not (if visit?52_0 visit?52_0 run?53_0))
                                   (namespace-module-make-available!.1
                                    transitive-requires_0
                                    run-phase47_0
                                    m-ns81_0
                                    interned-mpi_0
                                    phase-shift45_0)
                                   (void))
                                 (let ((can-bulk-bind?_0
                                        (if (eq? space-level_0 kw2450)
                                          (if (let ((or-part_0
                                                     (not adjust50_0)))
                                                (if or-part_0
                                                  or-part_0
                                                  (let ((or-part_1
                                                         (adjust-prefix?
                                                          adjust50_0)))
                                                    (if or-part_1
                                                      or-part_1
                                                      (adjust-all-except?
                                                       adjust50_0)))))
                                            (not skip-variable-phase-level58_0)
                                            #f)
                                          #f)))
                                   (let ((bulk-prefix_0
                                          (if (adjust-prefix? adjust50_0)
                                            (adjust-prefix-sym adjust50_0)
                                            (if (adjust-all-except? adjust50_0)
                                              (adjust-all-except-prefix-sym
                                               adjust50_0)
                                              #f))))
                                     (let ((bulk-excepts_0
                                            (if (adjust-all-except? adjust50_0)
                                              (adjust-all-except-syms
                                               adjust50_0)
                                              hash2610)))
                                       (let ((update-nominals-box_0
                                              (if can-bulk-bind?_0
                                                (box null)
                                                #f)))
                                         (begin
                                           (let ((temp293_0
                                                  (if requires+provides51_0
                                                    (requires+provides-self
                                                     requires+provides51_0)
                                                    #f)))
                                             (let ((temp294_0
                                                    (if (adjust-only?
                                                         adjust50_0)
                                                      (set->list
                                                       (adjust-only-syms
                                                        adjust50_0))
                                                      (if (adjust-rename?
                                                           adjust50_0)
                                                        (list
                                                         (adjust-rename-from-sym
                                                          adjust50_0))
                                                        #f))))
                                               (let ((temp301_0
                                                      (if requires+provides51_0
                                                        (if can-bulk-bind?_0
                                                          (|#%name|
                                                           temp301
                                                           (lambda (provides_0
                                                                    provide-phase+space_0)
                                                             (begin
                                                               (let ((temp320_0
                                                                      (module-self
                                                                       m_0)))
                                                                 (let ((temp327_0
                                                                        (if (positive?
                                                                             (hash-count
                                                                              bulk-excepts_0))
                                                                          done-syms_0
                                                                          #f)))
                                                                   (let ((temp329_0
                                                                          (not
                                                                           initial-require?55_0)))
                                                                     (let ((temp327_1
                                                                            temp327_0)
                                                                           (temp320_1
                                                                            temp320_0))
                                                                       (add-bulk-required-ids!.1
                                                                        update-nominals-box_0
                                                                        can-be-shadowed?54_0
                                                                        temp329_0
                                                                        bulk-excepts_0
                                                                        orig-s78_0
                                                                        bulk-prefix_0
                                                                        temp327_1
                                                                        who60_0
                                                                        requires+provides51_0
                                                                        bind-in-stx_0
                                                                        temp320_1
                                                                        mpi77_0
                                                                        phase-shift45_0
                                                                        provides_0
                                                                        provide-phase+space_0))))))))
                                                          #f)
                                                        #f)))
                                                 (let ((temp302_0
                                                        (if (let ((or-part_0
                                                                   (not
                                                                    can-bulk-bind?_0)))
                                                              (if or-part_0
                                                                or-part_0
                                                                copy-variable-phase-level56_0))
                                                          (|#%name|
                                                           temp302
                                                           (lambda (binding_0
                                                                    as-transformer?_0)
                                                             (begin
                                                               (let ((sym_0
                                                                      (module-binding-nominal-sym
                                                                       binding_0)))
                                                                 (let ((provide-phase+space_0
                                                                        (module-binding-nominal-phase+space
                                                                         binding_0)))
                                                                   (let ((provide-phase_0
                                                                          (phase+space-phase
                                                                           provide-phase+space_0)))
                                                                     (let ((provide-space_0
                                                                            (phase+space-space
                                                                             provide-phase+space_0)))
                                                                       (let ((adjusted-sym_0
                                                                              (if (not
                                                                                   (symbol-interned?
                                                                                    sym_0))
                                                                                #f
                                                                                (if (if skip-variable-phase-level58_0
                                                                                      (if (not
                                                                                           as-transformer?_0)
                                                                                        (equal?
                                                                                         provide-phase_0
                                                                                         skip-variable-phase-level58_0)
                                                                                        #f)
                                                                                      #f)
                                                                                  #f
                                                                                  (if (not
                                                                                       adjust50_0)
                                                                                    sym_0
                                                                                    (if (adjust-only?
                                                                                         adjust50_0)
                                                                                      (if (let ((s_0
                                                                                                 (adjust-only-syms
                                                                                                  adjust50_0)))
                                                                                            (begin-unsafe
                                                                                             (hash-ref
                                                                                              s_0
                                                                                              sym_0
                                                                                              #f)))
                                                                                        (if (hash-set!
                                                                                             done-syms_0
                                                                                             sym_0
                                                                                             #t)
                                                                                          sym_0
                                                                                          #f)
                                                                                        #f)
                                                                                      (if (adjust-prefix?
                                                                                           adjust50_0)
                                                                                        (string->symbol
                                                                                         (let ((app_0
                                                                                                (symbol->string
                                                                                                 (adjust-prefix-sym
                                                                                                  adjust50_0))))
                                                                                           (string-append
                                                                                            app_0
                                                                                            (symbol->string
                                                                                             sym_0))))
                                                                                        (if (adjust-all-except?
                                                                                             adjust50_0)
                                                                                          (if (not
                                                                                               (if (let ((s_0
                                                                                                          (adjust-all-except-syms
                                                                                                           adjust50_0)))
                                                                                                     (begin-unsafe
                                                                                                      (hash-ref
                                                                                                       s_0
                                                                                                       sym_0
                                                                                                       #f)))
                                                                                                 (hash-set!
                                                                                                  done-syms_0
                                                                                                  sym_0
                                                                                                  #t)
                                                                                                 #f))
                                                                                            (string->symbol
                                                                                             (let ((app_0
                                                                                                    (symbol->string
                                                                                                     (adjust-all-except-prefix-sym
                                                                                                      adjust50_0))))
                                                                                               (string-append
                                                                                                app_0
                                                                                                (symbol->string
                                                                                                 sym_0))))
                                                                                            #f)
                                                                                          (if (adjust-rename?
                                                                                               adjust50_0)
                                                                                            (if (eq?
                                                                                                 sym_0
                                                                                                 (adjust-rename-from-sym
                                                                                                  adjust50_0))
                                                                                              (if (hash-set!
                                                                                                   done-syms_0
                                                                                                   sym_0
                                                                                                   #t)
                                                                                                (adjust-rename-to-id
                                                                                                 adjust50_0)
                                                                                                #f)
                                                                                              #f)
                                                                                            (void))))))))))
                                                                         (let ((skip-bind?_0
                                                                                (if (if adjusted-sym_0
                                                                                      requires+provides51_0
                                                                                      #f)
                                                                                  (let ((bind-phase_0
                                                                                         (phase+
                                                                                          phase-shift45_0
                                                                                          provide-phase_0)))
                                                                                    (let ((bind-space_0
                                                                                           (space+
                                                                                            provide-space_0
                                                                                            space-level_0)))
                                                                                      (let ((s_0
                                                                                             (add-space-scope
                                                                                              (datum->syntax$1
                                                                                               bind-in-stx_0
                                                                                               adjusted-sym_0)
                                                                                              bind-space_0)))
                                                                                        (let ((bound-status_0
                                                                                               (if initial-require?55_0
                                                                                                 #f
                                                                                                 (begin
                                                                                                   (adjust-shadow-requires!
                                                                                                    requires+provides51_0
                                                                                                    s_0
                                                                                                    bind-phase_0
                                                                                                    bind-space_0)
                                                                                                   (let ((temp334_0
                                                                                                          (requires+provides-definitions-shadow-imports?
                                                                                                           requires+provides51_0)))
                                                                                                     (check-not-defined.1
                                                                                                      #f
                                                                                                      temp334_0
                                                                                                      #t
                                                                                                      orig-s78_0
                                                                                                      #t
                                                                                                      binding_0
                                                                                                      who60_0
                                                                                                      requires+provides51_0
                                                                                                      s_0
                                                                                                      bind-phase_0
                                                                                                      bind-space_0))))))
                                                                                          (begin
                                                                                            (if (eq?
                                                                                                 bound-status_0
                                                                                                 'defined)
                                                                                              (void)
                                                                                              (let ((temp345_0
                                                                                                     (intern-phase+space
                                                                                                      bind-phase_0
                                                                                                      bind-space_0)))
                                                                                                (add-defined-or-required-id!.1
                                                                                                 as-transformer?_0
                                                                                                 can-be-shadowed?54_0
                                                                                                 requires+provides51_0
                                                                                                 s_0
                                                                                                 temp345_0
                                                                                                 binding_0)))
                                                                                            bound-status_0)))))
                                                                                  #f)))
                                                                           (begin
                                                                             (if (if copy-variable-phase-level56_0
                                                                                   (if (not
                                                                                        as-transformer?_0)
                                                                                     (equal?
                                                                                      provide-phase_0
                                                                                      copy-variable-phase-level56_0)
                                                                                     #f)
                                                                                   #f)
                                                                               (copy-namespace-value
                                                                                m-ns81_0
                                                                                sym_0
                                                                                binding_0
                                                                                copy-variable-phase-level56_0
                                                                                phase-shift45_0
                                                                                copy-variable-as-constant?57_0)
                                                                               (void))
                                                                             (if (not
                                                                                  skip-bind?_0)
                                                                               adjusted-sym_0
                                                                               #f)))))))))))
                                                          #f)))
                                                   (let ((temp301_1 temp301_0)
                                                         (temp294_1 temp294_0)
                                                         (temp293_1 temp293_0))
                                                     (bind-all-provides!.1
                                                      bind?59_0
                                                      temp301_1
                                                      bulk-excepts_0
                                                      bulk-prefix_0
                                                      can-bulk-bind?_0
                                                      temp293_1
                                                      temp302_0
                                                      orig-s78_0
                                                      just-meta48_0
                                                      just-space49_0
                                                      temp294_1
                                                      m_0
                                                      bind-in-stx_0
                                                      phase-shift45_0
                                                      space-level_0
                                                      m-ns81_0
                                                      interned-mpi_0
                                                      module-name_0
                                                      requires+provides51_0))))))
                                           (begin
                                             (if update-nominals-box_0
                                               (begin
                                                 (let ((lst_0
                                                        (unbox
                                                         update-nominals-box_0)))
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (lst_1)
                                                           (begin
                                                             (if (pair? lst_1)
                                                               (let ((update!_0
                                                                      (unsafe-car
                                                                       lst_1)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_1)))
                                                                   (begin
                                                                     (|#%app|
                                                                      update!_0)
                                                                     (for-loop_0
                                                                      rest_0))))
                                                               (values)))))))
                                                      (for-loop_0 lst_0))))
                                                 (void))
                                               (void))
                                             (let ((need-syms_0
                                                    (if (adjust-only?
                                                         adjust50_0)
                                                      (adjust-only-syms
                                                       adjust50_0)
                                                      (if (adjust-all-except?
                                                           adjust50_0)
                                                        (adjust-all-except-syms
                                                         adjust50_0)
                                                        (if (adjust-rename?
                                                             adjust50_0)
                                                          (set
                                                           (adjust-rename-from-sym
                                                            adjust50_0))
                                                          #f)))))
                                               (if (if need-syms_0
                                                     (not
                                                      (let ((app_0
                                                             (begin-unsafe
                                                              (hash-count
                                                               need-syms_0))))
                                                        (=
                                                         app_0
                                                         (hash-count
                                                          done-syms_0))))
                                                     #f)
                                                 (begin
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (i_0)
                                                           (begin
                                                             (if i_0
                                                               (let ((sym_0
                                                                      (unsafe-immutable-hash-iterate-key
                                                                       need-syms_0
                                                                       i_0)))
                                                                 (begin
                                                                   (if (hash-ref
                                                                        done-syms_0
                                                                        sym_0
                                                                        #f)
                                                                     (void)
                                                                     (raise-syntax-error$1
                                                                      who60_0
                                                                      "not in nested spec"
                                                                      orig-s78_0
                                                                      sym_0))
                                                                   (for-loop_0
                                                                    (unsafe-immutable-hash-iterate-next
                                                                     need-syms_0
                                                                     i_0))))
                                                               (values)))))))
                                                      (for-loop_0
                                                       (unsafe-immutable-hash-iterate-first
                                                        need-syms_0))))
                                                   (void))
                                                 (void)))))))))))))))))))
             (if log-performance? (end-performance-region) (void)))))))))
(define bind-all-provides!.1
  (|#%name|
   bind-all-provides!
   (lambda (bind?88_0
            bulk-callback93_0
            bulk-excepts91_0
            bulk-prefix90_0
            can-bulk?89_0
            defines-mpi84_0
            filter92_0
            in83_0
            just-meta86_0
            just-space87_0
            only85_0
            m105_0
            in-stx106_0
            phase-shift107_0
            space-level108_0
            ns109_0
            mpi110_0
            module-name111_0
            requires+provides112_0)
     (begin
       (let ((self_0 (module-self m105_0)))
         (let ((phase+space-shift_0
                (intern-phase+space-shift phase-shift107_0 space-level108_0)))
           (begin
             (let ((ht_0 (module-provides m105_0)))
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (i_0)
                       (begin
                         (if i_0
                           (call-with-values
                            (lambda () (hash-iterate-key+value ht_0 i_0))
                            (case-lambda
                             ((provide-phase+space_0 provides_0)
                              (call-with-values
                               (lambda ()
                                 (if (if (let ((or-part_0
                                                (eq? just-meta86_0 'all)))
                                           (if or-part_0
                                             or-part_0
                                             (eqv?
                                              just-meta86_0
                                              (phase+space-phase
                                               provide-phase+space_0))))
                                       (let ((or-part_0
                                              (eq? just-space87_0 #t)))
                                         (if or-part_0
                                           or-part_0
                                           (eqv?
                                            just-space87_0
                                            (phase+space-space
                                             provide-phase+space_0))))
                                       #f)
                                   (begin
                                     (let ((phase+space_0
                                            (begin-unsafe
                                             (intern-phase+space
                                              (phase+space+$1
                                               provide-phase+space_0
                                               phase+space-shift_0)))))
                                       (let ((phase_0
                                              (phase+space-phase
                                               phase+space_0)))
                                         (let ((space_0
                                                (phase+space-space
                                                 phase+space_0)))
                                           (begin
                                             (if requires+provides112_0
                                               (add-required-space!
                                                requires+provides112_0
                                                space_0)
                                               (void))
                                             (let ((need-except?_0
                                                    (if bulk-callback93_0
                                                      (|#%app|
                                                       bulk-callback93_0
                                                       provides_0
                                                       provide-phase+space_0)
                                                      #f)))
                                               (if bind?88_0
                                                 (begin
                                                   (if filter92_0
                                                     (begin
                                                       (let ((lst_0
                                                              (if only85_0
                                                                only85_0
                                                                (hash-keys
                                                                 provides_0))))
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_1
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (lst_1)
                                                                 (begin
                                                                   (if (pair?
                                                                        lst_1)
                                                                     (let ((sym_0
                                                                            (unsafe-car
                                                                             lst_1)))
                                                                       (let ((rest_0
                                                                              (unsafe-cdr
                                                                               lst_1)))
                                                                         (begin
                                                                           (let ((binding/p_0
                                                                                  (hash-ref
                                                                                   provides_0
                                                                                   sym_0
                                                                                   #f)))
                                                                             (if binding/p_0
                                                                               (let ((b_0
                                                                                      (provide-binding-to-require-binding.1
                                                                                       mpi110_0
                                                                                       phase+space-shift_0
                                                                                       provide-phase+space_0
                                                                                       self_0
                                                                                       binding/p_0
                                                                                       sym_0)))
                                                                                 (let ((sym_1
                                                                                        (|#%app|
                                                                                         filter92_0
                                                                                         b_0
                                                                                         (provided-as-transformer?
                                                                                          binding/p_0))))
                                                                                   (if (if sym_1
                                                                                         (not
                                                                                          can-bulk?89_0)
                                                                                         #f)
                                                                                     (let ((temp355_0
                                                                                            (add-space-scope
                                                                                             (datum->syntax$1
                                                                                              in-stx106_0
                                                                                              sym_1)
                                                                                             space_0)))
                                                                                       (add-binding!.1
                                                                                        #f
                                                                                        #f
                                                                                        temp355_0
                                                                                        b_0
                                                                                        phase_0))
                                                                                     (void))))
                                                                               (void)))
                                                                           (for-loop_1
                                                                            rest_0))))
                                                                     (values)))))))
                                                            (for-loop_1
                                                             lst_0))))
                                                       (void))
                                                     (void))
                                                   (if can-bulk?89_0
                                                     (let ((bulk-binding-registry_0
                                                            (namespace-bulk-binding-registry
                                                             ns109_0)))
                                                       (let ((temp358_0
                                                              (add-space-scope
                                                               in-stx106_0
                                                               space_0)))
                                                         (let ((temp359_0
                                                                (bulk-binding12.1
                                                                 (let ((or-part_0
                                                                        (if (not
                                                                             bulk-prefix90_0)
                                                                          (if (zero?
                                                                               (hash-count
                                                                                bulk-excepts91_0))
                                                                            provides_0
                                                                            #f)
                                                                          #f)))
                                                                   (if or-part_0
                                                                     or-part_0
                                                                     (if (not
                                                                          (registered-bulk-provide?
                                                                           bulk-binding-registry_0
                                                                           module-name111_0))
                                                                       (bulk-provides-add-prefix-remove-exceptions
                                                                        provides_0
                                                                        bulk-prefix90_0
                                                                        bulk-excepts91_0)
                                                                       #f)))
                                                                 bulk-prefix90_0
                                                                 bulk-excepts91_0
                                                                 self_0
                                                                 mpi110_0
                                                                 provide-phase+space_0
                                                                 phase-shift107_0
                                                                 bulk-binding-registry_0)))
                                                           (let ((temp362_0
                                                                  (if need-except?_0
                                                                    defines-mpi84_0
                                                                    #f)))
                                                             (let ((temp359_1
                                                                    temp359_0)
                                                                   (temp358_1
                                                                    temp358_0))
                                                               (add-bulk-binding!.1
                                                                in83_0
                                                                temp362_0
                                                                temp358_1
                                                                temp359_1
                                                                phase_0))))))
                                                     (void)))
                                                 (void)))))))
                                     (values))
                                   (values)))
                               (case-lambda
                                (() (for-loop_0 (hash-iterate-next ht_0 i_0)))
                                (args
                                 (raise-binding-result-arity-error 0 args)))))
                             (args (raise-binding-result-arity-error 2 args))))
                           (values)))))))
                  (for-loop_0 (hash-iterate-first ht_0)))))
             (void))))))))
(define require-spec-shift-for-syntax
  (lambda (req_0)
    (let ((rebuild-req_0
           (|#%name|
            rebuild-req
            (lambda (req_1 new-req_0)
              (begin (datum->syntax$1 req_1 new-req_0 req_1 req_1))))))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (shifted?_0)
            (begin
              (lambda (req_1)
                (let ((fm_0
                       (if (pair? (syntax-e$1 req_1))
                         (if (identifier? (car (syntax-e$1 req_1)))
                           (syntax-e$1 (car (syntax-e$1 req_1)))
                           #f)
                         #f)))
                  (if (eq? fm_0 'for-meta)
                    (call-with-values
                     (lambda ()
                       (call-with-values
                        (lambda ()
                          (let ((s_0
                                 (if (syntax?$1 req_1)
                                   (syntax-e$1 req_1)
                                   req_1)))
                            (if (pair? s_0)
                              (let ((for-meta366_0
                                     (let ((s_1 (car s_0))) s_1)))
                                (call-with-values
                                 (lambda ()
                                   (let ((s_1 (cdr s_0)))
                                     (let ((s_2
                                            (if (syntax?$1 s_1)
                                              (syntax-e$1 s_1)
                                              s_1)))
                                       (if (pair? s_2)
                                         (let ((phase-level369_0
                                                (let ((s_3 (car s_2))) s_3)))
                                           (let ((spec370_0
                                                  (let ((s_3 (cdr s_2)))
                                                    (let ((s_4
                                                           (if (syntax?$1 s_3)
                                                             (syntax-e$1 s_3)
                                                             s_3)))
                                                      (let ((flat-s_0
                                                             (to-syntax-list.1
                                                              s_4)))
                                                        (if (not flat-s_0)
                                                          (raise-syntax-error$1
                                                           #f
                                                           "bad syntax"
                                                           req_1)
                                                          flat-s_0))))))
                                             (let ((phase-level369_1
                                                    phase-level369_0))
                                               (values
                                                phase-level369_1
                                                spec370_0))))
                                         (raise-syntax-error$1
                                          #f
                                          "bad syntax"
                                          req_1)))))
                                 (case-lambda
                                  ((phase-level367_0 spec368_0)
                                   (let ((for-meta366_1 for-meta366_0))
                                     (values
                                      for-meta366_1
                                      phase-level367_0
                                      spec368_0)))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))
                              (raise-syntax-error$1 #f "bad syntax" req_1))))
                        (case-lambda
                         ((for-meta363_0 phase-level364_0 spec365_0)
                          (values #t for-meta363_0 phase-level364_0 spec365_0))
                         (args (raise-binding-result-arity-error 3 args)))))
                     (case-lambda
                      ((ok?_0 for-meta363_0 phase-level364_0 spec365_0)
                       (let ((p_0 (syntax-e$1 phase-level364_0)))
                         (begin
                           (if (phase? p_0)
                             (void)
                             (raise-syntax-error$1 #f "bad phase" req_1))
                           (let ((new-req_0
                                  (let ((app_0 (phase+ p_0 1)))
                                    (list*
                                     for-meta363_0
                                     app_0
                                     (map_1346 (loop_0 #t) spec365_0)))))
                             (begin-unsafe
                              (begin
                                (datum->syntax$1
                                 req_1
                                 new-req_0
                                 req_1
                                 req_1)))))))
                      (args (raise-binding-result-arity-error 4 args))))
                    (if (eq? fm_0 'for-syntax)
                      (call-with-values
                       (lambda ()
                         (call-with-values
                          (lambda ()
                            (let ((s_0
                                   (if (syntax?$1 req_1)
                                     (syntax-e$1 req_1)
                                     req_1)))
                              (if (pair? s_0)
                                (let ((for-syntax373_0
                                       (let ((s_1 (car s_0))) s_1)))
                                  (let ((spec374_0
                                         (let ((s_1 (cdr s_0)))
                                           (let ((s_2
                                                  (if (syntax?$1 s_1)
                                                    (syntax-e$1 s_1)
                                                    s_1)))
                                             (let ((flat-s_0
                                                    (to-syntax-list.1 s_2)))
                                               (if (not flat-s_0)
                                                 (raise-syntax-error$1
                                                  #f
                                                  "bad syntax"
                                                  req_1)
                                                 flat-s_0))))))
                                    (let ((for-syntax373_1 for-syntax373_0))
                                      (values for-syntax373_1 spec374_0))))
                                (raise-syntax-error$1 #f "bad syntax" req_1))))
                          (case-lambda
                           ((for-syntax371_0 spec372_0)
                            (values #t for-syntax371_0 spec372_0))
                           (args (raise-binding-result-arity-error 2 args)))))
                       (case-lambda
                        ((ok?_0 for-syntax371_0 spec372_0)
                         (let ((new-req_0
                                (list*
                                 'for-meta
                                 2
                                 (map_1346 (loop_0 #t) spec372_0))))
                           (begin-unsafe
                            (begin
                              (datum->syntax$1 req_1 new-req_0 req_1 req_1)))))
                        (args (raise-binding-result-arity-error 3 args))))
                      (if (eq? fm_0 'for-template)
                        (call-with-values
                         (lambda ()
                           (call-with-values
                            (lambda ()
                              (let ((s_0
                                     (if (syntax?$1 req_1)
                                       (syntax-e$1 req_1)
                                       req_1)))
                                (if (pair? s_0)
                                  (let ((for-template377_0
                                         (let ((s_1 (car s_0))) s_1)))
                                    (let ((spec378_0
                                           (let ((s_1 (cdr s_0)))
                                             (let ((s_2
                                                    (if (syntax?$1 s_1)
                                                      (syntax-e$1 s_1)
                                                      s_1)))
                                               (let ((flat-s_0
                                                      (to-syntax-list.1 s_2)))
                                                 (if (not flat-s_0)
                                                   (raise-syntax-error$1
                                                    #f
                                                    "bad syntax"
                                                    req_1)
                                                   flat-s_0))))))
                                      (let ((for-template377_1
                                             for-template377_0))
                                        (values for-template377_1 spec378_0))))
                                  (raise-syntax-error$1
                                   #f
                                   "bad syntax"
                                   req_1))))
                            (case-lambda
                             ((for-template375_0 spec376_0)
                              (values #t for-template375_0 spec376_0))
                             (args
                              (raise-binding-result-arity-error 2 args)))))
                         (case-lambda
                          ((ok?_0 for-template375_0 spec376_0)
                           (let ((new-req_0
                                  (list*
                                   'for-meta
                                   0
                                   (map_1346 (loop_0 #t) spec376_0))))
                             (begin-unsafe
                              (begin
                                (datum->syntax$1
                                 req_1
                                 new-req_0
                                 req_1
                                 req_1)))))
                          (args (raise-binding-result-arity-error 3 args))))
                        (if (eq? fm_0 'for-label)
                          (call-with-values
                           (lambda ()
                             (call-with-values
                              (lambda ()
                                (let ((s_0
                                       (if (syntax?$1 req_1)
                                         (syntax-e$1 req_1)
                                         req_1)))
                                  (if (pair? s_0)
                                    (let ((for-label381_0
                                           (let ((s_1 (car s_0))) s_1)))
                                      (let ((spec382_0
                                             (let ((s_1 (cdr s_0)))
                                               (let ((s_2
                                                      (if (syntax?$1 s_1)
                                                        (syntax-e$1 s_1)
                                                        s_1)))
                                                 (let ((flat-s_0
                                                        (to-syntax-list.1
                                                         s_2)))
                                                   (if (not flat-s_0)
                                                     (raise-syntax-error$1
                                                      #f
                                                      "bad syntax"
                                                      req_1)
                                                     flat-s_0))))))
                                        (let ((for-label381_1 for-label381_0))
                                          (values for-label381_1 spec382_0))))
                                    (raise-syntax-error$1
                                     #f
                                     "bad syntax"
                                     req_1))))
                              (case-lambda
                               ((for-label379_0 spec380_0)
                                (values #t for-label379_0 spec380_0))
                               (args
                                (raise-binding-result-arity-error 2 args)))))
                           (case-lambda
                            ((ok?_0 for-label379_0 spec380_0)
                             (let ((new-req_0
                                    (list*
                                     for-label379_0
                                     (map_1346 (loop_0 #t) spec380_0))))
                               (begin-unsafe
                                (begin
                                  (datum->syntax$1
                                   req_1
                                   new-req_0
                                   req_1
                                   req_1)))))
                            (args (raise-binding-result-arity-error 3 args))))
                          (if (eq? fm_0 'just-meta)
                            (call-with-values
                             (lambda ()
                               (call-with-values
                                (lambda ()
                                  (let ((s_0
                                         (if (syntax?$1 req_1)
                                           (syntax-e$1 req_1)
                                           req_1)))
                                    (if (pair? s_0)
                                      (let ((just-meta386_0
                                             (let ((s_1 (car s_0))) s_1)))
                                        (call-with-values
                                         (lambda ()
                                           (let ((s_1 (cdr s_0)))
                                             (let ((s_2
                                                    (if (syntax?$1 s_1)
                                                      (syntax-e$1 s_1)
                                                      s_1)))
                                               (if (pair? s_2)
                                                 (let ((phase-level389_0
                                                        (let ((s_3 (car s_2)))
                                                          s_3)))
                                                   (let ((spec390_0
                                                          (let ((s_3
                                                                 (cdr s_2)))
                                                            (let ((s_4
                                                                   (if (syntax?$1
                                                                        s_3)
                                                                     (syntax-e$1
                                                                      s_3)
                                                                     s_3)))
                                                              (let ((flat-s_0
                                                                     (to-syntax-list.1
                                                                      s_4)))
                                                                (if (not
                                                                     flat-s_0)
                                                                  (raise-syntax-error$1
                                                                   #f
                                                                   "bad syntax"
                                                                   req_1)
                                                                  flat-s_0))))))
                                                     (let ((phase-level389_1
                                                            phase-level389_0))
                                                       (values
                                                        phase-level389_1
                                                        spec390_0))))
                                                 (raise-syntax-error$1
                                                  #f
                                                  "bad syntax"
                                                  req_1)))))
                                         (case-lambda
                                          ((phase-level387_0 spec388_0)
                                           (let ((just-meta386_1
                                                  just-meta386_0))
                                             (values
                                              just-meta386_1
                                              phase-level387_0
                                              spec388_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args)))))
                                      (raise-syntax-error$1
                                       #f
                                       "bad syntax"
                                       req_1))))
                                (case-lambda
                                 ((just-meta383_0 phase-level384_0 spec385_0)
                                  (values
                                   #t
                                   just-meta383_0
                                   phase-level384_0
                                   spec385_0))
                                 (args
                                  (raise-binding-result-arity-error 3 args)))))
                             (case-lambda
                              ((ok?_0
                                just-meta383_0
                                phase-level384_0
                                spec385_0)
                               (let ((new-req_0
                                      (list*
                                       just-meta383_0
                                       phase-level384_0
                                       (map_1346 (loop_0 #f) spec385_0))))
                                 (begin-unsafe
                                  (begin
                                    (datum->syntax$1
                                     req_1
                                     new-req_0
                                     req_1
                                     req_1)))))
                              (args
                               (raise-binding-result-arity-error 4 args))))
                            (if shifted?_0
                              req_1
                              (datum->syntax$1
                               #f
                               (list 'for-syntax req_1)))))))))))))))
       (|#%app| (loop_0 #f) req_0)))))
(define copy-namespace-value
  (lambda (m-ns_0
           adjusted-sym_0
           binding_0
           phase-level_0
           phase-shift_0
           as-constant?_0)
    (let ((i-ns_0
           (let ((temp392_0
                  (1/module-path-index-resolve
                   (module-binding-module binding_0))))
             (let ((temp393_0
                    (let ((app_0
                           (phase-
                            (module-binding-phase binding_0)
                            phase-level_0)))
                      (phase+ app_0 (namespace-phase m-ns_0)))))
               (let ((temp392_1 temp392_0))
                 (namespace->module-namespace.1
                  #f
                  #t
                  void
                  m-ns_0
                  temp392_1
                  temp393_0))))))
      (let ((val_0
             (let ((app_0 (module-binding-phase binding_0)))
               (namespace-get-variable
                i-ns_0
                app_0
                (module-binding-sym binding_0)
                (lambda ()
                  (error
                   'namespace-require/copy
                   (let ((app_1
                          (string-append
                           "namespace mismatch;\n"
                           " variable not found\n"
                           "  module: ~a\n"
                           "  variable name: ~s\n"
                           "  phase level: ~s")))
                     (let ((app_2 (module-binding-module binding_0)))
                       (let ((app_3 (module-binding-sym binding_0)))
                         (format
                          app_1
                          app_2
                          app_3
                          (module-binding-phase binding_0)))))))))))
        (namespace-set-variable!
         m-ns_0
         (phase+ phase-shift_0 phase-level_0)
         adjusted-sym_0
         val_0
         as-constant?_0)))))
(define perform-portal-syntax-bind!.1
  (|#%name|
   perform-portal-syntax-bind!
   (lambda (add-defined-portal118_0
            orig-s114_0
            phase-shift115_0
            requires+provides117_0
            self116_0
            id124_0
            portal-stx125_0)
     (begin
       (let ((sym_0
              (if add-defined-portal118_0
                (|#%app|
                 add-defined-portal118_0
                 id124_0
                 phase-shift115_0
                 portal-stx125_0
                 orig-s114_0)
                (syntax-e$1 id124_0))))
         (let ((temp398_0
                (if self116_0 self116_0 top-level-module-path-index)))
           (let ((binding_0
                  (make-module-binding.1
                   #f
                   null
                   #f
                   #f
                   unsafe-undefined
                   unsafe-undefined
                   0
                   unsafe-undefined
                   temp398_0
                   phase-shift115_0
                   sym_0)))
             (add-binding!.1 #f #f id124_0 binding_0 phase-shift115_0))))))))
(define top-level-instance
  (make-instance
   'top-level
   #f
   'constant
   top-level-bind!-id
   (lambda (id_0
            mpi_0
            orig-phase_0
            phase-shift_0
            ns_0
            sym_0
            trans?_0
            trans-val_0)
     (let ((phase_0 (phase+ orig-phase_0 phase-shift_0)))
       (let ((b_0
              (let ((temp7_0
                     (let ((v_0 (namespace-get-root-expand-ctx ns_0)))
                       (begin-unsafe
                        (root-expand-context/outer-frame-id v_0)))))
                (make-module-binding.1
                 #f
                 null
                 temp7_0
                 #f
                 unsafe-undefined
                 unsafe-undefined
                 0
                 unsafe-undefined
                 mpi_0
                 phase_0
                 sym_0))))
         (begin
           (add-binding!.1 #f #f id_0 b_0 phase_0)
           (if trans?_0
             (if trans-val_0
               (maybe-install-free=id! trans-val_0 id_0 phase_0)
               (void))
             (namespace-unset-transformer! ns_0 phase_0 sym_0))))))
   top-level-require!-id
   (lambda (stx_0 ns_0 syms_0)
     (let ((reqs_0 (cdr (syntax->list$1 stx_0))))
       (let ((temp13_0 (namespace-self-mpi/no-top-level ns_0)))
         (let ((temp14_0 (namespace-phase ns_0)))
           (let ((temp15_0 (make-requires+provides.1 #f unsafe-undefined #f)))
             (let ((temp18_0
                    (lambda (id_0 phase_0 portal-stx_0 orig-s_0)
                      (let ((sym_0
                             (if (pair? syms_0)
                               (begin0 (car syms_0) (set! syms_0 (cdr syms_0)))
                               (syntax-e$1 id_0))))
                        (begin
                          (if phase_0
                            (let ((t_0 (portal-syntax1.1 portal-stx_0)))
                              (namespace-set-transformer!
                               ns_0
                               phase_0
                               sym_0
                               t_0))
                            (void))
                          sym_0)))))
               (let ((temp15_1 temp15_0)
                     (temp14_1 temp14_0)
                     (temp13_1 temp13_0))
                 (parse-and-perform-requires!.1
                  temp18_0
                  #f
                  #f
                  #f
                  hash2610
                  #t
                  unsafe-undefined
                  #t
                  temp13_1
                  #f
                  #f
                  'require
                  reqs_0
                  #f
                  ns_0
                  temp14_1
                  temp15_1))))))))))
(define finish_2787
  (make-struct-type-install-properties
   '(compiled-in-memory)
   15
   0
   #f
   (list
    (cons
     prop:custom-write
     (lambda (cim_0 port_0 mode_0)
       (write (compiled-in-memory-linklet-directory cim_0) port_0))))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
   #f
   'compiled-in-memory))
(define struct:compiled-in-memory
  (make-record-type-descriptor
   'compiled-in-memory
   #f
   (|#%nongenerative-uid| compiled-in-memory)
   #f
   #f
   '(15 . 0)))
(define effect_2572 (finish_2787 struct:compiled-in-memory))
(define compiled-in-memory1.1
  (|#%name|
   compiled-in-memory
   (record-constructor
    (make-record-constructor-descriptor struct:compiled-in-memory #f #f))))
(define compiled-in-memory?_2116
  (|#%name| compiled-in-memory? (record-predicate struct:compiled-in-memory)))
(define compiled-in-memory?
  (|#%name|
   compiled-in-memory?
   (lambda (v)
     (if (compiled-in-memory?_2116 v)
       #t
       ($value
        (if (impersonator? v)
          (compiled-in-memory?_2116 (impersonator-val v))
          #f))))))
(define compiled-in-memory-linklet-directory_1980
  (|#%name|
   compiled-in-memory-linklet-directory
   (record-accessor struct:compiled-in-memory 0)))
(define compiled-in-memory-linklet-directory
  (|#%name|
   compiled-in-memory-linklet-directory
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-linklet-directory_1980 s)
       ($value
        (impersonate-ref
         compiled-in-memory-linklet-directory_1980
         struct:compiled-in-memory
         0
         s
         'linklet-directory))))))
(define compiled-in-memory-original-self_2522
  (|#%name|
   compiled-in-memory-original-self
   (record-accessor struct:compiled-in-memory 1)))
(define compiled-in-memory-original-self
  (|#%name|
   compiled-in-memory-original-self
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-original-self_2522 s)
       ($value
        (impersonate-ref
         compiled-in-memory-original-self_2522
         struct:compiled-in-memory
         1
         s
         'original-self))))))
(define compiled-in-memory-requires_2380
  (|#%name|
   compiled-in-memory-requires
   (record-accessor struct:compiled-in-memory 2)))
(define compiled-in-memory-requires
  (|#%name|
   compiled-in-memory-requires
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-requires_2380 s)
       ($value
        (impersonate-ref
         compiled-in-memory-requires_2380
         struct:compiled-in-memory
         2
         s
         'requires))))))
(define compiled-in-memory-recur-requires_2636
  (|#%name|
   compiled-in-memory-recur-requires
   (record-accessor struct:compiled-in-memory 3)))
(define compiled-in-memory-recur-requires
  (|#%name|
   compiled-in-memory-recur-requires
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-recur-requires_2636 s)
       ($value
        (impersonate-ref
         compiled-in-memory-recur-requires_2636
         struct:compiled-in-memory
         3
         s
         'recur-requires))))))
(define compiled-in-memory-provides_2832
  (|#%name|
   compiled-in-memory-provides
   (record-accessor struct:compiled-in-memory 4)))
(define compiled-in-memory-provides
  (|#%name|
   compiled-in-memory-provides
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-provides_2832 s)
       ($value
        (impersonate-ref
         compiled-in-memory-provides_2832
         struct:compiled-in-memory
         4
         s
         'provides))))))
(define compiled-in-memory-phase-to-link-module-uses_2366
  (|#%name|
   compiled-in-memory-phase-to-link-module-uses
   (record-accessor struct:compiled-in-memory 5)))
(define compiled-in-memory-phase-to-link-module-uses
  (|#%name|
   compiled-in-memory-phase-to-link-module-uses
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-phase-to-link-module-uses_2366 s)
       ($value
        (impersonate-ref
         compiled-in-memory-phase-to-link-module-uses_2366
         struct:compiled-in-memory
         5
         s
         'phase-to-link-module-uses))))))
(define compiled-in-memory-compile-time-inspector_2805
  (|#%name|
   compiled-in-memory-compile-time-inspector
   (record-accessor struct:compiled-in-memory 6)))
(define compiled-in-memory-compile-time-inspector
  (|#%name|
   compiled-in-memory-compile-time-inspector
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-compile-time-inspector_2805 s)
       ($value
        (impersonate-ref
         compiled-in-memory-compile-time-inspector_2805
         struct:compiled-in-memory
         6
         s
         'compile-time-inspector))))))
(define compiled-in-memory-phase-to-link-extra-inspectorsss_2702
  (|#%name|
   compiled-in-memory-phase-to-link-extra-inspectorsss
   (record-accessor struct:compiled-in-memory 7)))
(define compiled-in-memory-phase-to-link-extra-inspectorsss
  (|#%name|
   compiled-in-memory-phase-to-link-extra-inspectorsss
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-phase-to-link-extra-inspectorsss_2702 s)
       ($value
        (impersonate-ref
         compiled-in-memory-phase-to-link-extra-inspectorsss_2702
         struct:compiled-in-memory
         7
         s
         'phase-to-link-extra-inspectorsss))))))
(define compiled-in-memory-portal-stxes_2316
  (|#%name|
   compiled-in-memory-portal-stxes
   (record-accessor struct:compiled-in-memory 8)))
(define compiled-in-memory-portal-stxes
  (|#%name|
   compiled-in-memory-portal-stxes
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-portal-stxes_2316 s)
       ($value
        (impersonate-ref
         compiled-in-memory-portal-stxes_2316
         struct:compiled-in-memory
         8
         s
         'portal-stxes))))))
(define compiled-in-memory-mpis_1964
  (|#%name|
   compiled-in-memory-mpis
   (record-accessor struct:compiled-in-memory 9)))
(define compiled-in-memory-mpis
  (|#%name|
   compiled-in-memory-mpis
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-mpis_1964 s)
       ($value
        (impersonate-ref
         compiled-in-memory-mpis_1964
         struct:compiled-in-memory
         9
         s
         'mpis))))))
(define compiled-in-memory-syntax-literals_2482
  (|#%name|
   compiled-in-memory-syntax-literals
   (record-accessor struct:compiled-in-memory 10)))
(define compiled-in-memory-syntax-literals
  (|#%name|
   compiled-in-memory-syntax-literals
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-syntax-literals_2482 s)
       ($value
        (impersonate-ref
         compiled-in-memory-syntax-literals_2482
         struct:compiled-in-memory
         10
         s
         'syntax-literals))))))
(define compiled-in-memory-pre-compiled-in-memorys_2598
  (|#%name|
   compiled-in-memory-pre-compiled-in-memorys
   (record-accessor struct:compiled-in-memory 11)))
(define compiled-in-memory-pre-compiled-in-memorys
  (|#%name|
   compiled-in-memory-pre-compiled-in-memorys
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-pre-compiled-in-memorys_2598 s)
       ($value
        (impersonate-ref
         compiled-in-memory-pre-compiled-in-memorys_2598
         struct:compiled-in-memory
         11
         s
         'pre-compiled-in-memorys))))))
(define compiled-in-memory-post-compiled-in-memorys_2374
  (|#%name|
   compiled-in-memory-post-compiled-in-memorys
   (record-accessor struct:compiled-in-memory 12)))
(define compiled-in-memory-post-compiled-in-memorys
  (|#%name|
   compiled-in-memory-post-compiled-in-memorys
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-post-compiled-in-memorys_2374 s)
       ($value
        (impersonate-ref
         compiled-in-memory-post-compiled-in-memorys_2374
         struct:compiled-in-memory
         12
         s
         'post-compiled-in-memorys))))))
(define compiled-in-memory-namespace-scopes_2621
  (|#%name|
   compiled-in-memory-namespace-scopes
   (record-accessor struct:compiled-in-memory 13)))
(define compiled-in-memory-namespace-scopes
  (|#%name|
   compiled-in-memory-namespace-scopes
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-namespace-scopes_2621 s)
       ($value
        (impersonate-ref
         compiled-in-memory-namespace-scopes_2621
         struct:compiled-in-memory
         13
         s
         'namespace-scopes))))))
(define compiled-in-memory-purely-functional?_2942
  (|#%name|
   compiled-in-memory-purely-functional?
   (record-accessor struct:compiled-in-memory 14)))
(define compiled-in-memory-purely-functional?
  (|#%name|
   compiled-in-memory-purely-functional?
   (lambda (s)
     (if (compiled-in-memory?_2116 s)
       (compiled-in-memory-purely-functional?_2942 s)
       ($value
        (impersonate-ref
         compiled-in-memory-purely-functional?_2942
         struct:compiled-in-memory
         14
         s
         'purely-functional?))))))
(define version-bytes$1 (string->bytes/utf-8 (version)))
(define vm-bytes$1 (linklet-virtual-machine-bytes))
(define datum->syntax$3 datum->syntax)
(define syntax-property$2 syntax-property)
(define syntax-span$2 syntax-span)
(define syntax-position$2 syntax-position)
(define syntax-column$2 syntax-column)
(define syntax-line$2 syntax-line)
(define syntax-source$2 syntax-source)
(define syntax-e$2 syntax-e)
(define 1/syntax? syntax?)
(define correlated? (lambda (e_0) (syntax? e_0)))
(define datum->correlated
  (let ((datum->correlated_0
         (|#%name|
          datum->correlated
          (lambda (d2_0 srcloc1_0)
            (begin (datum->syntax #f d2_0 srcloc1_0))))))
    (case-lambda
     ((d_0) (datum->correlated_0 d_0 #f))
     ((d_0 srcloc1_0) (datum->correlated_0 d_0 srcloc1_0)))))
(define correlated-e (lambda (e_0) (if (syntax? e_0) (syntax-e e_0) e_0)))
(define correlated-cadr
  (lambda (e_0) (car (correlated-e (cdr (correlated-e e_0))))))
(define correlated-length
  (lambda (e_0)
    (let ((l_0 (correlated-e e_0))) (if (list? l_0) (length l_0) #f))))
(define correlated->list
  (lambda (e_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (e_1)
          (begin
            (if (list? e_1)
              e_1
              (if (pair? e_1)
                (let ((app_0 (car e_1))) (cons app_0 (loop_0 (cdr e_1))))
                (if (null? e_1)
                  null
                  (if (syntax? e_1)
                    (loop_0 (syntax-e e_1))
                    (error 'correlated->list "not a list"))))))))))
     (loop_0 e_0))))
(define correlated-property
  (case-lambda
   ((e_0 k_0) (syntax-property e_0 k_0))
   ((e_0 k_0 v_0) (syntax-property e_0 k_0 v_0))))
(define to-syntax-list.1$1
  (|#%name|
   to-syntax-list
   (lambda (s_0)
     (begin
       (if (list? s_0)
         s_0
         (if (pair? s_0)
           (let ((r_0 (to-syntax-list.1$1 (cdr s_0))))
             (if r_0 (cons (car s_0) r_0) #f))
           (if (syntax? s_0) (to-syntax-list.1$1 (syntax-e s_0)) #f)))))))
(define correlated-source (lambda (s_0) (syntax-source s_0)))
(define correlated-line (lambda (s_0) (syntax-line s_0)))
(define correlated-column (lambda (s_0) (syntax-column s_0)))
(define correlated-position (lambda (s_0) (syntax-position s_0)))
(define correlated-span (lambda (s_0) (syntax-span s_0)))
(define finish_2248
  (make-struct-type-install-properties
   '(correlated-linklet)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'correlated-linklet))
(define struct:correlated-linklet
  (make-record-type-descriptor
   'correlated-linklet
   #f
   (|#%nongenerative-uid| correlated-linklet)
   #f
   #f
   '(3 . 4)))
(define effect_2738 (finish_2248 struct:correlated-linklet))
(define correlated-linklet1.1
  (|#%name|
   correlated-linklet
   (record-constructor
    (make-record-constructor-descriptor struct:correlated-linklet #f #f))))
(define correlated-linklet?
  (|#%name| correlated-linklet? (record-predicate struct:correlated-linklet)))
(define correlated-linklet-expr
  (|#%name|
   correlated-linklet-expr
   (record-accessor struct:correlated-linklet 0)))
(define correlated-linklet-name
  (|#%name|
   correlated-linklet-name
   (record-accessor struct:correlated-linklet 1)))
(define correlated-linklet-compiled
  (|#%name|
   correlated-linklet-compiled
   (record-accessor struct:correlated-linklet 2)))
(define set-correlated-linklet-compiled!
  (|#%name|
   set-correlated-linklet-compiled!
   (record-mutator struct:correlated-linklet 2)))
(define make-correlated-linklet
  (lambda (expr_0 name_0) (correlated-linklet1.1 expr_0 name_0 #f)))
(define force-compile-linklet
  (lambda (l_0)
    (if (correlated-linklet? l_0)
      (let ((or-part_0 (correlated-linklet-compiled l_0)))
        (if or-part_0
          or-part_0
          (let ((c_0
                 (compile-linklet
                  (correlated-linklet-expr l_0)
                  (correlated-linklet-name l_0))))
            (begin (set-correlated-linklet-compiled! l_0 c_0) c_0))))
      l_0)))
(define eval-correlated-linklet
  (lambda (l_0)
    (if (correlated-linklet? l_0)
      (eval-linklet
       (compile-linklet
        (correlated-linklet-expr l_0)
        (correlated-linklet-name l_0)
        #f
        #f
        '()))
      (error
       'eval-correlated-linklet
       "cannot evaluate unknown linklet: ~s"
       l_0))))
(define correlated-linklet-vm-bytes #vu8(108 105 110 107 108 101 116))
(define finish_2389
  (make-struct-type-install-properties
   '(faslable-correlated)
   7
   0
   #f
   null
   'prefab
   #f
   '(0 1 2 3 4 5 6)
   #f
   'faslable-correlated))
(define struct:faslable-correlated
  (make-record-type-descriptor
   'faslable-correlated
   #f
   (structure-type-lookup-prefab-uid
    'faslable-correlated
    #f
    7
    0
    #f
    '(0 1 2 3 4 5 6))
   #f
   #f
   '(7 . 127)))
(define effect_2370 (finish_2389 struct:faslable-correlated))
(define faslable-correlated2.1
  (|#%name|
   faslable-correlated
   (record-constructor
    (make-record-constructor-descriptor struct:faslable-correlated #f #f))))
(define faslable-correlated?_2779
  (|#%name|
   faslable-correlated?
   (record-predicate struct:faslable-correlated)))
(define faslable-correlated?
  (|#%name|
   faslable-correlated?
   (lambda (v)
     (if (faslable-correlated?_2779 v)
       #t
       ($value
        (if (impersonator? v)
          (faslable-correlated?_2779 (impersonator-val v))
          #f))))))
(define faslable-correlated-e_2371
  (|#%name|
   faslable-correlated-e
   (record-accessor struct:faslable-correlated 0)))
(define faslable-correlated-e
  (|#%name|
   faslable-correlated-e
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-e_2371 s)
       ($value
        (impersonate-ref
         faslable-correlated-e_2371
         struct:faslable-correlated
         0
         s
         'e))))))
(define faslable-correlated-source_1985
  (|#%name|
   faslable-correlated-source
   (record-accessor struct:faslable-correlated 1)))
(define faslable-correlated-source
  (|#%name|
   faslable-correlated-source
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-source_1985 s)
       ($value
        (impersonate-ref
         faslable-correlated-source_1985
         struct:faslable-correlated
         1
         s
         'source))))))
(define faslable-correlated-position_2283
  (|#%name|
   faslable-correlated-position
   (record-accessor struct:faslable-correlated 2)))
(define faslable-correlated-position
  (|#%name|
   faslable-correlated-position
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-position_2283 s)
       ($value
        (impersonate-ref
         faslable-correlated-position_2283
         struct:faslable-correlated
         2
         s
         'position))))))
(define faslable-correlated-line_2531
  (|#%name|
   faslable-correlated-line
   (record-accessor struct:faslable-correlated 3)))
(define faslable-correlated-line
  (|#%name|
   faslable-correlated-line
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-line_2531 s)
       ($value
        (impersonate-ref
         faslable-correlated-line_2531
         struct:faslable-correlated
         3
         s
         'line))))))
(define faslable-correlated-column_2707
  (|#%name|
   faslable-correlated-column
   (record-accessor struct:faslable-correlated 4)))
(define faslable-correlated-column
  (|#%name|
   faslable-correlated-column
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-column_2707 s)
       ($value
        (impersonate-ref
         faslable-correlated-column_2707
         struct:faslable-correlated
         4
         s
         'column))))))
(define faslable-correlated-span_2176
  (|#%name|
   faslable-correlated-span
   (record-accessor struct:faslable-correlated 5)))
(define faslable-correlated-span
  (|#%name|
   faslable-correlated-span
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-span_2176 s)
       ($value
        (impersonate-ref
         faslable-correlated-span_2176
         struct:faslable-correlated
         5
         s
         'span))))))
(define faslable-correlated-props_2838
  (|#%name|
   faslable-correlated-props
   (record-accessor struct:faslable-correlated 6)))
(define faslable-correlated-props
  (|#%name|
   faslable-correlated-props
   (lambda (s)
     (if (faslable-correlated?_2779 s)
       (faslable-correlated-props_2838 s)
       ($value
        (impersonate-ref
         faslable-correlated-props_2838
         struct:faslable-correlated
         6
         s
         'props))))))
(define finish_2803
  (make-struct-type-install-properties
   '(faslable-correlated-linklet)
   2
   0
   #f
   null
   'prefab
   #f
   '(0 1)
   #f
   'faslable-correlated-linklet))
(define struct:faslable-correlated-linklet
  (make-record-type-descriptor
   'faslable-correlated-linklet
   #f
   (structure-type-lookup-prefab-uid
    'faslable-correlated-linklet
    #f
    2
    0
    #f
    '(0 1))
   #f
   #f
   '(2 . 3)))
(define effect_2374 (finish_2803 struct:faslable-correlated-linklet))
(define faslable-correlated-linklet3.1
  (|#%name|
   faslable-correlated-linklet
   (record-constructor
    (make-record-constructor-descriptor
     struct:faslable-correlated-linklet
     #f
     #f))))
(define faslable-correlated-linklet?_2542
  (|#%name|
   faslable-correlated-linklet?
   (record-predicate struct:faslable-correlated-linklet)))
(define faslable-correlated-linklet?
  (|#%name|
   faslable-correlated-linklet?
   (lambda (v)
     (if (faslable-correlated-linklet?_2542 v)
       #t
       ($value
        (if (impersonator? v)
          (faslable-correlated-linklet?_2542 (impersonator-val v))
          #f))))))
(define faslable-correlated-linklet-expr_2739
  (|#%name|
   faslable-correlated-linklet-expr
   (record-accessor struct:faslable-correlated-linklet 0)))
(define faslable-correlated-linklet-expr
  (|#%name|
   faslable-correlated-linklet-expr
   (lambda (s)
     (if (faslable-correlated-linklet?_2542 s)
       (faslable-correlated-linklet-expr_2739 s)
       ($value
        (impersonate-ref
         faslable-correlated-linklet-expr_2739
         struct:faslable-correlated-linklet
         0
         s
         'expr))))))
(define faslable-correlated-linklet-name_2691
  (|#%name|
   faslable-correlated-linklet-name
   (record-accessor struct:faslable-correlated-linklet 1)))
(define faslable-correlated-linklet-name
  (|#%name|
   faslable-correlated-linklet-name
   (lambda (s)
     (if (faslable-correlated-linklet?_2542 s)
       (faslable-correlated-linklet-name_2691 s)
       ($value
        (impersonate-ref
         faslable-correlated-linklet-name_2691
         struct:faslable-correlated-linklet
         1
         s
         'name))))))
(define write-correlated-linklet-bundle-hash
  (lambda (ht_0 o_0)
    (let ((temp7_0 (->faslable ht_0)))
      (s-exp->fasl.1 #f #f #f #f temp7_0 o_0))))
(define ->faslable
  (lambda (v_0)
    (if (pair? v_0)
      (let ((a_0 (->faslable (car v_0))))
        (let ((d_0 (->faslable (cdr v_0))))
          (if (if (eq? a_0 (car v_0)) (eq? d_0 (cdr v_0)) #f)
            v_0
            (cons a_0 d_0))))
      (if (begin-unsafe (syntax? v_0))
        (let ((app_0 (->faslable (correlated-e v_0))))
          (let ((app_1 (begin-unsafe (syntax-source v_0))))
            (let ((app_2 (begin-unsafe (syntax-position v_0))))
              (let ((app_3 (begin-unsafe (syntax-line v_0))))
                (let ((app_4 (begin-unsafe (syntax-column v_0))))
                  (let ((app_5 (begin-unsafe (syntax-span v_0))))
                    (faslable-correlated2.1
                     app_0
                     app_1
                     app_2
                     app_3
                     app_4
                     app_5
                     (let ((lst_0
                            '(inferred-name
                              undefined-error-name
                              method-arity-error
                              compiler-hint:cross-module-inline)))
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (ht_0 lst_1)
                               (begin
                                 (if (pair? lst_1)
                                   (let ((k_0 (unsafe-car lst_1)))
                                     (let ((rest_0 (unsafe-cdr lst_1)))
                                       (let ((ht_1
                                              (let ((ht_1
                                                     (let ((p_0
                                                            (begin-unsafe
                                                             (syntax-property
                                                              v_0
                                                              k_0))))
                                                       (if p_0
                                                         (hash-set
                                                          (if ht_0
                                                            ht_0
                                                            hash2610)
                                                          k_0
                                                          p_0)
                                                         ht_0))))
                                                (values ht_1))))
                                         (for-loop_0 ht_1 rest_0))))
                                   ht_0))))))
                          (for-loop_0 #f lst_0)))))))))))
        (if (hash? v_0)
          (let ((temp10_0
                 (lambda (key_0 value_0)
                   (let ((app_0 (->faslable key_0)))
                     (values app_0 (->faslable value_0))))))
            (hash-map/copy.1 'immutable v_0 temp10_0))
          (if (correlated-linklet? v_0)
            (let ((app_0 (->faslable (correlated-linklet-expr v_0))))
              (faslable-correlated-linklet3.1
               app_0
               (->faslable (correlated-linklet-name v_0))))
            v_0))))))
(define read-correlated-linklet-bundle-hash
  (lambda (in_0) (faslable-> (fasl->s-exp.1 #t unsafe-undefined #f in_0))))
(define faslable->
  (lambda (v_0)
    (if (pair? v_0)
      (let ((a_0 (faslable-> (car v_0))))
        (let ((d_0 (faslable-> (cdr v_0))))
          (if (if (eq? a_0 (car v_0)) (eq? d_0 (cdr v_0)) #f)
            v_0
            (cons a_0 d_0))))
      (if (faslable-correlated? v_0)
        (let ((props_0 (faslable-correlated-props v_0)))
          (let ((c_0
                 (let ((app_0 (faslable-> (faslable-correlated-e v_0))))
                   (datum->correlated
                    app_0
                    (let ((app_1 (faslable-correlated-source v_0)))
                      (let ((app_2 (faslable-correlated-line v_0)))
                        (let ((app_3 (faslable-correlated-column v_0)))
                          (let ((app_4 (faslable-correlated-position v_0)))
                            (vector
                             app_1
                             app_2
                             app_3
                             app_4
                             (faslable-correlated-span v_0))))))))))
            (if props_0
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (c_1 i_0)
                      (begin
                        (if i_0
                          (call-with-values
                           (lambda () (hash-iterate-key+value props_0 i_0))
                           (case-lambda
                            ((k_0 p_0)
                             (let ((c_2
                                    (let ((c_2
                                           (begin-unsafe
                                            (syntax-property c_1 k_0 p_0))))
                                      (values c_2))))
                               (for-loop_0
                                c_2
                                (hash-iterate-next props_0 i_0))))
                            (args (raise-binding-result-arity-error 2 args))))
                          c_1))))))
                 (for-loop_0 c_0 (hash-iterate-first props_0))))
              c_0)))
        (if (hash? v_0)
          (let ((temp15_0
                 (lambda (key_0 value_0)
                   (let ((app_0 (faslable-> key_0)))
                     (values app_0 (faslable-> value_0))))))
            (hash-map/copy.1 'immutable v_0 temp15_0))
          (if (faslable-correlated-linklet? v_0)
            (let ((expr_0 (faslable-> (faslable-correlated-linklet-expr v_0))))
              (let ((name_0
                     (faslable-> (faslable-correlated-linklet-name v_0))))
                (let ((expr_1 expr_0))
                  (begin-unsafe (correlated-linklet1.1 expr_1 name_0 #f)))))
            v_0))))))
(define write-linklet-bundle
  (lambda (b_0 as-correlated-linklet?_0 linklet-bundle->hash_0 port_0)
    (begin
      (write-bytes #vu8(35 126) port_0)
      (write-bytes (bytes (unsafe-bytes-length version-bytes$1)) port_0)
      (write-bytes version-bytes$1 port_0)
      (let ((vm-bytes_0
             (if as-correlated-linklet?_0
               correlated-linklet-vm-bytes
               vm-bytes$1)))
        (begin
          (write-bytes (bytes (unsafe-bytes-length vm-bytes_0)) port_0)
          (write-bytes vm-bytes_0 port_0)))
      (write-bytes #vu8(66) port_0)
      (write-bytes (make-bytes 20 0) port_0)
      (if as-correlated-linklet?_0
        (write-correlated-linklet-bundle-hash
         (|#%app| linklet-bundle->hash_0 b_0)
         port_0)
        (write-linklet-bundle-hash
         (|#%app| linklet-bundle->hash_0 b_0)
         port_0)))))
(define linklet-bundle->bytes
  (lambda (b_0 as-correlated-linklet?_0 linklet-bundle->hash_0)
    (let ((o_0 (open-output-bytes)))
      (begin
        (write-linklet-bundle
         b_0
         as-correlated-linklet?_0
         linklet-bundle->hash_0
         o_0)
        (get-output-bytes o_0)))))
(define write-linklet-directory
  (lambda (ld_0
           as-correlated-linklet?_0
           linklet-directory->hash_0
           linklet-bundle->hash_0
           port_0)
    (let ((vm-bytes_0
           (if as-correlated-linklet?_0
             correlated-linklet-vm-bytes
             vm-bytes$1)))
      (begin
        (write-bytes #vu8(35 126) port_0)
        (begin
          (write-byte (unsafe-bytes-length version-bytes$1) port_0)
          (begin
            (write-bytes version-bytes$1 port_0)
            (begin
              (write-byte (unsafe-bytes-length vm-bytes_0) port_0)
              (begin
                (write-bytes vm-bytes_0 port_0)
                (begin
                  (write-bytes #vu8(68) port_0)
                  (letrec*
                   ((flatten-linklet-directory_0
                     (|#%name|
                      flatten-linklet-directory
                      (lambda (ld_1 rev-name-prefix_0 accum_0)
                        (begin
                          (call-with-values
                           (lambda ()
                             (let ((ht_0
                                    (|#%app| linklet-directory->hash_0 ld_1)))
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (accum_1 saw-bundle?_0 i_0)
                                       (begin
                                         (if i_0
                                           (call-with-values
                                            (lambda ()
                                              (hash-iterate-key+value
                                               ht_0
                                               i_0))
                                            (case-lambda
                                             ((key_0 value_0)
                                              (call-with-values
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (if (eq? key_0 #f)
                                                      (values
                                                       (cons
                                                        (let ((app_0
                                                               (encode-name
                                                                rev-name-prefix_0)))
                                                          (cons
                                                           app_0
                                                           (linklet-bundle->bytes
                                                            value_0
                                                            as-correlated-linklet?_0
                                                            linklet-bundle->hash_0)))
                                                        accum_1)
                                                       #t)
                                                      (values
                                                       (flatten-linklet-directory_0
                                                        value_0
                                                        (cons
                                                         key_0
                                                         rev-name-prefix_0)
                                                        accum_1)
                                                       saw-bundle?_0)))
                                                  (case-lambda
                                                   ((accum_2 saw-bundle?_1)
                                                    (values
                                                     accum_2
                                                     saw-bundle?_1))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))
                                               (case-lambda
                                                ((accum_2 saw-bundle?_1)
                                                 (for-loop_0
                                                  accum_2
                                                  saw-bundle?_1
                                                  (hash-iterate-next
                                                   ht_0
                                                   i_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (values accum_1 saw-bundle?_0)))))))
                                  (for-loop_0
                                   accum_0
                                   #f
                                   (hash-iterate-first ht_0))))))
                           (case-lambda
                            ((new-accum_0 saw-bundle?_0)
                             (if saw-bundle?_0
                               new-accum_0
                               (cons
                                (cons (encode-name rev-name-prefix_0) #vu8(35 102))
                                new-accum_0)))
                            (args
                             (raise-binding-result-arity-error 2 args)))))))))
                   (let ((bundles_0
                          (list->vector
                           (let ((temp1_0
                                  (flatten-linklet-directory_0 ld_0 '() '())))
                             (let ((temp2_0
                                    (lambda (a_0 b_0)
                                      (let ((app_0 (car a_0)))
                                        (bytes<? app_0 (car b_0))))))
                               (let ((temp1_1 temp1_0))
                                 (sort.1 #f #f temp1_1 temp2_0)))))))
                     (let ((len_0 (vector-length bundles_0)))
                       (let ((initial-offset_0
                              (+
                               2
                               1
                               (unsafe-bytes-length version-bytes$1)
                               1
                               (unsafe-bytes-length vm-bytes_0)
                               1
                               4)))
                         (begin
                           (write-int len_0 port_0)
                           (let ((btree-size_0
                                  (compute-btree-size bundles_0 len_0)))
                             (let ((node-offsets_0
                                    (compute-btree-node-offsets
                                     bundles_0
                                     len_0
                                     initial-offset_0)))
                               (let ((bundle-offsets_0
                                      (compute-bundle-offsets
                                       bundles_0
                                       len_0
                                       (+ initial-offset_0 btree-size_0))))
                                 (begin
                                   (write-directory-btree
                                    bundles_0
                                    node-offsets_0
                                    bundle-offsets_0
                                    len_0
                                    port_0)
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (pos_0)
                                           (begin
                                             (if (< pos_0 len_0)
                                               (begin
                                                 (write-bytes
                                                  (cdr
                                                   (vector-ref
                                                    bundles_0
                                                    pos_0))
                                                  port_0)
                                                 (for-loop_0 (+ pos_0 1)))
                                               (values)))))))
                                      (for-loop_0 0)))
                                   (void)))))))))))))))))))
(define encode-name
  (lambda (rev-name_0)
    (let ((encode-symbol_0
           (|#%name|
            encode-symbol
            (lambda (s_0)
              (begin
                (let ((bstr_0 (string->bytes/utf-8 (symbol->string s_0))))
                  (let ((len_0 (unsafe-bytes-length bstr_0)))
                    (if (< len_0 255)
                      (list (bytes len_0) bstr_0)
                      (let ((app_0 (bytes 255)))
                        (list
                         app_0
                         (integer->integer-bytes len_0 4 #f #f)
                         bstr_0))))))))))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (rev-name_1 accum_0)
            (begin
              (if (null? rev-name_1)
                (apply bytes-append accum_0)
                (let ((app_0 (cdr rev-name_1)))
                  (loop_0
                   app_0
                   (append (encode-symbol_0 (car rev-name_1)) accum_0)))))))))
       (loop_0 rev-name_0 '())))))
(define compute-btree-size
  (lambda (bundles_0 len_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (result_0 pos_0)
            (begin
              (if (< pos_0 len_0)
                (let ((result_1
                       (let ((result_1
                              (+
                               result_0
                               (let ((nlen_0
                                      (unsafe-bytes-length
                                       (car (vector-ref bundles_0 pos_0)))))
                                 (+ nlen_0 20)))))
                         (values result_1))))
                  (for-loop_0 result_1 (+ pos_0 1)))
                result_0))))))
       (for-loop_0 0 0)))))
(define compute-btree-node-offsets
  (lambda (bundles_0 len_0 initial-offset_0)
    (let ((node-offsets_0 (make-vector len_0)))
      (begin
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (lo_0 hi_0 offset_0)
              (begin
                (if (= lo_0 hi_0)
                  offset_0
                  (let ((mid_0 (quotient (+ lo_0 hi_0) 2)))
                    (begin
                      (vector-set! node-offsets_0 mid_0 offset_0)
                      (let ((nlen_0
                             (unsafe-bytes-length
                              (car (vector-ref bundles_0 mid_0)))))
                        (let ((offset_1 (+ offset_0 4 nlen_0 4 4 4 4)))
                          (let ((offset_2 (loop_0 lo_0 mid_0 offset_1)))
                            (loop_0 (add1 mid_0) hi_0 offset_2))))))))))))
         (loop_0 0 len_0 initial-offset_0))
        node-offsets_0))))
(define compute-bundle-offsets
  (lambda (bundles_0 len_0 offset_0)
    (let ((bundle-offsets_0 (make-vector len_0)))
      (begin
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (i_0 offset_1)
              (begin
                (if (= i_0 len_0)
                  (void)
                  (begin
                    (vector-set! bundle-offsets_0 i_0 offset_1)
                    (let ((app_0 (add1 i_0)))
                      (loop_0
                       app_0
                       (+
                        offset_1
                        (unsafe-bytes-length
                         (cdr (vector-ref bundles_0 i_0)))))))))))))
         (loop_0 0 offset_0))
        bundle-offsets_0))))
(define write-directory-btree
  (lambda (bundles_0 node-offsets_0 bundle-offsets_0 len_0 port_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (lo_0 hi_0)
          (begin
            (if (= lo_0 hi_0)
              (void)
              (let ((mid_0 (quotient (+ lo_0 hi_0) 2)))
                (let ((p_0 (vector-ref bundles_0 mid_0)))
                  (let ((nlen_0 (unsafe-bytes-length (car p_0))))
                    (begin
                      (write-int nlen_0 port_0)
                      (write-bytes (car p_0) port_0)
                      (write-int (vector-ref bundle-offsets_0 mid_0) port_0)
                      (write-int (unsafe-bytes-length (cdr p_0)) port_0)
                      (if (> mid_0 lo_0)
                        (let ((left_0 (quotient (+ lo_0 mid_0) 2)))
                          (write-int
                           (vector-ref node-offsets_0 left_0)
                           port_0))
                        (write-int 0 port_0))
                      (if (< (add1 mid_0) hi_0)
                        (let ((right_0 (quotient (+ (add1 mid_0) hi_0) 2)))
                          (write-int
                           (vector-ref node-offsets_0 right_0)
                           port_0))
                        (write-int 0 port_0))
                      (loop_0 lo_0 mid_0)
                      (loop_0 (add1 mid_0) hi_0)))))))))))
     (loop_0 0 len_0))))
(define write-int
  (lambda (n_0 port_0)
    (write-bytes (integer->integer-bytes n_0 4 #f #f) port_0)))
(define finish_2267
  (make-struct-type-install-properties
   '(linklet-directory)
   1
   0
   #f
   (list
    (cons
     prop:custom-write
     (lambda (ld_0 port_0 mode_0)
       (write-linklet-directory
        ld_0
        (correlated-linklet-directory? ld_0)
        linklet-directory->hash$1
        1/linklet-bundle->hash
        port_0))))
   (current-inspector)
   #f
   '(0)
   #f
   'linklet-directory))
(define struct:linklet-directory
  (make-record-type-descriptor
   'linklet-directory
   #f
   (|#%nongenerative-uid| linklet-directory)
   #f
   #f
   '(1 . 0)))
(define effect_2692 (finish_2267 struct:linklet-directory))
(define linklet-directory1.1
  (|#%name|
   linklet-directory
   (record-constructor
    (make-record-constructor-descriptor struct:linklet-directory #f #f))))
(define linklet-directory?$1_2352
  (|#%name| linklet-directory? (record-predicate struct:linklet-directory)))
(define linklet-directory?$1
  (|#%name|
   linklet-directory?
   (lambda (v)
     (if (linklet-directory?$1_2352 v)
       #t
       ($value
        (if (impersonator? v)
          (linklet-directory?$1_2352 (impersonator-val v))
          #f))))))
(define linklet-directory-ht_3011
  (|#%name| linklet-directory-ht (record-accessor struct:linklet-directory 0)))
(define linklet-directory-ht
  (|#%name|
   linklet-directory-ht
   (lambda (s)
     (if (linklet-directory?$1_2352 s)
       (linklet-directory-ht_3011 s)
       ($value
        (impersonate-ref
         linklet-directory-ht_3011
         struct:linklet-directory
         0
         s
         'ht))))))
(define finish_2265
  (make-struct-type-install-properties
   '(linklet-bundle)
   1
   0
   #f
   (list
    (cons
     prop:custom-write
     (lambda (b_0 port_0 mode_0)
       (write-linklet-bundle
        b_0
        (correlated-linklet-bundle? b_0)
        1/linklet-bundle->hash
        port_0))))
   (current-inspector)
   #f
   '(0)
   #f
   'linklet-bundle))
(define struct:linklet-bundle
  (make-record-type-descriptor
   'linklet-bundle
   #f
   (|#%nongenerative-uid| linklet-bundle)
   #f
   #f
   '(1 . 0)))
(define effect_2464 (finish_2265 struct:linklet-bundle))
(define linklet-bundle2.1
  (|#%name|
   linklet-bundle
   (record-constructor
    (make-record-constructor-descriptor struct:linklet-bundle #f #f))))
(define 1/linklet-bundle?_3104
  (|#%name| linklet-bundle? (record-predicate struct:linklet-bundle)))
(define 1/linklet-bundle?
  (|#%name|
   linklet-bundle?
   (lambda (v)
     (if (1/linklet-bundle?_3104 v)
       #t
       ($value
        (if (impersonator? v)
          (1/linklet-bundle?_3104 (impersonator-val v))
          #f))))))
(define linklet-bundle-ht_3215
  (|#%name| linklet-bundle-ht (record-accessor struct:linklet-bundle 0)))
(define linklet-bundle-ht
  (|#%name|
   linklet-bundle-ht
   (lambda (s)
     (if (1/linklet-bundle?_3104 s)
       (linklet-bundle-ht_3215 s)
       ($value
        (impersonate-ref
         linklet-bundle-ht_3215
         struct:linklet-bundle
         0
         s
         'ht))))))
(define 1/hash->linklet-directory
  (|#%name|
   hash->linklet-directory
   (lambda (ht_0)
     (begin
       (begin
         (if (if (not (impersonator? ht_0))
               (if (hash? ht_0) (if (immutable? ht_0) (hash-eq? ht_0) #f) #f)
               #f)
           (void)
           (raise-argument-error
            'hash->linklet-directory
            "(and/c hash? hash-eq? immutable? (not/c impersonator?))"
            ht_0))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (i_0)
                 (begin
                   (if i_0
                     (call-with-values
                      (lambda () (hash-iterate-key+value ht_0 i_0))
                      (case-lambda
                       ((k_0 v_0)
                        (begin
                          (if (not k_0)
                            (if (1/linklet-bundle? v_0)
                              (void)
                              (raise-arguments-error
                               'hash->linklet-directory
                               "value for #f key is not a linklet bundle"
                               "value"
                               v_0))
                            (if (symbol? k_0)
                              (if (linklet-directory?$1 v_0)
                                (void)
                                (raise-arguments-error
                                 'hash->linklet-directory
                                 "value for symbol key is not a linklet directory"
                                 "value"
                                 v_0))
                              (raise-arguments-error
                               'hash->linklet-directory
                               "key in given hash is not #f or a symbol"
                               "key"
                               k_0)))
                          (for-loop_0 (hash-iterate-next ht_0 i_0))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (values)))))))
            (for-loop_0 (hash-iterate-first ht_0))))
         (void)
         (linklet-directory1.1 ht_0))))))
(define 1/hash->linklet-bundle
  (|#%name|
   hash->linklet-bundle
   (lambda (ht_0)
     (begin
       (begin
         (if (if (not (impersonator? ht_0))
               (if (hash? ht_0) (if (immutable? ht_0) (hash-eq? ht_0) #f) #f)
               #f)
           (void)
           (raise-argument-error
            'hash->linklet-bundle
            "(and/c hash? hash-eq? immutable? (not/c impersonator?))"
            ht_0))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (i_0)
                 (begin
                   (if i_0
                     (let ((k_0 (hash-iterate-key ht_0 i_0)))
                       (begin
                         (if (let ((or-part_0 (symbol? k_0)))
                               (if or-part_0 or-part_0 (fixnum? k_0)))
                           (void)
                           (raise-arguments-error
                            'hash->linklet-bundle
                            "key in given hash is not a symbol or fixnum"
                            "key"
                            k_0))
                         (for-loop_0 (hash-iterate-next ht_0 i_0))))
                     (values)))))))
            (for-loop_0 (hash-iterate-first ht_0))))
         (void)
         (linklet-bundle2.1 ht_0))))))
(define linklet-directory->hash$1
  (|#%name|
   linklet-directory->hash
   (lambda (ld_0)
     (begin
       (begin
         (if (linklet-directory?$1 ld_0)
           (void)
           (raise-argument-error
            'linklet-directory->hash
            "linklet-directory?"
            ld_0))
         (linklet-directory-ht ld_0))))))
(define 1/linklet-bundle->hash
  (|#%name|
   linklet-bundle->hash
   (lambda (ld_0)
     (begin
       (begin
         (if (1/linklet-bundle? ld_0)
           (void)
           (raise-argument-error 'linklet-bundle->hash "linklet-bundle?" ld_0))
         (linklet-bundle-ht ld_0))))))
(define correlated-linklet-directory?
  (lambda (ld_0)
    (let ((ht_0 (linklet-directory->hash$1 ld_0)))
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (result_0 i_0)
              (begin
                (if i_0
                  (call-with-values
                   (lambda () (hash-iterate-key+value ht_0 i_0))
                   (case-lambda
                    ((k_0 v_0)
                     (let ((result_1
                            (let ((result_1
                                   (if (not k_0)
                                     (correlated-linklet-bundle? v_0)
                                     (if (symbol? k_0)
                                       (correlated-linklet-directory? v_0)
                                       #t))))
                              (values result_1))))
                       (if (if (not
                                (let ((x_0 (list k_0 v_0))) (not result_1)))
                             #t
                             #f)
                         (for-loop_0 result_1 (hash-iterate-next ht_0 i_0))
                         result_1)))
                    (args (raise-binding-result-arity-error 2 args))))
                  result_0))))))
         (for-loop_0 #t (hash-iterate-first ht_0)))))))
(define correlated-linklet-bundle?
  (lambda (b_0)
    (let ((ht_0 (1/linklet-bundle->hash b_0)))
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (result_0 i_0)
              (begin
                (if i_0
                  (call-with-values
                   (lambda () (hash-iterate-key+value ht_0 i_0))
                   (case-lambda
                    ((k_0 v_0)
                     (let ((result_1
                            (let ((result_1 (not (linklet? v_0))))
                              (values result_1))))
                       (if (if (not
                                (let ((x_0 (list k_0 v_0))) (not result_1)))
                             #t
                             #f)
                         (for-loop_0 result_1 (hash-iterate-next ht_0 i_0))
                         result_1)))
                    (args (raise-binding-result-arity-error 2 args))))
                  result_0))))))
         (for-loop_0 #t (hash-iterate-first ht_0)))))))
(define finish_2892
  (make-struct-type-install-properties
   '(namespace-scopes)
   2
   0
   #f
   null
   'prefab
   #f
   '(0 1)
   #f
   'namespace-scopes))
(define struct:namespace-scopes
  (make-record-type-descriptor
   'namespace-scopes
   #f
   (structure-type-lookup-prefab-uid 'namespace-scopes #f 2 0 #f '(0 1))
   #f
   #f
   '(2 . 3)))
(define effect_2465 (finish_2892 struct:namespace-scopes))
(define namespace-scopes1.1
  (|#%name|
   namespace-scopes
   (record-constructor
    (make-record-constructor-descriptor struct:namespace-scopes #f #f))))
(define namespace-scopes?_2470
  (|#%name| namespace-scopes? (record-predicate struct:namespace-scopes)))
(define namespace-scopes?
  (|#%name|
   namespace-scopes?
   (lambda (v)
     (if (namespace-scopes?_2470 v)
       #t
       ($value
        (if (impersonator? v)
          (namespace-scopes?_2470 (impersonator-val v))
          #f))))))
(define namespace-scopes-post_2810
  (|#%name| namespace-scopes-post (record-accessor struct:namespace-scopes 0)))
(define namespace-scopes-post
  (|#%name|
   namespace-scopes-post
   (lambda (s)
     (if (namespace-scopes?_2470 s)
       (namespace-scopes-post_2810 s)
       ($value
        (impersonate-ref
         namespace-scopes-post_2810
         struct:namespace-scopes
         0
         s
         'post))))))
(define namespace-scopes-other_2110
  (|#%name|
   namespace-scopes-other
   (record-accessor struct:namespace-scopes 1)))
(define namespace-scopes-other
  (|#%name|
   namespace-scopes-other
   (lambda (s)
     (if (namespace-scopes?_2470 s)
       (namespace-scopes-other_2110 s)
       ($value
        (impersonate-ref
         namespace-scopes-other_2110
         struct:namespace-scopes
         1
         s
         'other))))))
(define swap-top-level-scopes
  (lambda (s_0 original-scopes-s_0 new-ns_0)
    (call-with-values
     (lambda ()
       (if (namespace-scopes? original-scopes-s_0)
         (let ((app_0 (namespace-scopes-post original-scopes-s_0)))
           (values app_0 (namespace-scopes-other original-scopes-s_0)))
         (decode-namespace-scopes original-scopes-s_0)))
     (case-lambda
      ((old-scs-post_0 old-scs-other_0)
       (call-with-values
        (lambda () (extract-namespace-scopes/values new-ns_0))
        (case-lambda
         ((new-scs-post_0 new-scs-other_0)
          (syntax-swap-scopes
           (syntax-swap-scopes s_0 old-scs-post_0 new-scs-post_0)
           old-scs-other_0
           new-scs-other_0))
         (args (raise-binding-result-arity-error 2 args)))))
      (args (raise-binding-result-arity-error 2 args))))))
(define extract-namespace-scopes/values
  (lambda (ns_0)
    (let ((root-ctx_0 (namespace-get-root-expand-ctx ns_0)))
      (let ((post-expansion-sc_0
             (post-expansion-scope
              (begin-unsafe
               (root-expand-context/outer-post-expansion root-ctx_0)))))
        (let ((app_0 (seteq post-expansion-sc_0)))
          (values
           app_0
           (let ((s_0
                  (list->seteq
                   (begin-unsafe
                    (root-expand-context/inner-module-scopes
                     (root-expand-context/outer-inner root-ctx_0))))))
             (begin-unsafe (hash-remove s_0 post-expansion-sc_0)))))))))
(define extract-namespace-scopes
  (lambda (ns_0)
    (call-with-values
     (lambda () (extract-namespace-scopes/values ns_0))
     (case-lambda
      ((scs-post_0 scs-other_0) (namespace-scopes1.1 scs-post_0 scs-other_0))
      (args (raise-binding-result-arity-error 2 args))))))
(define encode-namespace-scopes
  (lambda (ns_0)
    (call-with-values
     (lambda () (extract-namespace-scopes/values ns_0))
     (case-lambda
      ((post-expansion-scs_0 other-scs_0)
       (let ((post-expansion-s_0
              (let ((app_0 (datum->syntax$1 #f 'post)))
                (add-scopes app_0 (set->list post-expansion-scs_0)))))
         (let ((other-s_0
                (let ((app_0 (datum->syntax$1 #f 'other)))
                  (add-scopes app_0 (set->list other-scs_0)))))
           (datum->syntax$1 #f (vector post-expansion-s_0 other-s_0)))))
      (args (raise-binding-result-arity-error 2 args))))))
(define decode-namespace-scopes
  (lambda (stx_0)
    (let ((vec_0 (syntax-e$1 stx_0)))
      (let ((app_0 (syntax-scope-set (vector-ref vec_0 0) 0)))
        (values app_0 (syntax-scope-set (vector-ref vec_0 1) 0))))))
(define namespace-scopes=?
  (lambda (nss1_0 nss2_0)
    (if (let ((app_0 (namespace-scopes-post nss1_0)))
          (set=? app_0 (namespace-scopes-post nss2_0)))
      (let ((app_0 (namespace-scopes-other nss1_0)))
        (set=? app_0 (namespace-scopes-other nss2_0)))
      #f)))
(define finish_2887
  (make-struct-type-install-properties
   '(syntax-literals)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '()
   #f
   'syntax-literals))
(define struct:syntax-literals
  (make-record-type-descriptor
   'syntax-literals
   #f
   (|#%nongenerative-uid| syntax-literals)
   #f
   #f
   '(2 . 3)))
(define effect_2822 (finish_2887 struct:syntax-literals))
(define syntax-literals1.1
  (|#%name|
   syntax-literals
   (record-constructor
    (make-record-constructor-descriptor struct:syntax-literals #f #f))))
(define syntax-literals?_2232
  (|#%name| syntax-literals? (record-predicate struct:syntax-literals)))
(define syntax-literals?
  (|#%name|
   syntax-literals?
   (lambda (v)
     (if (syntax-literals?_2232 v)
       #t
       ($value
        (if (impersonator? v)
          (syntax-literals?_2232 (impersonator-val v))
          #f))))))
(define syntax-literals-stxes_3121
  (|#%name| syntax-literals-stxes (record-accessor struct:syntax-literals 0)))
(define syntax-literals-stxes
  (|#%name|
   syntax-literals-stxes
   (lambda (s)
     (if (syntax-literals?_2232 s)
       (syntax-literals-stxes_3121 s)
       ($value
        (impersonate-ref
         syntax-literals-stxes_3121
         struct:syntax-literals
         0
         s
         'stxes))))))
(define syntax-literals-count_2487
  (|#%name| syntax-literals-count (record-accessor struct:syntax-literals 1)))
(define syntax-literals-count
  (|#%name|
   syntax-literals-count
   (lambda (s)
     (if (syntax-literals?_2232 s)
       (syntax-literals-count_2487 s)
       ($value
        (impersonate-ref
         syntax-literals-count_2487
         struct:syntax-literals
         1
         s
         'count))))))
(define set-syntax-literals-stxes!_3052
  (|#%name|
   set-syntax-literals-stxes!
   (record-mutator struct:syntax-literals 0)))
(define set-syntax-literals-stxes!
  (|#%name|
   set-syntax-literals-stxes!
   (lambda (s v)
     (if (syntax-literals?_2232 s)
       (set-syntax-literals-stxes!_3052 s v)
       ($value
        (impersonate-set!
         set-syntax-literals-stxes!_3052
         struct:syntax-literals
         0
         0
         s
         v
         'stxes))))))
(define set-syntax-literals-count!_3102
  (|#%name|
   set-syntax-literals-count!
   (record-mutator struct:syntax-literals 1)))
(define set-syntax-literals-count!
  (|#%name|
   set-syntax-literals-count!
   (lambda (s v)
     (if (syntax-literals?_2232 s)
       (set-syntax-literals-count!_3102 s v)
       ($value
        (impersonate-set!
         set-syntax-literals-count!_3102
         struct:syntax-literals
         1
         1
         s
         v
         'count))))))
(define finish_2543
  (make-struct-type-install-properties
   '(header)
   8
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 3 4 6 7)
   #f
   'header))
(define struct:header
  (make-record-type-descriptor
   'header
   #f
   (|#%nongenerative-uid| header)
   #f
   #f
   '(8 . 36)))
(define effect_2459 (finish_2543 struct:header))
(define header2.1
  (|#%name|
   header
   (record-constructor
    (make-record-constructor-descriptor struct:header #f #f))))
(define header?_3140 (|#%name| header? (record-predicate struct:header)))
(define header?
  (|#%name|
   header?
   (lambda (v)
     (if (header?_3140 v)
       #t
       ($value
        (if (impersonator? v) (header?_3140 (impersonator-val v)) #f))))))
(define header-module-path-indexes_3364
  (|#%name| header-module-path-indexes (record-accessor struct:header 0)))
(define header-module-path-indexes
  (|#%name|
   header-module-path-indexes
   (lambda (s)
     (if (header?_3140 s)
       (header-module-path-indexes_3364 s)
       ($value
        (impersonate-ref
         header-module-path-indexes_3364
         struct:header
         0
         s
         'module-path-indexes))))))
(define header-binding-sym-to-define-sym_2390
  (|#%name|
   header-binding-sym-to-define-sym
   (record-accessor struct:header 1)))
(define header-binding-sym-to-define-sym
  (|#%name|
   header-binding-sym-to-define-sym
   (lambda (s)
     (if (header?_3140 s)
       (header-binding-sym-to-define-sym_2390 s)
       ($value
        (impersonate-ref
         header-binding-sym-to-define-sym_2390
         struct:header
         1
         s
         'binding-sym-to-define-sym))))))
(define header-binding-syms-in-order_2365
  (|#%name| header-binding-syms-in-order (record-accessor struct:header 2)))
(define header-binding-syms-in-order
  (|#%name|
   header-binding-syms-in-order
   (lambda (s)
     (if (header?_3140 s)
       (header-binding-syms-in-order_2365 s)
       ($value
        (impersonate-ref
         header-binding-syms-in-order_2365
         struct:header
         2
         s
         'binding-syms-in-order))))))
(define header-require-var-to-import-sym_2845
  (|#%name|
   header-require-var-to-import-sym
   (record-accessor struct:header 3)))
(define header-require-var-to-import-sym
  (|#%name|
   header-require-var-to-import-sym
   (lambda (s)
     (if (header?_3140 s)
       (header-require-var-to-import-sym_2845 s)
       ($value
        (impersonate-ref
         header-require-var-to-import-sym_2845
         struct:header
         3
         s
         'require-var-to-import-sym))))))
(define header-import-sym-to-extra-inspectors_2352
  (|#%name|
   header-import-sym-to-extra-inspectors
   (record-accessor struct:header 4)))
(define header-import-sym-to-extra-inspectors
  (|#%name|
   header-import-sym-to-extra-inspectors
   (lambda (s)
     (if (header?_3140 s)
       (header-import-sym-to-extra-inspectors_2352 s)
       ($value
        (impersonate-ref
         header-import-sym-to-extra-inspectors_2352
         struct:header
         4
         s
         'import-sym-to-extra-inspectors))))))
(define header-require-vars-in-order_2218
  (|#%name| header-require-vars-in-order (record-accessor struct:header 5)))
(define header-require-vars-in-order
  (|#%name|
   header-require-vars-in-order
   (lambda (s)
     (if (header?_3140 s)
       (header-require-vars-in-order_2218 s)
       ($value
        (impersonate-ref
         header-require-vars-in-order_2218
         struct:header
         5
         s
         'require-vars-in-order))))))
(define header-define-and-import-syms_2444
  (|#%name| header-define-and-import-syms (record-accessor struct:header 6)))
(define header-define-and-import-syms
  (|#%name|
   header-define-and-import-syms
   (lambda (s)
     (if (header?_3140 s)
       (header-define-and-import-syms_2444 s)
       ($value
        (impersonate-ref
         header-define-and-import-syms_2444
         struct:header
         6
         s
         'define-and-import-syms))))))
(define header-syntax-literals_3129
  (|#%name| header-syntax-literals (record-accessor struct:header 7)))
(define header-syntax-literals
  (|#%name|
   header-syntax-literals
   (lambda (s)
     (if (header?_3140 s)
       (header-syntax-literals_3129 s)
       ($value
        (impersonate-ref
         header-syntax-literals_3129
         struct:header
         7
         s
         'syntax-literals))))))
(define set-header-binding-syms-in-order!_2287
  (|#%name|
   set-header-binding-syms-in-order!
   (record-mutator struct:header 2)))
(define set-header-binding-syms-in-order!
  (|#%name|
   set-header-binding-syms-in-order!
   (lambda (s v)
     (if (header?_3140 s)
       (set-header-binding-syms-in-order!_2287 s v)
       ($value
        (impersonate-set!
         set-header-binding-syms-in-order!_2287
         struct:header
         2
         2
         s
         v
         'binding-syms-in-order))))))
(define set-header-require-vars-in-order!_2994
  (|#%name|
   set-header-require-vars-in-order!
   (record-mutator struct:header 5)))
(define set-header-require-vars-in-order!
  (|#%name|
   set-header-require-vars-in-order!
   (lambda (s v)
     (if (header?_3140 s)
       (set-header-require-vars-in-order!_2994 s v)
       ($value
        (impersonate-set!
         set-header-require-vars-in-order!_2994
         struct:header
         5
         5
         s
         v
         'require-vars-in-order))))))
(define finish_2560
  (make-struct-type-install-properties
   '(variable-use)
   2
   0
   #f
   null
   #f
   #f
   '(0 1)
   #f
   'variable-use))
(define struct:variable-use
  (make-record-type-descriptor
   'variable-use
   #f
   (|#%nongenerative-uid| variable-use)
   #f
   #f
   '(2 . 0)))
(define effect_2838 (finish_2560 struct:variable-use))
(define variable-use3.1
  (|#%name|
   variable-use
   (record-constructor
    (make-record-constructor-descriptor struct:variable-use #f #f))))
(define variable-use?_2270
  (|#%name| variable-use? (record-predicate struct:variable-use)))
(define variable-use?
  (|#%name|
   variable-use?
   (lambda (v)
     (if (variable-use?_2270 v)
       #t
       ($value
        (if (impersonator? v)
          (variable-use?_2270 (impersonator-val v))
          #f))))))
(define variable-use-module-use_2672
  (|#%name| variable-use-module-use (record-accessor struct:variable-use 0)))
(define variable-use-module-use
  (|#%name|
   variable-use-module-use
   (lambda (s)
     (if (variable-use?_2270 s)
       (variable-use-module-use_2672 s)
       ($value
        (impersonate-ref
         variable-use-module-use_2672
         struct:variable-use
         0
         s
         'module-use))))))
(define variable-use-sym_2257
  (|#%name| variable-use-sym (record-accessor struct:variable-use 1)))
(define variable-use-sym
  (|#%name|
   variable-use-sym
   (lambda (s)
     (if (variable-use?_2270 s)
       (variable-use-sym_2257 s)
       ($value
        (impersonate-ref
         variable-use-sym_2257
         struct:variable-use
         1
         s
         'sym))))))
(define make-syntax-literals (lambda () (syntax-literals1.1 null 0)))
(define make-header
  (lambda (mpis_0 syntax-literals_0)
    (let ((app_0 (make-hasheq)))
      (let ((app_1 (begin-unsafe (make-hash))))
        (let ((app_2 (make-hasheq)))
          (header2.1
           mpis_0
           app_0
           null
           app_1
           app_2
           null
           (make-hasheq)
           syntax-literals_0))))))
(define make-variable-uses (lambda () (make-hash)))
(define add-syntax-literal!
  (lambda (header-or-literals_0 q_0)
    (let ((sl_0
           (if (header? header-or-literals_0)
             (header-syntax-literals header-or-literals_0)
             header-or-literals_0)))
      (let ((pos_0 (syntax-literals-count sl_0)))
        (begin
          (set-syntax-literals-count! sl_0 (add1 pos_0))
          (set-syntax-literals-stxes!
           sl_0
           (cons q_0 (syntax-literals-stxes sl_0)))
          pos_0)))))
(define add-syntax-literals!
  (lambda (sl_0 vec_0)
    (let ((pos_0 (syntax-literals-count sl_0)))
      (begin
        (call-with-values
         (lambda ()
           (begin
             (check-vector vec_0)
             (values vec_0 (unsafe-vector-length vec_0))))
         (case-lambda
          ((vec_1 len_0)
           (begin
             #f
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (pos_1)
                   (begin
                     (if (unsafe-fx< pos_1 len_0)
                       (let ((e_0 (unsafe-vector-ref vec_1 pos_1)))
                         (begin
                           (add-syntax-literal! sl_0 e_0)
                           (for-loop_0 (unsafe-fx+ 1 pos_1))))
                       (values)))))))
              (for-loop_0 0))))
          (args (raise-binding-result-arity-error 2 args))))
        (void)
        (cons pos_0 (vector-length vec_0))))))
(define syntax-literals-empty?
  (lambda (sl_0) (null? (syntax-literals-stxes sl_0))))
(define generate-lazy-syntax-literals!.1
  (|#%name|
   generate-lazy-syntax-literals!
   (lambda (skip-deserialize?4_0 sl6_0 mpis7_0 self8_0)
     (begin
       (let ((app_0 (list syntax-literals-id)))
         (let ((app_1
                (list
                 'define-values
                 app_0
                 (list* 'make-vector (syntax-literals-count sl6_0) '(#f)))))
           (list
            app_1
            (let ((app_2 (list get-syntax-literal!-id)))
              (list
               'define-values
               app_2
               (list
                'lambda
                '(pos)
                (let ((app_3
                       (list
                        (list
                         '(ready-stx)
                         (list*
                          'unsafe-vector*-ref
                          syntax-literals-id
                          '(pos))))))
                  (list
                   'let-values
                   app_3
                   (list
                    'if
                    'ready-stx
                    'ready-stx
                    (list*
                     'begin
                     (let ((app_4
                            (if skip-deserialize?4_0
                              null
                              (list
                               (list
                                'if
                                (list*
                                 'unsafe-vector*-ref
                                 deserialized-syntax-vector-id
                                 '(0))
                                '(void)
                                (list
                                 deserialize-syntax-id
                                 bulk-binding-registry-id))))))
                       (qq-append
                        app_4
                        (list
                         (let ((app_5
                                (list
                                 (list
                                  '(stx)
                                  (let ((app_5
                                         (list
                                          'syntax-shift-phase-level
                                          (list*
                                           'unsafe-vector*-ref
                                           deserialized-syntax-vector-id
                                           '(pos))
                                          phase-shift-id)))
                                    (list
                                     'syntax-module-path-index-shift
                                     app_5
                                     (add-module-path-index! mpis7_0 self8_0)
                                     self-id
                                     inspector-id))))))
                           (list
                            'let-values
                            app_5
                            (list*
                             'letrec-values
                             (list
                              (list
                               '(loop)
                               (list
                                'lambda
                                '()
                                (list
                                 'begin
                                 (list*
                                  'vector-cas!
                                  syntax-literals-id
                                  '(pos #f stx))
                                 (list*
                                  'let-values
                                  (list
                                   (list
                                    '(new-stx)
                                    (list*
                                     'unsafe-vector*-ref
                                     syntax-literals-id
                                     '(pos))))
                                  '((if new-stx new-stx (loop))))))))
                             '((loop))))))))))))))))))))))
(define generate-lazy-syntax-literals-data!
  (lambda (sl_0 mpis_0)
    (if (begin-unsafe (null? (syntax-literals-stxes sl_0)))
      (list (list* 'define-values (list deserialize-syntax-id) '(#f)))
      (list
       (let ((app_0 (list deserialize-syntax-id)))
         (list
          'define-values
          app_0
          (let ((app_1 (list bulk-binding-registry-id)))
            (list
             'lambda
             app_1
             (let ((app_2
                    (list
                     'vector-copy!
                     deserialized-syntax-vector-id
                     ''0
                     (let ((app_2 (list (list* (list inspector-id) '(#f)))))
                       (list
                        'let-values
                        app_2
                        (let ((temp21_0
                               (vector->immutable-vector
                                (list->vector
                                 (reverse$1 (syntax-literals-stxes sl_0))))))
                          (generate-deserialize.1
                           #f
                           #f
                           mpis_0
                           #f
                           hash2610
                           #t
                           temp21_0)))))))
               (list
                'begin
                app_2
                (list* 'set! deserialize-syntax-id '(#f))))))))))))
(define generate-lazy-syntax-literal-lookup
  (lambda (pos_0) (list get-syntax-literal!-id pos_0)))
(define generate-eager-syntax-literals!
  (lambda (sl_0 mpis_0 base-phase_0 self_0 ns_0)
    (if (begin-unsafe (null? (syntax-literals-stxes sl_0)))
      #f
      (let ((app_0
             (list
              (list
               '(ns+stxss)
               (let ((temp23_0
                      (let ((app_0 (encode-namespace-scopes ns_0)))
                        (cons
                         app_0
                         (reverse$1 (syntax-literals-stxes sl_0))))))
                 (generate-deserialize.1
                  #f
                  #f
                  mpis_0
                  #f
                  hash2610
                  #t
                  temp23_0))))))
        (list
         'let-values
         app_0
         (list
          'let-values
          '(((ns-scope-s) (car ns+stxss)))
          (list
           'list->vector
           (list*
            'map
            (list
             'lambda
             '(stx)
             (list
              'swap-top-level-scopes
              (let ((app_1
                     (list
                      'syntax-shift-phase-level
                      'stx
                      (list '- base-phase_0 dest-phase-id))))
                (list
                 'syntax-module-path-index-shift
                 app_1
                 (add-module-path-index! mpis_0 self_0)
                 self-id))
              'ns-scope-s
              ns-id))
            '((cdr ns+stxss))))))))))
(define generate-eager-syntax-literal-lookup
  (lambda (pos_0) (list 'unsafe-vector*-ref syntax-literals-id pos_0)))
(define syntax-literals-as-vector
  (lambda (sl_0) (list->vector (reverse$1 (syntax-literals-stxes sl_0)))))
(define select-fresh
  (lambda (sym_0 header_0)
    (if (symbol-conflicts? sym_0 header_0)
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (pos_0)
            (begin
              (let ((new-sym_0
                     (string->symbol
                      (let ((app_0 (number->string pos_0)))
                        (string-append app_0 "/" (symbol->string sym_0))))))
                (if (symbol-conflicts? new-sym_0 header_0)
                  (loop_0 (add1 pos_0))
                  new-sym_0)))))))
       (loop_0 1))
      sym_0)))
(define symbol-conflicts?
  (lambda (sym_0 header_0)
    (let ((or-part_0 (begin-unsafe (hash-ref built-in-symbols sym_0 #f))))
      (if or-part_0
        or-part_0
        (hash-ref (header-define-and-import-syms header_0) sym_0 #f)))))
(define register-required-variable-use!.1
  (|#%name|
   register-required-variable-use!
   (lambda (defined?10_0
            header12_0
            mpi13_0
            phase14_0
            sym15_0
            extra-inspector16_0)
     (begin
       (let ((key_0
              (variable-use3.1 (module-use1.1 mpi13_0 phase14_0) sym15_0)))
         (let ((variable-uses_0 (header-require-var-to-import-sym header12_0)))
           (let ((prev-var-sym_0 (hash-ref variable-uses_0 key_0 #f)))
             (let ((var-sym_0
                    (if prev-var-sym_0
                      prev-var-sym_0
                      (let ((sym_0
                             (select-fresh
                              (variable-use-sym key_0)
                              header12_0)))
                        (begin
                          (hash-set! variable-uses_0 key_0 sym_0)
                          (set-header-require-vars-in-order!
                           header12_0
                           (cons
                            key_0
                            (header-require-vars-in-order header12_0)))
                          (hash-set!
                           (header-define-and-import-syms header12_0)
                           sym_0
                           (if defined?10_0 'defined 'required))
                          sym_0)))))
               (begin
                 (if (if extra-inspector16_0 (not prev-var-sym_0) #f)
                   (let ((extra-inspectors_0
                          (header-import-sym-to-extra-inspectors header12_0)))
                     (let ((xform_0
                            (lambda (s_0)
                              (begin-unsafe
                               (hash-set s_0 extra-inspector16_0 #t)))))
                       (let ((default_0 hash2610))
                         (begin-unsafe
                          (do-hash-update
                           'hash-update!
                           #t
                           hash-set!
                           extra-inspectors_0
                           var-sym_0
                           xform_0
                           default_0)))))
                   (void))
                 var-sym_0)))))))))
(define register-as-defined!
  (lambda (header_0 def-sym_0)
    (hash-set! (header-define-and-import-syms header_0) def-sym_0 'defined)))
(define registered-as-required?
  (lambda (header_0 var-sym_0)
    (eq?
     'required
     (hash-ref (header-define-and-import-syms header_0) var-sym_0 #f))))
(define generate-links+imports
  (lambda (header_0 phase_0 cctx_0 cross-linklet-inlining?_0)
    (call-with-values
     (lambda ()
       (let ((lst_0 (header-require-vars-in-order header_0)))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (ht_0 link-mod-uses_0 lst_1)
                 (begin
                   (if (pair? lst_1)
                     (let ((vu_0 (unsafe-car lst_1)))
                       (let ((rest_0 (unsafe-cdr lst_1)))
                         (call-with-values
                          (lambda ()
                            (call-with-values
                             (lambda ()
                               (let ((mu_0 (variable-use-module-use vu_0)))
                                 (if (let ((or-part_0 (hash-ref ht_0 mu_0 #f)))
                                       (if or-part_0
                                         or-part_0
                                         (let ((or-part_1
                                                (let ((app_0
                                                       (module-use-module
                                                        mu_0)))
                                                  (eq?
                                                   app_0
                                                   (compile-context-self
                                                    cctx_0)))))
                                           (if or-part_1
                                             or-part_1
                                             (let ((mpi_0
                                                    (module-use-module mu_0)))
                                               (begin-unsafe
                                                (eq?
                                                 top-level-module-path-index
                                                 mpi_0)))))))
                                   (values ht_0 link-mod-uses_0)
                                   (let ((app_0 (hash-set ht_0 mu_0 #t)))
                                     (values
                                      app_0
                                      (cons mu_0 link-mod-uses_0))))))
                             (case-lambda
                              ((ht_1 link-mod-uses_1)
                               (values ht_1 link-mod-uses_1))
                              (args
                               (raise-binding-result-arity-error 2 args)))))
                          (case-lambda
                           ((ht_1 link-mod-uses_1)
                            (for-loop_0 ht_1 link-mod-uses_1 rest_0))
                           (args (raise-binding-result-arity-error 2 args))))))
                     (values ht_0 link-mod-uses_0)))))))
            (for-loop_0 hash2725 null lst_0)))))
     (case-lambda
      ((mod-use-ht_0 link-mod-uses_0)
       (let ((app_0
              (reverse$1
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (fold-var_0 lst_0)
                       (begin
                         (if (pair? lst_0)
                           (let ((mu_0 (unsafe-car lst_0)))
                             (let ((rest_0 (unsafe-cdr lst_0)))
                               (let ((fold-var_1
                                      (let ((fold-var_1
                                             (cons
                                              (reverse$1
                                               (let ((lst_1
                                                      (header-require-vars-in-order
                                                       header_0)))
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_1
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (fold-var_1
                                                                lst_2)
                                                         (begin
                                                           (if (pair? lst_2)
                                                             (let ((vu_0
                                                                    (unsafe-car
                                                                     lst_2)))
                                                               (let ((rest_1
                                                                      (unsafe-cdr
                                                                       lst_2)))
                                                                 (let ((fold-var_2
                                                                        (if (equal?
                                                                             mu_0
                                                                             (variable-use-module-use
                                                                              vu_0))
                                                                          (let ((fold-var_2
                                                                                 (cons
                                                                                  (let ((var-sym_0
                                                                                         (hash-ref
                                                                                          (header-require-var-to-import-sym
                                                                                           header_0)
                                                                                          vu_0)))
                                                                                    (let ((ex-sym_0
                                                                                           (variable-use-sym
                                                                                            vu_0)))
                                                                                      (if (eq?
                                                                                           var-sym_0
                                                                                           ex-sym_0)
                                                                                        var-sym_0
                                                                                        (list
                                                                                         ex-sym_0
                                                                                         var-sym_0))))
                                                                                  fold-var_1)))
                                                                            (values
                                                                             fold-var_2))
                                                                          fold-var_1)))
                                                                   (for-loop_1
                                                                    fold-var_2
                                                                    rest_1))))
                                                             fold-var_1))))))
                                                    (for-loop_1 null lst_1)))))
                                              fold-var_0)))
                                        (values fold-var_1))))
                                 (for-loop_0 fold-var_1 rest_0))))
                           fold-var_0))))))
                  (for-loop_0 null link-mod-uses_0))))))
         (let ((app_1
                (reverse$1
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (fold-var_0 lst_0)
                         (begin
                           (if (pair? lst_0)
                             (let ((mu_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((fold-var_1
                                        (let ((fold-var_1
                                               (cons
                                                (let ((extra-inspectorss_0
                                                       (let ((lst_1
                                                              (header-require-vars-in-order
                                                               header_0)))
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_1
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (table_0
                                                                        lst_2)
                                                                 (begin
                                                                   (if (pair?
                                                                        lst_2)
                                                                     (let ((vu_0
                                                                            (unsafe-car
                                                                             lst_2)))
                                                                       (let ((rest_1
                                                                              (unsafe-cdr
                                                                               lst_2)))
                                                                         (let ((table_1
                                                                                (if (equal?
                                                                                     mu_0
                                                                                     (variable-use-module-use
                                                                                      vu_0))
                                                                                  (let ((id*_0
                                                                                         (hash-ref
                                                                                          (header-require-var-to-import-sym
                                                                                           header_0)
                                                                                          vu_0)))
                                                                                    (begin
                                                                                      #t
                                                                                      (letrec*
                                                                                       ((for-loop_2
                                                                                         (|#%name|
                                                                                          for-loop
                                                                                          (lambda (table_1)
                                                                                            (begin
                                                                                              (let ((table_2
                                                                                                     (let ((id*_1
                                                                                                            (hash-ref
                                                                                                             (header-import-sym-to-extra-inspectors
                                                                                                              header_0)
                                                                                                             id*_0
                                                                                                             #f)))
                                                                                                       (begin
                                                                                                         #t
                                                                                                         (letrec*
                                                                                                          ((for-loop_3
                                                                                                            (|#%name|
                                                                                                             for-loop
                                                                                                             (lambda (table_2)
                                                                                                               (begin
                                                                                                                 (let ((table_3
                                                                                                                        (if (if id*_1
                                                                                                                              id*_1
                                                                                                                              cross-linklet-inlining?_0)
                                                                                                                          (let ((table_3
                                                                                                                                 (call-with-values
                                                                                                                                  (lambda ()
                                                                                                                                    (values
                                                                                                                                     id*_0
                                                                                                                                     id*_1))
                                                                                                                                  (case-lambda
                                                                                                                                   ((key_0
                                                                                                                                     val_0)
                                                                                                                                    (hash-set
                                                                                                                                     table_2
                                                                                                                                     key_0
                                                                                                                                     val_0))
                                                                                                                                   (args
                                                                                                                                    (raise-binding-result-arity-error
                                                                                                                                     2
                                                                                                                                     args))))))
                                                                                                                            (values
                                                                                                                             table_3))
                                                                                                                          table_2)))
                                                                                                                   table_3))))))
                                                                                                          (for-loop_3
                                                                                                           table_1))))))
                                                                                                table_2))))))
                                                                                       (for-loop_2
                                                                                        table_0))))
                                                                                  table_0)))
                                                                           (for-loop_1
                                                                            table_1
                                                                            rest_1))))
                                                                     table_0))))))
                                                            (for-loop_1
                                                             hash2725
                                                             lst_1))))))
                                                  (if (hash-count
                                                       extra-inspectorss_0)
                                                    extra-inspectorss_0
                                                    #f))
                                                fold-var_0)))
                                          (values fold-var_1))))
                                   (for-loop_0 fold-var_1 rest_0))))
                             fold-var_0))))))
                    (for-loop_0 null link-mod-uses_0))))))
           (values
            link-mod-uses_0
            app_0
            app_1
            (reverse$1
             (let ((lst_0 (header-require-vars-in-order header_0)))
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (fold-var_0 lst_1)
                       (begin
                         (if (pair? lst_1)
                           (let ((vu_0 (unsafe-car lst_1)))
                             (let ((rest_0 (unsafe-cdr lst_1)))
                               (let ((fold-var_1
                                      (if (let ((mod_0
                                                 (module-use-module
                                                  (variable-use-module-use
                                                   vu_0))))
                                            (let ((or-part_0
                                                   (eq?
                                                    mod_0
                                                    (compile-context-self
                                                     cctx_0))))
                                              (if or-part_0
                                                or-part_0
                                                (begin-unsafe
                                                 (eq?
                                                  top-level-module-path-index
                                                  mod_0)))))
                                        (let ((fold-var_1
                                               (cons
                                                (let ((var-sym_0
                                                       (hash-ref
                                                        (header-require-var-to-import-sym
                                                         header_0)
                                                        vu_0)))
                                                  (let ((ex-sym_0
                                                         (variable-use-sym
                                                          vu_0)))
                                                    (if (eq?
                                                         var-sym_0
                                                         ex-sym_0)
                                                      var-sym_0
                                                      (list
                                                       var-sym_0
                                                       ex-sym_0))))
                                                fold-var_0)))
                                          (values fold-var_1))
                                        fold-var_0)))
                                 (for-loop_0 fold-var_1 rest_0))))
                           fold-var_0))))))
                  (for-loop_0 null lst_0)))))))))
      (args (raise-binding-result-arity-error 2 args))))))
(define instance-imports
  (list
   ns-id
   phase-shift-id
   self-id
   inspector-id
   bulk-binding-registry-id
   set-transformer!-id))
(define make-instance-instance.1
  (|#%name|
   make-instance-instance
   (lambda (bulk-binding-registry5_0
            inspector4_0
            namespace1_0
            phase-shift2_0
            self3_0
            set-transformer!6_0)
     (begin
       (make-instance
        'instance
        #f
        'constant
        ns-id
        namespace1_0
        phase-shift-id
        phase-shift2_0
        self-id
        self3_0
        inspector-id
        inspector4_0
        bulk-binding-registry-id
        bulk-binding-registry5_0
        set-transformer!-id
        set-transformer!6_0)))))
(define make-module-body-instance-instance.1
  (|#%name|
   make-module-body-instance-instance
   (lambda (set-transformer!14_0)
     (begin
       (make-instance
        'body-instance
        #f
        'constant
        set-transformer!-id
        set-transformer!14_0)))))
(define empty-syntax-literals-instance
  (make-instance
   'empty-stx
   #f
   'constant
   get-syntax-literal!-id
   (lambda (pos_0) #f)
   'get-encoded-root-expand-ctx
   #f))
(define effect_3542
  (begin
    (void
     (instance-describe-variable!
      empty-syntax-literals-instance
      get-syntax-literal!-id
      '(procedure/pure 2)))
    (void)))
(define empty-module-body-instance
  (let ((temp17_0 (lambda (name_0 val_0) (void))))
    (make-module-body-instance-instance.1 temp17_0)))
(define effect_2309
  (begin
    (void
     (instance-describe-variable!
      empty-module-body-instance
      set-transformer!-id
      '(procedure/succeeds 4)))
    (void)))
(define empty-top-syntax-literal-instance
  (make-instance
   'top-syntax-literal
   #f
   'constant
   mpi-vector-id
   #f
   syntax-literals-id
   #f))
(define empty-syntax-literals-data-instance
  (make-instance
   'empty-stx-data
   #f
   'constant
   deserialized-syntax-vector-id
   (vector)
   deserialize-syntax-id
   void))
(define empty-instance-instance (make-instance-instance.1 #f #f #f #f #f #f))
(define eager-instance-imports
  (list*
   ns-id
   dest-phase-id
   self-id
   bulk-binding-registry-id
   inspector-id
   '(swap-top-level-scopes)))
(define make-eager-instance-instance.1
  (|#%name|
   make-eager-instance-instance
   (lambda (bulk-binding-registry4_0
            dest-phase2_0
            inspector5_0
            namespace1_0
            self3_0)
     (begin
       (make-instance
        'instance
        #f
        'constant
        ns-id
        namespace1_0
        dest-phase-id
        dest-phase2_0
        self-id
        self3_0
        bulk-binding-registry-id
        bulk-binding-registry4_0
        inspector-id
        inspector5_0
        'swap-top-level-scopes
        swap-top-level-scopes)))))
(define empty-eager-instance-instance
  (make-eager-instance-instance.1 #f #f #f #f #f))
(define self-quoting-in-linklet?
  (lambda (datum_0)
    (let ((or-part_0 (number? datum_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (boolean? datum_0)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (string? datum_0)))
              (if or-part_2 or-part_2 (bytes? datum_0)))))))))
(define srcloc->vector
  (lambda (s_0)
    (if s_0
      (let ((app_0 (srcloc-source s_0)))
        (let ((app_1 (srcloc-line s_0)))
          (let ((app_2 (srcloc-column s_0)))
            (let ((app_3 (srcloc-position s_0)))
              (vector app_0 app_1 app_2 app_3 (srcloc-span s_0))))))
      #f)))
(define keep-source-locations? #f)
(define correlate*
  (lambda (stx_0 s-exp_0)
    (if (syntax-srcloc$1 stx_0)
      (datum->correlated s-exp_0 (srcloc->vector (syntax-srcloc$1 stx_0)))
      s-exp_0)))
(define correlate~ (lambda (stx_0 s-exp_0) s-exp_0))
(define correlate/app
  (lambda (stx_0 s-exp_0)
    (if keep-source-locations?
      (correlate* stx_0 s-exp_0)
      (begin-unsafe s-exp_0))))
(define ->correlated (lambda (s_0) (datum->correlated s_0 #f)))
(define correlate-source-name
  (lambda (sym_0 e-sym_0)
    (if (eq? sym_0 e-sym_0)
      sym_0
      (let ((e_0 (datum->correlated sym_0 #f)))
        (begin-unsafe (syntax-property e_0 'source-name e-sym_0))))))
(define compile-keep-source-locations!
  (lambda (on?_0) (set! keep-source-locations? on?_0)))
(define compile$2
  (let ((compile_0
         (|#%name|
          compile
          (lambda (p3_0 cctx4_0 name1_0 result-used?2_0)
            (begin
              (let ((compile_0
                     (|#%name|
                      compile
                      (lambda (p_0 name_0 result-used?_0)
                        (begin
                          (compile$2 p_0 cctx4_0 name_0 result-used?_0))))))
                (let ((s_0 (parsed-s p3_0)))
                  (if (parsed-id? p3_0)
                    (compile-identifier.1 #f #f p3_0 cctx4_0)
                    (if (parsed-lambda? p3_0)
                      (if result-used?2_0
                        (add-lambda-properties
                         (correlate*
                          s_0
                          (list*
                           'lambda
                           (let ((formals_0 (parsed-lambda-keys p3_0)))
                             (let ((bodys_0 (parsed-lambda-body p3_0)))
                               (begin-unsafe
                                (list
                                 formals_0
                                 (compile-sequence bodys_0 cctx4_0 #f #t)))))))
                         name1_0
                         s_0)
                        (let ((s-exp_0 ''unused-lambda))
                          (begin-unsafe s-exp_0)))
                      (if (parsed-case-lambda? p3_0)
                        (if result-used?2_0
                          (add-lambda-properties
                           (correlate*
                            s_0
                            (list*
                             'case-lambda
                             (reverse$1
                              (let ((lst_0 (parsed-case-lambda-clauses p3_0)))
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (fold-var_0 lst_1)
                                        (begin
                                          (if (pair? lst_1)
                                            (let ((clause_0
                                                   (unsafe-car lst_1)))
                                              (let ((rest_0
                                                     (unsafe-cdr lst_1)))
                                                (let ((fold-var_1
                                                       (let ((fold-var_1
                                                              (cons
                                                               (let ((formals_0
                                                                      (car
                                                                       clause_0)))
                                                                 (let ((bodys_0
                                                                        (cadr
                                                                         clause_0)))
                                                                   (let ((formals_1
                                                                          formals_0))
                                                                     (begin-unsafe
                                                                      (list
                                                                       formals_1
                                                                       (compile-sequence
                                                                        bodys_0
                                                                        cctx4_0
                                                                        #f
                                                                        #t))))))
                                                               fold-var_0)))
                                                         (values fold-var_1))))
                                                  (for-loop_0
                                                   fold-var_1
                                                   rest_0))))
                                            fold-var_0))))))
                                   (for-loop_0 null lst_0)))))))
                           name1_0
                           s_0)
                          (let ((s-exp_0 ''unused-case-lambda))
                            (begin-unsafe s-exp_0)))
                        (if (parsed-app? p3_0)
                          (let ((rands_0 (parsed-app-rands p3_0)))
                            (correlate/app
                             s_0
                             (let ((app_0
                                    (let ((p_0 (parsed-app-rator p3_0)))
                                      (begin-unsafe
                                       (begin
                                         (compile$2 p_0 cctx4_0 #f #t))))))
                               (cons
                                app_0
                                (reverse$1
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (fold-var_0 lst_0)
                                         (begin
                                           (if (pair? lst_0)
                                             (let ((r_0 (unsafe-car lst_0)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_0)))
                                                 (let ((fold-var_1
                                                        (let ((fold-var_1
                                                               (cons
                                                                (begin-unsafe
                                                                 (begin
                                                                   (compile$2
                                                                    r_0
                                                                    cctx4_0
                                                                    #f
                                                                    #t)))
                                                                fold-var_0)))
                                                          (values
                                                           fold-var_1))))
                                                   (for-loop_0
                                                    fold-var_1
                                                    rest_0))))
                                             fold-var_0))))))
                                    (for-loop_0 null rands_0))))))))
                          (if (parsed-if? p3_0)
                            (let ((tst-e_0
                                   (let ((p_0 (parsed-if-tst p3_0)))
                                     (begin-unsafe
                                      (begin (compile$2 p_0 cctx4_0 #f #f))))))
                              (if (eq? (correlated-e tst-e_0) #t)
                                (let ((p_0 (parsed-if-thn p3_0)))
                                  (begin-unsafe
                                   (begin
                                     (compile$2
                                      p_0
                                      cctx4_0
                                      name1_0
                                      result-used?2_0))))
                                (if (eq? (correlated-e tst-e_0) #f)
                                  (let ((p_0 (parsed-if-els p3_0)))
                                    (begin-unsafe
                                     (begin
                                       (compile$2
                                        p_0
                                        cctx4_0
                                        name1_0
                                        result-used?2_0))))
                                  (let ((s-exp_0
                                         (let ((app_0
                                                (let ((p_0
                                                       (parsed-if-thn p3_0)))
                                                  (begin-unsafe
                                                   (begin
                                                     (compile$2
                                                      p_0
                                                      cctx4_0
                                                      name1_0
                                                      result-used?2_0))))))
                                           (list
                                            'if
                                            tst-e_0
                                            app_0
                                            (let ((p_0 (parsed-if-els p3_0)))
                                              (begin-unsafe
                                               (begin
                                                 (compile$2
                                                  p_0
                                                  cctx4_0
                                                  name1_0
                                                  result-used?2_0))))))))
                                    (begin-unsafe s-exp_0)))))
                            (if (parsed-with-continuation-mark? p3_0)
                              (let ((s-exp_0
                                     (let ((app_0
                                            (let ((p_0
                                                   (parsed-with-continuation-mark-key
                                                    p3_0)))
                                              (begin-unsafe
                                               (begin
                                                 (compile$2
                                                  p_0
                                                  cctx4_0
                                                  #f
                                                  #t))))))
                                       (let ((app_1
                                              (let ((p_0
                                                     (parsed-with-continuation-mark-val
                                                      p3_0)))
                                                (begin-unsafe
                                                 (begin
                                                   (compile$2
                                                    p_0
                                                    cctx4_0
                                                    #f
                                                    #t))))))
                                         (list
                                          'with-continuation-mark
                                          app_0
                                          app_1
                                          (let ((p_0
                                                 (parsed-with-continuation-mark-body
                                                  p3_0)))
                                            (begin-unsafe
                                             (begin
                                               (compile$2
                                                p_0
                                                cctx4_0
                                                name1_0
                                                result-used?2_0)))))))))
                                (begin-unsafe s-exp_0))
                              (if (parsed-begin0? p3_0)
                                (let ((s-exp_0
                                       (let ((app_0
                                              (let ((p_0
                                                     (car
                                                      (parsed-begin0-body
                                                       p3_0))))
                                                (begin-unsafe
                                                 (begin
                                                   (compile$2
                                                    p_0
                                                    cctx4_0
                                                    name1_0
                                                    result-used?2_0))))))
                                         (list*
                                          'begin0
                                          app_0
                                          (reverse$1
                                           (let ((lst_0
                                                  (cdr
                                                   (parsed-begin0-body p3_0))))
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (fold-var_0 lst_1)
                                                     (begin
                                                       (if (pair? lst_1)
                                                         (let ((e_0
                                                                (unsafe-car
                                                                 lst_1)))
                                                           (let ((rest_0
                                                                  (unsafe-cdr
                                                                   lst_1)))
                                                             (let ((fold-var_1
                                                                    (let ((fold-var_1
                                                                           (cons
                                                                            (begin-unsafe
                                                                             (begin
                                                                               (compile$2
                                                                                e_0
                                                                                cctx4_0
                                                                                #f
                                                                                #f)))
                                                                            fold-var_0)))
                                                                      (values
                                                                       fold-var_1))))
                                                               (for-loop_0
                                                                fold-var_1
                                                                rest_0))))
                                                         fold-var_0))))))
                                                (for-loop_0 null lst_0)))))))))
                                  (begin-unsafe s-exp_0))
                                (if (parsed-begin? p3_0)
                                  (let ((s-exp_0
                                         (compile-begin
                                          (parsed-begin-body p3_0)
                                          cctx4_0
                                          name1_0
                                          result-used?2_0)))
                                    (begin-unsafe s-exp_0))
                                  (if (parsed-set!? p3_0)
                                    (let ((s-exp_0
                                           (let ((temp21_0
                                                  (parsed-set!-id p3_0)))
                                             (let ((temp24_0
                                                    (let ((p_0
                                                           (parsed-set!-rhs
                                                            p3_0)))
                                                      (let ((name_0
                                                             (parsed-s
                                                              (parsed-set!-id
                                                               p3_0))))
                                                        (begin-unsafe
                                                         (begin
                                                           (compile$2
                                                            p_0
                                                            cctx4_0
                                                            name_0
                                                            #t)))))))
                                               (let ((temp21_1 temp21_0))
                                                 (compile-identifier.1
                                                  temp24_0
                                                  #t
                                                  temp21_1
                                                  cctx4_0))))))
                                      (begin-unsafe s-exp_0))
                                    (if (parsed-let-values? p3_0)
                                      (compile-let.1
                                       #f
                                       p3_0
                                       cctx4_0
                                       name1_0
                                       result-used?2_0)
                                      (if (parsed-letrec-values? p3_0)
                                        (compile-let.1
                                         #t
                                         p3_0
                                         cctx4_0
                                         name1_0
                                         result-used?2_0)
                                        (if (parsed-quote? p3_0)
                                          (let ((datum_0
                                                 (parsed-quote-datum p3_0)))
                                            (if (self-quoting-in-linklet?
                                                 datum_0)
                                              (begin-unsafe datum_0)
                                              (let ((s-exp_0
                                                     (list 'quote datum_0)))
                                                (begin-unsafe s-exp_0))))
                                          (if (parsed-quote-syntax? p3_0)
                                            (if result-used?2_0
                                              (compile-quote-syntax
                                               (parsed-quote-syntax-datum p3_0)
                                               cctx4_0)
                                              (let ((s-exp_0 ''syntax))
                                                (begin-unsafe s-exp_0)))
                                            (if (|parsed-#%variable-reference?|
                                                 p3_0)
                                              (let ((id_0
                                                     (|parsed-#%variable-reference-id|
                                                      p3_0)))
                                                (let ((s-exp_0
                                                       (if id_0
                                                         (list
                                                          '|#%variable-reference|
                                                          (compile-identifier.1
                                                           #f
                                                           #f
                                                           id_0
                                                           cctx4_0))
                                                         '(|#%variable-reference|))))
                                                  (begin-unsafe s-exp_0)))
                                              (error
                                               "unrecognized parsed form:"
                                               p3_0))))))))))))))))))))))
    (|#%name|
     compile
     (case-lambda
      ((p_0 cctx_0) (begin (compile_0 p_0 cctx_0 #f #t)))
      ((p_0 cctx_0 name_0 result-used?2_0)
       (compile_0 p_0 cctx_0 name_0 result-used?2_0))
      ((p_0 cctx_0 name1_0) (compile_0 p_0 cctx_0 name1_0 #t))))))
(define compile-lambda
  (lambda (formals_0 bodys_0 cctx_0)
    (list formals_0 (compile-sequence bodys_0 cctx_0 #f #t))))
(define compile-sequence
  (lambda (bodys_0 cctx_0 name_0 result-used?_0)
    (if (null? (cdr bodys_0))
      (compile$2 (car bodys_0) cctx_0 name_0 result-used?_0)
      (compile-begin bodys_0 cctx_0 name_0 result-used?_0))))
(define compile-begin
  (lambda (es_0 cctx_0 name_0 result-used?_0)
    (let ((used-pos_0 (sub1 (length es_0))))
      (list*
       'begin
       (reverse$1
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (fold-var_0 lst_0 pos_0)
                (begin
                  (if (if (pair? lst_0) #t #f)
                    (let ((e_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (let ((fold-var_1
                               (let ((fold-var_1
                                      (cons
                                       (let ((used?_0 (= pos_0 used-pos_0)))
                                         (compile$2
                                          e_0
                                          cctx_0
                                          (if used?_0 name_0 #f)
                                          (if used?_0 result-used?_0 #f)))
                                       fold-var_0)))
                                 (values fold-var_1))))
                          (for-loop_0 fold-var_1 rest_0 (+ pos_0 1)))))
                    fold-var_0))))))
           (for-loop_0 null es_0 0))))))))
(define add-lambda-properties
  (lambda (s_0 inferred-name_0 orig-s_0)
    (letrec*
     ((simplify-name_0
       (|#%name|
        simplify-name
        (lambda (v_0)
          (begin
            (if (pair? v_0)
              (let ((n1_0 (simplify-name_0 (car v_0))))
                (let ((n2_0 (simplify-name_0 (cdr v_0))))
                  (if (eq? n1_0 n2_0) n1_0 v_0)))
              v_0))))))
     (let ((name_0
            (let ((or-part_0
                   (let ((v_0
                          (simplify-name_0
                           (syntax-property$1 orig-s_0 'inferred-name))))
                     (if (let ((or-part_0 (symbol? v_0)))
                           (if or-part_0
                             or-part_0
                             (let ((or-part_1
                                    (if (syntax?$1 v_0)
                                      (symbol? (syntax-e$1 v_0))
                                      #f)))
                               (if or-part_1 or-part_1 (void? v_0)))))
                       v_0
                       #f))))
              (if or-part_0 or-part_0 inferred-name_0))))
       (let ((named-s_0
              (if name_0
                (let ((e_0 (begin-unsafe (datum->correlated s_0 #f))))
                  (let ((v_0
                         (if (syntax?$1 name_0) (syntax-e$1 name_0) name_0)))
                    (let ((e_1 e_0))
                      (begin-unsafe
                       (syntax-property e_1 'inferred-name v_0)))))
                s_0)))
         (let ((as-method_0 (syntax-property$1 orig-s_0 'method-arity-error)))
           (if as-method_0
             (let ((e_0 (begin-unsafe (datum->correlated named-s_0 #f))))
               (begin-unsafe
                (syntax-property e_0 'method-arity-error as-method_0)))
             named-s_0)))))))
(define compile-let.1
  (|#%name|
   compile-let
   (lambda (rec?5_0 p7_0 cctx8_0 name9_0 result-used?10_0)
     (begin
       (let ((body_0 (parsed-let_-values-body p7_0)))
         (let ((stx_0 (parsed-s p7_0)))
           (let ((s-exp_0
                  (let ((app_0
                         (reverse$1
                          (let ((lst_0 (parsed-let_-values-clauses p7_0)))
                            (let ((lst_1 (parsed-let_-values-idss p7_0)))
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_0 lst_2 lst_3)
                                      (begin
                                        (if (if (pair? lst_2) (pair? lst_3) #f)
                                          (let ((clause_0 (unsafe-car lst_2)))
                                            (let ((rest_0 (unsafe-cdr lst_2)))
                                              (let ((ids_0 (unsafe-car lst_3)))
                                                (let ((rest_1
                                                       (unsafe-cdr lst_3)))
                                                  (let ((fold-var_1
                                                         (let ((fold-var_1
                                                                (cons
                                                                 (let ((app_0
                                                                        (if rec?5_0
                                                                          (reverse$1
                                                                           (let ((lst_4
                                                                                  (car
                                                                                   clause_0)))
                                                                             (begin
                                                                               (letrec*
                                                                                ((for-loop_1
                                                                                  (|#%name|
                                                                                   for-loop
                                                                                   (lambda (fold-var_1
                                                                                            lst_5
                                                                                            lst_6)
                                                                                     (begin
                                                                                       (if (if (pair?
                                                                                                lst_5)
                                                                                             (pair?
                                                                                              lst_6)
                                                                                             #f)
                                                                                         (let ((sym_0
                                                                                                (unsafe-car
                                                                                                 lst_5)))
                                                                                           (let ((rest_2
                                                                                                  (unsafe-cdr
                                                                                                   lst_5)))
                                                                                             (let ((id_0
                                                                                                    (unsafe-car
                                                                                                     lst_6)))
                                                                                               (let ((rest_3
                                                                                                      (unsafe-cdr
                                                                                                       lst_6)))
                                                                                                 (let ((fold-var_2
                                                                                                        (let ((fold-var_2
                                                                                                               (cons
                                                                                                                (add-undefined-error-name-property
                                                                                                                 sym_0
                                                                                                                 id_0)
                                                                                                                fold-var_1)))
                                                                                                          (values
                                                                                                           fold-var_2))))
                                                                                                   (for-loop_1
                                                                                                    fold-var_2
                                                                                                    rest_2
                                                                                                    rest_3))))))
                                                                                         fold-var_1))))))
                                                                                (for-loop_1
                                                                                 null
                                                                                 lst_4
                                                                                 ids_0)))))
                                                                          (car
                                                                           clause_0))))
                                                                   (list
                                                                    app_0
                                                                    (let ((app_1
                                                                           (cadr
                                                                            clause_0)))
                                                                      (compile$2
                                                                       app_1
                                                                       cctx8_0
                                                                       (if (=
                                                                            1
                                                                            (length
                                                                             ids_0))
                                                                         (car
                                                                          ids_0)
                                                                         #f)))))
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0
                                                     rest_1))))))
                                          fold-var_0))))))
                                 (for-loop_0 null lst_0 lst_1))))))))
                    (list
                     (if rec?5_0 'letrec-values 'let-values)
                     app_0
                     (compile-sequence
                      body_0
                      cctx8_0
                      name9_0
                      result-used?10_0)))))
             (let ((stx_1 stx_0)) (begin-unsafe s-exp_0)))))))))
(define add-undefined-error-name-property
  (lambda (sym_0 orig-id_0)
    (let ((id_0 (begin-unsafe sym_0)))
      (let ((e_0 (begin-unsafe (datum->correlated id_0 #f))))
        (let ((v_0
               (let ((or-part_0
                      (syntax-property$1 orig-id_0 'undefined-error-name)))
                 (if or-part_0 or-part_0 (syntax-e$1 orig-id_0)))))
          (let ((e_1 e_0))
            (begin-unsafe
             (syntax-property e_1 'undefined-error-name v_0))))))))
(define compile-identifier.1
  (|#%name|
   compile-identifier
   (lambda (set-to13_0 set-to?12_0 p16_0 cctx17_0)
     (begin
       (let ((normal-b_0 (parsed-id-binding p16_0)))
         (let ((b_0
                (if normal-b_0
                  normal-b_0
                  (let ((temp37_0 (compile-context-self cctx17_0)))
                    (let ((temp38_0 (compile-context-phase cctx17_0)))
                      (let ((temp39_0 (syntax-e$1 (parsed-s p16_0))))
                        (let ((temp38_1 temp38_0) (temp37_1 temp37_0))
                          (make-module-binding.1
                           #f
                           null
                           #f
                           #f
                           unsafe-undefined
                           unsafe-undefined
                           0
                           unsafe-undefined
                           temp37_1
                           temp38_1
                           temp39_0))))))))
           (let ((sym_0
                  (if (local-binding? b_0)
                    (local-binding-key b_0)
                    (if (module-binding? b_0)
                      (let ((mpi_0
                             (if (parsed-top-id? p16_0)
                               (compile-context-self cctx17_0)
                               (module-binding-module b_0))))
                        (if (parsed-primitive-id? p16_0)
                          (begin
                            (if (zero? (module-binding-phase b_0))
                              (void)
                              (error
                               "internal error: non-zero phase for a primitive"))
                            (if set-to?12_0
                              (error
                               "internal error: cannot assign to a primitive:"
                               (module-binding-sym b_0))
                              (void))
                            (module-binding-sym b_0))
                          (let ((c1_0
                                 (if (eq?
                                      mpi_0
                                      (compile-context-module-self cctx17_0))
                                   (let ((app_0
                                          (header-binding-sym-to-define-sym
                                           (compile-context-header cctx17_0))))
                                     (hash-ref
                                      app_0
                                      (module-binding-sym b_0)
                                      #f))
                                   #f)))
                            (if c1_0
                              c1_0
                              (let ((temp40_0
                                     (compile-context-header cctx17_0)))
                                (let ((temp41_0
                                       (if (inside-module-context?
                                            mpi_0
                                            (compile-context-self cctx17_0))
                                         (compile-context-self cctx17_0)
                                         mpi_0)))
                                  (let ((temp42_0 (module-binding-phase b_0)))
                                    (let ((temp43_0 (module-binding-sym b_0)))
                                      (let ((temp44_0
                                             (let ((or-part_0
                                                    (module-binding-extra-inspector
                                                     b_0)))
                                               (if or-part_0
                                                 or-part_0
                                                 (let ((or-part_1
                                                        (parsed-id-inspector
                                                         p16_0)))
                                                   (if or-part_1
                                                     or-part_1
                                                     (if (parsed-s p16_0)
                                                       (syntax-inspector
                                                        (parsed-s p16_0))
                                                       #f)))))))
                                        (let ((temp43_1 temp43_0)
                                              (temp42_1 temp42_0)
                                              (temp41_1 temp41_0)
                                              (temp40_1 temp40_0))
                                          (register-required-variable-use!.1
                                           #f
                                           temp40_1
                                           temp41_1
                                           temp42_1
                                           temp43_1
                                           temp44_0)))))))))))
                      (error
                       "not a reference to a module or local binding:"
                       b_0
                       (parsed-s p16_0))))))
             (let ((stx_0 (parsed-s p16_0)))
               (let ((s-exp_0
                      (if set-to?12_0 (list 'set! sym_0 set-to13_0) sym_0)))
                 (begin-unsafe s-exp_0))))))))))
(define compile-quote-syntax
  (lambda (q_0 cctx_0)
    (let ((pos_0 (add-syntax-literal! (compile-context-header cctx_0) q_0)))
      (if (compile-context-lazy-syntax-literals? cctx_0)
        (begin-unsafe (list get-syntax-literal!-id pos_0))
        (begin-unsafe (list 'unsafe-vector*-ref syntax-literals-id pos_0))))))
(define extra-inspectors-allow?
  (lambda (extra-inspectors_0 guard-insp_0)
    (if (not extra-inspectors_0)
      #f
      (if (begin-unsafe (hash? extra-inspectors_0))
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (result_0 i_0)
                (begin
                  (if i_0
                    (let ((extra-insp_0
                           (unsafe-immutable-hash-iterate-key
                            extra-inspectors_0
                            i_0)))
                      (let ((result_1
                             (let ((result_1
                                    (inspector-superior?
                                     extra-insp_0
                                     guard-insp_0)))
                               (values result_1))))
                        (if (if (not
                                 (let ((x_0 (list extra-insp_0)))
                                   (not result_1)))
                              #t
                              #f)
                          (for-loop_0
                           result_1
                           (unsafe-immutable-hash-iterate-next
                            extra-inspectors_0
                            i_0))
                          result_1)))
                    result_0))))))
           (for-loop_0
            #t
            (unsafe-immutable-hash-iterate-first extra-inspectors_0))))
        (if (procedure? extra-inspectors_0)
          (|#%app| extra-inspectors_0 guard-insp_0)
          (error
           'extra-inspectors-allow?
           "unknown representation of extra inspectors: ~e"
           extra-inspectors_0))))))
(define extra-inspectors-merge
  (lambda (extra-inspectors-1_0 extra-inspectors-2_0)
    (if (let ((or-part_0 (not extra-inspectors-1_0)))
          (if or-part_0 or-part_0 (not extra-inspectors-2_0)))
      #f
      (if (if (begin-unsafe (hash? extra-inspectors-1_0))
            (begin-unsafe (hash? extra-inspectors-2_0))
            #f)
        (set-union extra-inspectors-1_0 extra-inspectors-2_0)
        (lambda (guard-insp_0)
          (if (extra-inspectors-allow? extra-inspectors-1_0 guard-insp_0)
            (extra-inspectors-allow? extra-inspectors-2_0 guard-insp_0)
            #f))))))
(define finish_2356
  (make-struct-type-install-properties
   '(module-use*)
   2
   0
   struct:module-use
   null
   (current-inspector)
   #f
   '()
   #f
   'module-use*))
(define struct:module-use*
  (make-record-type-descriptor
   'module-use*
   struct:module-use
   (|#%nongenerative-uid| module-use*)
   #f
   #f
   '(2 . 3)))
(define effect_2316 (finish_2356 struct:module-use*))
(define module-use*1.1
  (|#%name|
   module-use*
   (record-constructor
    (make-record-constructor-descriptor struct:module-use* #f #f))))
(define module-use*?_2564
  (|#%name| module-use*? (record-predicate struct:module-use*)))
(define module-use*?
  (|#%name|
   module-use*?
   (lambda (v)
     (if (module-use*?_2564 v)
       #t
       ($value
        (if (impersonator? v) (module-use*?_2564 (impersonator-val v)) #f))))))
(define module-use*-extra-inspectorss_2584
  (|#%name|
   module-use*-extra-inspectorss
   (record-accessor struct:module-use* 0)))
(define module-use*-extra-inspectorss
  (|#%name|
   module-use*-extra-inspectorss
   (lambda (s)
     (if (module-use*?_2564 s)
       (module-use*-extra-inspectorss_2584 s)
       ($value
        (impersonate-ref
         module-use*-extra-inspectorss_2584
         struct:module-use*
         0
         s
         'extra-inspectorss))))))
(define module-use*-self-inspector_2469
  (|#%name| module-use*-self-inspector (record-accessor struct:module-use* 1)))
(define module-use*-self-inspector
  (|#%name|
   module-use*-self-inspector
   (lambda (s)
     (if (module-use*?_2564 s)
       (module-use*-self-inspector_2469 s)
       ($value
        (impersonate-ref
         module-use*-self-inspector_2469
         struct:module-use*
         1
         s
         'self-inspector))))))
(define set-module-use*-extra-inspectorss!_2709
  (|#%name|
   set-module-use*-extra-inspectorss!
   (record-mutator struct:module-use* 0)))
(define set-module-use*-extra-inspectorss!
  (|#%name|
   set-module-use*-extra-inspectorss!
   (lambda (s v)
     (if (module-use*?_2564 s)
       (set-module-use*-extra-inspectorss!_2709 s v)
       ($value
        (impersonate-set!
         set-module-use*-extra-inspectorss!_2709
         struct:module-use*
         0
         2
         s
         v
         'extra-inspectorss))))))
(define set-module-use*-self-inspector!_2824
  (|#%name|
   set-module-use*-self-inspector!
   (record-mutator struct:module-use* 1)))
(define set-module-use*-self-inspector!
  (|#%name|
   set-module-use*-self-inspector!
   (lambda (s v)
     (if (module-use*?_2564 s)
       (set-module-use*-self-inspector!_2824 s v)
       ($value
        (impersonate-set!
         set-module-use*-self-inspector!_2824
         struct:module-use*
         1
         3
         s
         v
         'self-inspector))))))
(define module-uses-add-extra-inspectorsss
  (lambda (mus_0 extra-inspectorsss_0)
    (if extra-inspectorsss_0
      (reverse$1
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (fold-var_0 lst_0 lst_1)
               (begin
                 (if (if (pair? lst_0) (pair? lst_1) #f)
                   (let ((mu_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((extra-inspectorss_0 (unsafe-car lst_1)))
                         (let ((rest_1 (unsafe-cdr lst_1)))
                           (let ((fold-var_1
                                  (let ((fold-var_1
                                         (cons
                                          (let ((app_0
                                                 (module-use-module mu_0)))
                                            (module-use*1.1
                                             app_0
                                             (module-use-phase mu_0)
                                             extra-inspectorss_0
                                             #f))
                                          fold-var_0)))
                                    (values fold-var_1))))
                             (for-loop_0 fold-var_1 rest_0 rest_1))))))
                   fold-var_0))))))
          (for-loop_0 null mus_0 extra-inspectorsss_0))))
      (reverse$1
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (fold-var_0 lst_0)
               (begin
                 (if (pair? lst_0)
                   (let ((mu_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((fold-var_1
                              (let ((fold-var_1
                                     (cons
                                      (let ((app_0 (module-use-module mu_0)))
                                        (module-use*1.1
                                         app_0
                                         (module-use-phase mu_0)
                                         #f
                                         #f))
                                      fold-var_0)))
                                (values fold-var_1))))
                         (for-loop_0 fold-var_1 rest_0))))
                   fold-var_0))))))
          (for-loop_0 null mus_0)))))))
(define module-uses-strip-extra-inspectorsss
  (lambda (mu*s_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((mu*_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (let ((fold-var_1
                                   (cons
                                    (let ((app_0 (module-use-module mu*_0)))
                                      (module-use1.1
                                       app_0
                                       (module-use-phase mu*_0)))
                                    fold-var_0)))
                              (values fold-var_1))))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null mu*s_0))))))
(define module-uses-extract-extra-inspectorsss
  (lambda (mu*s_0 linklet_0 check-inlined-reference?_0 skip-n_0)
    (if (not check-inlined-reference?_0)
      (reverse$1
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (fold-var_0 lst_0)
               (begin
                 (if (pair? lst_0)
                   (let ((mu*_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((fold-var_1
                              (let ((fold-var_1
                                     (cons
                                      (module-use*-extra-inspectorss mu*_0)
                                      fold-var_0)))
                                (values fold-var_1))))
                         (for-loop_0 fold-var_1 rest_0))))
                   fold-var_0))))))
          (for-loop_0 null mu*s_0))))
      (reverse$1
       (let ((lst_0 (list-tail (linklet-import-variables linklet_0) skip-n_0)))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (fold-var_0 lst_1 lst_2)
                 (begin
                   (if (if (pair? lst_1) (pair? lst_2) #f)
                     (let ((mu*_0 (unsafe-car lst_1)))
                       (let ((rest_0 (unsafe-cdr lst_1)))
                         (let ((imports_0 (unsafe-car lst_2)))
                           (let ((rest_1 (unsafe-cdr lst_2)))
                             (let ((fold-var_1
                                    (let ((fold-var_1
                                           (cons
                                            (let ((extra-inspectorss_0
                                                   (module-use*-extra-inspectorss
                                                    mu*_0)))
                                              (begin
                                                (letrec*
                                                 ((for-loop_1
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (extra-inspectorss_1
                                                             lst_3)
                                                      (begin
                                                        (if (pair? lst_3)
                                                          (let ((import_0
                                                                 (unsafe-car
                                                                  lst_3)))
                                                            (let ((rest_2
                                                                   (unsafe-cdr
                                                                    lst_3)))
                                                              (let ((extra-inspectorss_2
                                                                     (let ((extra-inspectorss_2
                                                                            (if (eq?
                                                                                 (hash-ref
                                                                                  extra-inspectorss_1
                                                                                  import_0
                                                                                  kw2162)
                                                                                 kw2162)
                                                                              (hash-set
                                                                               extra-inspectorss_1
                                                                               import_0
                                                                               (set
                                                                                (module-use*-self-inspector
                                                                                 mu*_0)))
                                                                              extra-inspectorss_1)))
                                                                       (values
                                                                        extra-inspectorss_2))))
                                                                (for-loop_1
                                                                 extra-inspectorss_2
                                                                 rest_2))))
                                                          extra-inspectorss_1))))))
                                                 (for-loop_1
                                                  extra-inspectorss_0
                                                  imports_0))))
                                            fold-var_0)))
                                      (values fold-var_1))))
                               (for-loop_0 fold-var_1 rest_0 rest_1))))))
                     fold-var_0))))))
            (for-loop_0 null mu*s_0 lst_0))))))))
(define module-use*-declaration-inspector!
  (lambda (mu*_0 insp_0) (set-module-use*-self-inspector! mu*_0 insp_0)))
(define module-use+extra-inspectors
  (lambda (mpi_0
           phase_0
           imports_0
           inspector_0
           extra-inspector_0
           extra-inspectorss_0)
    (let ((now-inspector_0 (current-code-inspector)))
      (let ((add-insp?_0
             (if inspector_0
               (inspector-superior? inspector_0 now-inspector_0)
               #f)))
        (let ((add-extra-insp?_0
               (if extra-inspector_0
                 (inspector-superior? extra-inspector_0 now-inspector_0)
                 #f)))
          (let ((new-extra-inspectorss_0
                 (if (if add-insp?_0 add-insp?_0 add-extra-insp?_0)
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (table_0 lst_0)
                           (begin
                             (if (pair? lst_0)
                               (let ((import_0 (unsafe-car lst_0)))
                                 (let ((rest_0 (unsafe-cdr lst_0)))
                                   (let ((table_1
                                          (let ((table_1
                                                 (call-with-values
                                                  (lambda ()
                                                    (values
                                                     import_0
                                                     (let ((extra-inspectors_0
                                                            (if extra-inspectorss_0
                                                              (hash-ref
                                                               extra-inspectorss_0
                                                               import_0
                                                               #f)
                                                              #f)))
                                                       (lambda (guard-insp_0)
                                                         (let ((or-part_0
                                                                (if add-insp?_0
                                                                  (inspector-superior?
                                                                   inspector_0
                                                                   guard-insp_0)
                                                                  #f)))
                                                           (if or-part_0
                                                             or-part_0
                                                             (let ((or-part_1
                                                                    (if add-extra-insp?_0
                                                                      (inspector-superior?
                                                                       extra-inspector_0
                                                                       guard-insp_0)
                                                                      #f)))
                                                               (if or-part_1
                                                                 or-part_1
                                                                 (extra-inspectors-allow?
                                                                  extra-inspectors_0
                                                                  guard-insp_0)))))))))
                                                  (case-lambda
                                                   ((key_0 val_0)
                                                    (hash-set
                                                     table_0
                                                     key_0
                                                     val_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))))
                                            (values table_1))))
                                     (for-loop_0 table_1 rest_0))))
                               table_0))))))
                      (for-loop_0 hash2725 imports_0)))
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (extra-inspectorss_1 lst_0)
                           (begin
                             (if (pair? lst_0)
                               (let ((import_0 (unsafe-car lst_0)))
                                 (let ((rest_0 (unsafe-cdr lst_0)))
                                   (let ((extra-inspectorss_2
                                          (let ((extra-inspectorss_2
                                                 (if (hash-ref
                                                      extra-inspectorss_1
                                                      import_0
                                                      #f)
                                                   extra-inspectorss_1
                                                   (hash-set
                                                    extra-inspectorss_1
                                                    import_0
                                                    #f))))
                                            (values extra-inspectorss_2))))
                                     (for-loop_0 extra-inspectorss_2 rest_0))))
                               extra-inspectorss_1))))))
                      (for-loop_0
                       (if extra-inspectorss_0 extra-inspectorss_0 (seteq))
                       imports_0))))))
            (module-use*1.1 mpi_0 phase_0 new-extra-inspectorss_0 #f)))))))
(define module-use-merge-extra-inspectorss!
  (lambda (existing-mu*_0 mu*_0)
    (let ((existing-extra-inspectorss_0
           (module-use*-extra-inspectorss existing-mu*_0)))
      (let ((extra-inspectorss_0 (module-use*-extra-inspectorss mu*_0)))
        (let ((new-extra-inspectorss_0
               (if (not existing-extra-inspectorss_0)
                 extra-inspectorss_0
                 (if (not extra-inspectorss_0)
                   existing-extra-inspectorss_0
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (new-extra-inspectorss_0 i_0)
                           (begin
                             (if i_0
                               (call-with-values
                                (lambda ()
                                  (hash-iterate-key+value
                                   extra-inspectorss_0
                                   i_0))
                                (case-lambda
                                 ((sym_0 extra-inspectors_0)
                                  (let ((new-extra-inspectorss_1
                                         (let ((new-extra-inspectorss_1
                                                (hash-set
                                                 new-extra-inspectorss_0
                                                 sym_0
                                                 (extra-inspectors-merge
                                                  extra-inspectors_0
                                                  (hash-ref
                                                   new-extra-inspectorss_0
                                                   sym_0
                                                   (seteq))))))
                                           (values new-extra-inspectorss_1))))
                                    (for-loop_0
                                     new-extra-inspectorss_1
                                     (hash-iterate-next
                                      extra-inspectorss_0
                                      i_0))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               new-extra-inspectorss_0))))))
                      (for-loop_0
                       existing-extra-inspectorss_0
                       (hash-iterate-first extra-inspectorss_0))))))))
          (set-module-use*-extra-inspectorss!
           existing-mu*_0
           new-extra-inspectorss_0))))))
(define finish_2980
  (make-struct-type-install-properties
   '(link-info)
   4
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'link-info))
(define struct:link-info
  (make-record-type-descriptor
   'link-info
   #f
   (|#%nongenerative-uid| link-info)
   #f
   #f
   '(4 . 0)))
(define effect_2792 (finish_2980 struct:link-info))
(define link-info1.1
  (|#%name|
   link-info
   (record-constructor
    (make-record-constructor-descriptor struct:link-info #f #f))))
(define link-info?_2751
  (|#%name| link-info? (record-predicate struct:link-info)))
(define link-info?
  (|#%name|
   link-info?
   (lambda (v)
     (if (link-info?_2751 v)
       #t
       ($value
        (if (impersonator? v) (link-info?_2751 (impersonator-val v)) #f))))))
(define link-info-link-module-uses_2350
  (|#%name| link-info-link-module-uses (record-accessor struct:link-info 0)))
(define link-info-link-module-uses
  (|#%name|
   link-info-link-module-uses
   (lambda (s)
     (if (link-info?_2751 s)
       (link-info-link-module-uses_2350 s)
       ($value
        (impersonate-ref
         link-info-link-module-uses_2350
         struct:link-info
         0
         s
         'link-module-uses))))))
(define link-info-imports_2277
  (|#%name| link-info-imports (record-accessor struct:link-info 1)))
(define link-info-imports
  (|#%name|
   link-info-imports
   (lambda (s)
     (if (link-info?_2751 s)
       (link-info-imports_2277 s)
       ($value
        (impersonate-ref
         link-info-imports_2277
         struct:link-info
         1
         s
         'imports))))))
(define link-info-extra-inspectorsss_2727
  (|#%name| link-info-extra-inspectorsss (record-accessor struct:link-info 2)))
(define link-info-extra-inspectorsss
  (|#%name|
   link-info-extra-inspectorsss
   (lambda (s)
     (if (link-info?_2751 s)
       (link-info-extra-inspectorsss_2727 s)
       ($value
        (impersonate-ref
         link-info-extra-inspectorsss_2727
         struct:link-info
         2
         s
         'extra-inspectorsss))))))
(define link-info-def-decls_3021
  (|#%name| link-info-def-decls (record-accessor struct:link-info 3)))
(define link-info-def-decls
  (|#%name|
   link-info-def-decls
   (lambda (s)
     (if (link-info?_2751 s)
       (link-info-def-decls_3021 s)
       ($value
        (impersonate-ref
         link-info-def-decls_3021
         struct:link-info
         3
         s
         'def-decls))))))
(define compile-forms.1
  (|#%name|
   compile-forms
   (lambda (body-import-instances3_0
            body-imports2_0
            body-suffix-forms4_0
            compiled-expression-callback8_0
            definition-callback9_0
            encoded-root-expand-ctx-box6_0
            force-phases5_0
            get-module-linklet-info11_0
            module-prompt?13_0
            optimize-linklet?15_0
            other-form-callback10_0
            realm17_0
            root-ctx-only-if-syntax?7_0
            serializable?12_0
            to-correlated-linklet?14_0
            unsafe?-box16_0
            bodys34_0
            cctx35_0
            mpis36_0)
     (begin
       (let ((get-module-linklet-info_0
              (if (eq? get-module-linklet-info11_0 unsafe-undefined)
                (|#%name|
                 get-module-linklet-info
                 (lambda (mod-name_0 p_0) (begin #f)))
                get-module-linklet-info11_0)))
         (let ((realm_0
                (if (eq? realm17_0 unsafe-undefined)
                  (current-compile-realm)
                  realm17_0)))
           (let ((phase_0 (compile-context-phase cctx35_0)))
             (let ((self_0 (compile-context-self cctx35_0)))
               (let ((syntax-literals_0 (make-syntax-literals)))
                 (let ((phase-to-body_0 (make-hasheqv)))
                   (let ((add-body!_0
                          (|#%name|
                           add-body!
                           (lambda (phase_1 body_0)
                             (begin
                               (let ((xform_0
                                      (lambda (l_0) (cons body_0 l_0))))
                                 (begin-unsafe
                                  (do-hash-update
                                   'hash-update!
                                   #t
                                   hash-set!
                                   phase-to-body_0
                                   phase_1
                                   xform_0
                                   null))))))))
                     (let ((phase-to-header_0 (make-hasheqv)))
                       (let ((find-or-create-header!_0
                              (|#%name|
                               find-or-create-header!
                               (lambda (phase_1)
                                 (begin
                                   (let ((or-part_0
                                          (hash-ref
                                           phase-to-header_0
                                           phase_1
                                           #f)))
                                     (if or-part_0
                                       or-part_0
                                       (let ((header_0
                                              (make-header
                                               mpis36_0
                                               syntax-literals_0)))
                                         (begin
                                           (hash-set!
                                            phase-to-header_0
                                            phase_1
                                            header_0)
                                           header_0)))))))))
                         (begin
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (lst_0)
                                   (begin
                                     (if (pair? lst_0)
                                       (let ((phase_1 (unsafe-car lst_0)))
                                         (let ((rest_0 (unsafe-cdr lst_0)))
                                           (begin
                                             (begin
                                               (find-or-create-header!_0
                                                phase_1)
                                               (add-body!_0 phase_1 '(void)))
                                             (for-loop_0 rest_0))))
                                       (values)))))))
                              (for-loop_0 force-phases5_0)))
                           (let ((saw-define-syntaxes?_0 #f))
                             (begin
                               (if (compile-context-module-self cctx35_0)
                                 (letrec*
                                  ((loop!_0
                                    (|#%name|
                                     loop!
                                     (lambda (bodys_0 phase_1 header_0)
                                       (begin
                                         (begin
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (lst_0)
                                                   (begin
                                                     (if (pair? lst_0)
                                                       (let ((body_0
                                                              (unsafe-car
                                                               lst_0)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_0)))
                                                           (begin
                                                             (if (parsed-define-values?
                                                                  body_0)
                                                               (begin
                                                                 (let ((lst_1
                                                                        (parsed-define-values-syms
                                                                         body_0)))
                                                                   (begin
                                                                     (letrec*
                                                                      ((for-loop_1
                                                                        (|#%name|
                                                                         for-loop
                                                                         (lambda (lst_2)
                                                                           (begin
                                                                             (if (pair?
                                                                                  lst_2)
                                                                               (let ((sym_0
                                                                                      (unsafe-car
                                                                                       lst_2)))
                                                                                 (let ((rest_1
                                                                                        (unsafe-cdr
                                                                                         lst_2)))
                                                                                   (begin
                                                                                     (let ((def-sym_0
                                                                                            (select-fresh
                                                                                             sym_0
                                                                                             header_0)))
                                                                                       (begin
                                                                                         (hash-set!
                                                                                          (header-binding-sym-to-define-sym
                                                                                           header_0)
                                                                                          sym_0
                                                                                          def-sym_0)
                                                                                         (set-header-binding-syms-in-order!
                                                                                          header_0
                                                                                          (cons
                                                                                           sym_0
                                                                                           (header-binding-syms-in-order
                                                                                            header_0)))
                                                                                         (begin-unsafe
                                                                                          (hash-set!
                                                                                           (header-define-and-import-syms
                                                                                            header_0)
                                                                                           def-sym_0
                                                                                           'defined))))
                                                                                     (for-loop_1
                                                                                      rest_1))))
                                                                               (values)))))))
                                                                      (for-loop_1
                                                                       lst_1))))
                                                                 (void))
                                                               (if (parsed-begin-for-syntax?
                                                                    body_0)
                                                                 (let ((app_0
                                                                        (add1
                                                                         phase_1)))
                                                                   (loop!_0
                                                                    (parsed-begin-for-syntax-body
                                                                     body_0)
                                                                    app_0
                                                                    (find-or-create-header!_0
                                                                     (add1
                                                                      phase_1))))
                                                                 (void)))
                                                             (for-loop_0
                                                              rest_0))))
                                                       (values)))))))
                                              (for-loop_0 bodys_0)))
                                           (void)))))))
                                  (loop!_0
                                   bodys34_0
                                   phase_0
                                   (find-or-create-header!_0 phase_0)))
                                 (void))
                               (let ((as-required?_0
                                      (|#%name|
                                       as-required?
                                       (lambda (header_0)
                                         (begin
                                           (lambda (sym_0)
                                             (registered-as-required?
                                              header_0
                                              sym_0)))))))
                                 (let ((last-i_0 (sub1 (length bodys34_0))))
                                   (begin
                                     (letrec*
                                      ((loop!_0
                                        (|#%name|
                                         loop!
                                         (lambda (bodys_0 phase_1 header_0)
                                           (begin
                                             (begin
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (lst_0 pos_0)
                                                       (begin
                                                         (if (if (pair? lst_0)
                                                               #t
                                                               #f)
                                                           (let ((body_0
                                                                  (unsafe-car
                                                                   lst_0)))
                                                             (let ((rest_0
                                                                    (unsafe-cdr
                                                                     lst_0)))
                                                               (begin
                                                                 (if (parsed-define-values?
                                                                      body_0)
                                                                   (let ((ids_0
                                                                          (parsed-define-values-ids
                                                                           body_0)))
                                                                     (let ((binding-syms_0
                                                                            (parsed-define-values-syms
                                                                             body_0)))
                                                                       (let ((def-syms_0
                                                                              (if (compile-context-module-self
                                                                                   cctx35_0)
                                                                                (reverse$1
                                                                                 (begin
                                                                                   (letrec*
                                                                                    ((for-loop_1
                                                                                      (|#%name|
                                                                                       for-loop
                                                                                       (lambda (fold-var_0
                                                                                                lst_1
                                                                                                lst_2)
                                                                                         (begin
                                                                                           (if (if (pair?
                                                                                                    lst_1)
                                                                                                 (pair?
                                                                                                  lst_2)
                                                                                                 #f)
                                                                                             (let ((binding-sym_0
                                                                                                    (unsafe-car
                                                                                                     lst_1)))
                                                                                               (let ((rest_1
                                                                                                      (unsafe-cdr
                                                                                                       lst_1)))
                                                                                                 (let ((id_0
                                                                                                        (unsafe-car
                                                                                                         lst_2)))
                                                                                                   (let ((rest_2
                                                                                                          (unsafe-cdr
                                                                                                           lst_2)))
                                                                                                     (let ((fold-var_1
                                                                                                            (let ((fold-var_1
                                                                                                                   (cons
                                                                                                                    (let ((app_0
                                                                                                                           (hash-ref
                                                                                                                            (header-binding-sym-to-define-sym
                                                                                                                             header_0)
                                                                                                                            binding-sym_0)))
                                                                                                                      (correlate-source-name
                                                                                                                       app_0
                                                                                                                       (syntax-e$1
                                                                                                                        id_0)))
                                                                                                                    fold-var_0)))
                                                                                                              (values
                                                                                                               fold-var_1))))
                                                                                                       (for-loop_1
                                                                                                        fold-var_1
                                                                                                        rest_1
                                                                                                        rest_2))))))
                                                                                             fold-var_0))))))
                                                                                    (for-loop_1
                                                                                     null
                                                                                     binding-syms_0
                                                                                     ids_0))))
                                                                                (reverse$1
                                                                                 (begin
                                                                                   (letrec*
                                                                                    ((for-loop_1
                                                                                      (|#%name|
                                                                                       for-loop
                                                                                       (lambda (fold-var_0
                                                                                                lst_1)
                                                                                         (begin
                                                                                           (if (pair?
                                                                                                lst_1)
                                                                                             (let ((binding-sym_0
                                                                                                    (unsafe-car
                                                                                                     lst_1)))
                                                                                               (let ((rest_1
                                                                                                      (unsafe-cdr
                                                                                                       lst_1)))
                                                                                                 (let ((fold-var_1
                                                                                                        (let ((fold-var_1
                                                                                                               (cons
                                                                                                                (let ((temp66_0
                                                                                                                       (compile-context-self
                                                                                                                        cctx35_0)))
                                                                                                                  (register-required-variable-use!.1
                                                                                                                   #t
                                                                                                                   header_0
                                                                                                                   temp66_0
                                                                                                                   phase_1
                                                                                                                   binding-sym_0
                                                                                                                   #f))
                                                                                                                fold-var_0)))
                                                                                                          (values
                                                                                                           fold-var_1))))
                                                                                                   (for-loop_1
                                                                                                    fold-var_1
                                                                                                    rest_1))))
                                                                                             fold-var_0))))))
                                                                                    (for-loop_1
                                                                                     null
                                                                                     binding-syms_0)))))))
                                                                         (let ((rhs_0
                                                                                (let ((app_0
                                                                                       (if (compile-context?
                                                                                            cctx35_0)
                                                                                         (compile-context1.1
                                                                                          (compile-context-namespace
                                                                                           cctx35_0)
                                                                                          phase_1
                                                                                          (compile-context-self
                                                                                           cctx35_0)
                                                                                          (compile-context-module-self
                                                                                           cctx35_0)
                                                                                          (compile-context-full-module-name
                                                                                           cctx35_0)
                                                                                          (compile-context-lazy-syntax-literals?
                                                                                           cctx35_0)
                                                                                          header_0)
                                                                                         (raise-argument-error
                                                                                          'struct-copy
                                                                                          "compile-context?"
                                                                                          cctx35_0))))
                                                                                  (compile$2
                                                                                   (parsed-define-values-rhs
                                                                                    body_0)
                                                                                   app_0
                                                                                   (if (=
                                                                                        (length
                                                                                         ids_0)
                                                                                        1)
                                                                                     (car
                                                                                      ids_0)
                                                                                     #f)))))
                                                                           (begin
                                                                             (|#%app|
                                                                              definition-callback9_0)
                                                                             (let ((app_0
                                                                                    (length
                                                                                     def-syms_0)))
                                                                               (|#%app|
                                                                                compiled-expression-callback8_0
                                                                                rhs_0
                                                                                app_0
                                                                                phase_1
                                                                                (as-required?_0
                                                                                 header_0)))
                                                                             (add-body!_0
                                                                              phase_1
                                                                              (let ((app_0
                                                                                     (correlate*
                                                                                      (parsed-s
                                                                                       body_0)
                                                                                      (list
                                                                                       'define-values
                                                                                       def-syms_0
                                                                                       rhs_0))))
                                                                                (propagate-inline-property
                                                                                 app_0
                                                                                 (parsed-s
                                                                                  body_0))))
                                                                             (if (let ((or-part_0
                                                                                        (compile-context-module-self
                                                                                         cctx35_0)))
                                                                                   (if or-part_0
                                                                                     or-part_0
                                                                                     (null?
                                                                                      ids_0)))
                                                                               (void)
                                                                               (begin
                                                                                 (add-body!_0
                                                                                  phase_1
                                                                                  (list*
                                                                                   'if
                                                                                   #f
                                                                                   (list*
                                                                                    'begin
                                                                                    (reverse$1
                                                                                     (begin
                                                                                       (letrec*
                                                                                        ((for-loop_1
                                                                                          (|#%name|
                                                                                           for-loop
                                                                                           (lambda (fold-var_0
                                                                                                    lst_1)
                                                                                             (begin
                                                                                               (if (pair?
                                                                                                    lst_1)
                                                                                                 (let ((def-sym_0
                                                                                                        (unsafe-car
                                                                                                         lst_1)))
                                                                                                   (let ((rest_1
                                                                                                          (unsafe-cdr
                                                                                                           lst_1)))
                                                                                                     (let ((fold-var_1
                                                                                                            (cons
                                                                                                             (list*
                                                                                                              'set!
                                                                                                              def-sym_0
                                                                                                              '(#f))
                                                                                                             fold-var_0)))
                                                                                                       (let ((fold-var_2
                                                                                                              (values
                                                                                                               fold-var_1)))
                                                                                                         (for-loop_1
                                                                                                          fold-var_2
                                                                                                          rest_1)))))
                                                                                                 fold-var_0))))))
                                                                                        (for-loop_1
                                                                                         null
                                                                                         def-syms_0)))))
                                                                                   '((void))))
                                                                                 (add-body!_0
                                                                                  phase_1
                                                                                  (compile-top-level-bind
                                                                                   ids_0
                                                                                   binding-syms_0
                                                                                   (if (compile-context?
                                                                                        cctx35_0)
                                                                                     (compile-context1.1
                                                                                      (compile-context-namespace
                                                                                       cctx35_0)
                                                                                      phase_1
                                                                                      (compile-context-self
                                                                                       cctx35_0)
                                                                                      (compile-context-module-self
                                                                                       cctx35_0)
                                                                                      (compile-context-full-module-name
                                                                                       cctx35_0)
                                                                                      (compile-context-lazy-syntax-literals?
                                                                                       cctx35_0)
                                                                                      header_0)
                                                                                     (raise-argument-error
                                                                                      'struct-copy
                                                                                      "compile-context?"
                                                                                      cctx35_0))
                                                                                   #f)))))))))
                                                                   (if (parsed-define-syntaxes?
                                                                        body_0)
                                                                     (let ((ids_0
                                                                            (parsed-define-syntaxes-ids
                                                                             body_0)))
                                                                       (let ((binding-syms_0
                                                                              (parsed-define-syntaxes-syms
                                                                               body_0)))
                                                                         (let ((next-header_0
                                                                                (find-or-create-header!_0
                                                                                 (add1
                                                                                  phase_1))))
                                                                           (let ((gen-syms_0
                                                                                  (reverse$1
                                                                                   (begin
                                                                                     (letrec*
                                                                                      ((for-loop_1
                                                                                        (|#%name|
                                                                                         for-loop
                                                                                         (lambda (fold-var_0
                                                                                                  lst_1)
                                                                                           (begin
                                                                                             (if (pair?
                                                                                                  lst_1)
                                                                                               (let ((binding-sym_0
                                                                                                      (unsafe-car
                                                                                                       lst_1)))
                                                                                                 (let ((rest_1
                                                                                                        (unsafe-cdr
                                                                                                         lst_1)))
                                                                                                   (let ((fold-var_1
                                                                                                          (let ((fold-var_1
                                                                                                                 (cons
                                                                                                                  (let ((gen-sym_0
                                                                                                                         (select-fresh
                                                                                                                          binding-sym_0
                                                                                                                          next-header_0)))
                                                                                                                    (begin
                                                                                                                      (begin-unsafe
                                                                                                                       (hash-set!
                                                                                                                        (header-define-and-import-syms
                                                                                                                         next-header_0)
                                                                                                                        gen-sym_0
                                                                                                                        'defined))
                                                                                                                      gen-sym_0))
                                                                                                                  fold-var_0)))
                                                                                                            (values
                                                                                                             fold-var_1))))
                                                                                                     (for-loop_1
                                                                                                      fold-var_1
                                                                                                      rest_1))))
                                                                                               fold-var_0))))))
                                                                                      (for-loop_1
                                                                                       null
                                                                                       binding-syms_0))))))
                                                                             (let ((rhs_0
                                                                                    (compile$2
                                                                                     (parsed-define-syntaxes-rhs
                                                                                      body_0)
                                                                                     (if (compile-context?
                                                                                          cctx35_0)
                                                                                       (let ((phase75_0
                                                                                              (add1
                                                                                               phase_1)))
                                                                                         (compile-context1.1
                                                                                          (compile-context-namespace
                                                                                           cctx35_0)
                                                                                          phase75_0
                                                                                          (compile-context-self
                                                                                           cctx35_0)
                                                                                          (compile-context-module-self
                                                                                           cctx35_0)
                                                                                          (compile-context-full-module-name
                                                                                           cctx35_0)
                                                                                          (compile-context-lazy-syntax-literals?
                                                                                           cctx35_0)
                                                                                          next-header_0))
                                                                                       (raise-argument-error
                                                                                        'struct-copy
                                                                                        "compile-context?"
                                                                                        cctx35_0)))))
                                                                               (begin
                                                                                 (|#%app|
                                                                                  definition-callback9_0)
                                                                                 (begin
                                                                                   (let ((app_0
                                                                                          (length
                                                                                           gen-syms_0)))
                                                                                     (let ((app_1
                                                                                            (add1
                                                                                             phase_1)))
                                                                                       (|#%app|
                                                                                        compiled-expression-callback8_0
                                                                                        rhs_0
                                                                                        app_0
                                                                                        app_1
                                                                                        (as-required?_0
                                                                                         header_0))))
                                                                                   (let ((transformer-set!s_0
                                                                                          (reverse$1
                                                                                           (begin
                                                                                             (letrec*
                                                                                              ((for-loop_1
                                                                                                (|#%name|
                                                                                                 for-loop
                                                                                                 (lambda (fold-var_0
                                                                                                          lst_1
                                                                                                          lst_2)
                                                                                                   (begin
                                                                                                     (if (if (pair?
                                                                                                              lst_1)
                                                                                                           (pair?
                                                                                                            lst_2)
                                                                                                           #f)
                                                                                                       (let ((binding-sym_0
                                                                                                              (unsafe-car
                                                                                                               lst_1)))
                                                                                                         (let ((rest_1
                                                                                                                (unsafe-cdr
                                                                                                                 lst_1)))
                                                                                                           (let ((gen-sym_0
                                                                                                                  (unsafe-car
                                                                                                                   lst_2)))
                                                                                                             (let ((rest_2
                                                                                                                    (unsafe-cdr
                                                                                                                     lst_2)))
                                                                                                               (let ((fold-var_1
                                                                                                                      (cons
                                                                                                                       (list
                                                                                                                        set-transformer!-id
                                                                                                                        (list
                                                                                                                         'quote
                                                                                                                         binding-sym_0)
                                                                                                                        gen-sym_0)
                                                                                                                       fold-var_0)))
                                                                                                                 (let ((fold-var_2
                                                                                                                        (values
                                                                                                                         fold-var_1)))
                                                                                                                   (for-loop_1
                                                                                                                    fold-var_2
                                                                                                                    rest_1
                                                                                                                    rest_2)))))))
                                                                                                       fold-var_0))))))
                                                                                              (for-loop_1
                                                                                               null
                                                                                               binding-syms_0
                                                                                               gen-syms_0))))))
                                                                                     (begin
                                                                                       (if (compile-context-module-self
                                                                                            cctx35_0)
                                                                                         (let ((app_0
                                                                                                (add1
                                                                                                 phase_1)))
                                                                                           (add-body!_0
                                                                                            app_0
                                                                                            (let ((app_1
                                                                                                   (list
                                                                                                    (list
                                                                                                     gen-syms_0
                                                                                                     rhs_0))))
                                                                                              (list
                                                                                               'let-values
                                                                                               app_1
                                                                                               (list*
                                                                                                'begin
                                                                                                (qq-append
                                                                                                 transformer-set!s_0
                                                                                                 '((void))))))))
                                                                                         (let ((app_0
                                                                                                (add1
                                                                                                 phase_1)))
                                                                                           (add-body!_0
                                                                                            app_0
                                                                                            (generate-top-level-define-syntaxes
                                                                                             gen-syms_0
                                                                                             rhs_0
                                                                                             transformer-set!s_0
                                                                                             (compile-top-level-bind
                                                                                              ids_0
                                                                                              binding-syms_0
                                                                                              (if (compile-context?
                                                                                                   cctx35_0)
                                                                                                (compile-context1.1
                                                                                                 (compile-context-namespace
                                                                                                  cctx35_0)
                                                                                                 phase_1
                                                                                                 (compile-context-self
                                                                                                  cctx35_0)
                                                                                                 (compile-context-module-self
                                                                                                  cctx35_0)
                                                                                                 (compile-context-full-module-name
                                                                                                  cctx35_0)
                                                                                                 (compile-context-lazy-syntax-literals?
                                                                                                  cctx35_0)
                                                                                                 header_0)
                                                                                                (raise-argument-error
                                                                                                 'struct-copy
                                                                                                 "compile-context?"
                                                                                                 cctx35_0))
                                                                                              gen-syms_0)))))
                                                                                       (set! saw-define-syntaxes?_0
                                                                                         #t))))))))))
                                                                     (if (parsed-begin-for-syntax?
                                                                          body_0)
                                                                       (let ((app_0
                                                                              (add1
                                                                               phase_1)))
                                                                         (loop!_0
                                                                          (parsed-begin-for-syntax-body
                                                                           body_0)
                                                                          app_0
                                                                          (find-or-create-header!_0
                                                                           (add1
                                                                            phase_1))))
                                                                       (if (let ((or-part_0
                                                                                  (|parsed-#%declare?|
                                                                                   body_0)))
                                                                             (if or-part_0
                                                                               or-part_0
                                                                               (let ((or-part_1
                                                                                      (parsed-module?
                                                                                       body_0)))
                                                                                 (if or-part_1
                                                                                   or-part_1
                                                                                   (parsed-require?
                                                                                    body_0)))))
                                                                         (let ((e_0
                                                                                (|#%app|
                                                                                 other-form-callback10_0
                                                                                 body_0
                                                                                 (if (compile-context?
                                                                                      cctx35_0)
                                                                                   (compile-context1.1
                                                                                    (compile-context-namespace
                                                                                     cctx35_0)
                                                                                    phase_1
                                                                                    (compile-context-self
                                                                                     cctx35_0)
                                                                                    (compile-context-module-self
                                                                                     cctx35_0)
                                                                                    (compile-context-full-module-name
                                                                                     cctx35_0)
                                                                                    (compile-context-lazy-syntax-literals?
                                                                                     cctx35_0)
                                                                                    header_0)
                                                                                   (raise-argument-error
                                                                                    'struct-copy
                                                                                    "compile-context?"
                                                                                    cctx35_0)))))
                                                                           (if e_0
                                                                             (begin
                                                                               (|#%app|
                                                                                compiled-expression-callback8_0
                                                                                e_0
                                                                                #f
                                                                                phase_1
                                                                                (as-required?_0
                                                                                 header_0))
                                                                               (add-body!_0
                                                                                phase_1
                                                                                e_0))
                                                                             (void)))
                                                                         (let ((e_0
                                                                                (let ((app_0
                                                                                       (if (compile-context?
                                                                                            cctx35_0)
                                                                                         (compile-context1.1
                                                                                          (compile-context-namespace
                                                                                           cctx35_0)
                                                                                          phase_1
                                                                                          (compile-context-self
                                                                                           cctx35_0)
                                                                                          (compile-context-module-self
                                                                                           cctx35_0)
                                                                                          (compile-context-full-module-name
                                                                                           cctx35_0)
                                                                                          (compile-context-lazy-syntax-literals?
                                                                                           cctx35_0)
                                                                                          header_0)
                                                                                         (raise-argument-error
                                                                                          'struct-copy
                                                                                          "compile-context?"
                                                                                          cctx35_0))))
                                                                                  (compile$2
                                                                                   body_0
                                                                                   app_0
                                                                                   #f
                                                                                   (=
                                                                                    pos_0
                                                                                    last-i_0)))))
                                                                           (begin
                                                                             (|#%app|
                                                                              compiled-expression-callback8_0
                                                                              e_0
                                                                              #f
                                                                              phase_1
                                                                              (as-required?_0
                                                                               header_0))
                                                                             (add-body!_0
                                                                              phase_1
                                                                              e_0)))))))
                                                                 (for-loop_0
                                                                  rest_0
                                                                  (+
                                                                   pos_0
                                                                   1)))))
                                                           (values)))))))
                                                  (for-loop_0 bodys_0 0)))
                                               (void)))))))
                                      (loop!_0
                                       bodys34_0
                                       phase_0
                                       (find-or-create-header!_0 phase_0)))
                                     (let ((encoded-root-expand-pos_0
                                            (if encoded-root-expand-ctx-box6_0
                                              (if (unbox
                                                   encoded-root-expand-ctx-box6_0)
                                                (if (not
                                                     (if root-ctx-only-if-syntax?7_0
                                                       (if (not
                                                            saw-define-syntaxes?_0)
                                                         (begin-unsafe
                                                          (null?
                                                           (syntax-literals-stxes
                                                            syntax-literals_0)))
                                                         #f)
                                                       #f))
                                                  (add-syntax-literal!
                                                   syntax-literals_0
                                                   (unbox
                                                    encoded-root-expand-ctx-box6_0))
                                                  #f)
                                                #f)
                                              #f)))
                                       (let ((phases-in-order_0
                                              (let ((temp83_0
                                                     (hash-keys
                                                      phase-to-body_0)))
                                                (sort.1 #f #f temp83_0 <))))
                                         (let ((min-phase_0
                                                (if (pair? phases-in-order_0)
                                                  (car phases-in-order_0)
                                                  phase_0)))
                                           (let ((max-phase_0
                                                  (if (pair? phases-in-order_0)
                                                    (car
                                                     (reverse$1
                                                      phases-in-order_0))
                                                    phase_0)))
                                             (let ((phase-to-link-info_0
                                                    (begin
                                                      (letrec*
                                                       ((for-loop_0
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (table_0
                                                                   lst_0)
                                                            (begin
                                                              (if (pair? lst_0)
                                                                (let ((phase_1
                                                                       (unsafe-car
                                                                        lst_0)))
                                                                  (let ((rest_0
                                                                         (unsafe-cdr
                                                                          lst_0)))
                                                                    (let ((table_1
                                                                           (let ((table_1
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((header_0
                                                                                            (hash-ref
                                                                                             phase-to-header_0
                                                                                             phase_1
                                                                                             #f)))
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (generate-links+imports
                                                                                           header_0
                                                                                           phase_1
                                                                                           cctx35_0
                                                                                           optimize-linklet?15_0))
                                                                                        (case-lambda
                                                                                         ((link-module-uses_0
                                                                                           imports_0
                                                                                           extra-inspectorsss_0
                                                                                           def-decls_0)
                                                                                          (values
                                                                                           phase_1
                                                                                           (link-info1.1
                                                                                            link-module-uses_0
                                                                                            imports_0
                                                                                            extra-inspectorsss_0
                                                                                            def-decls_0)))
                                                                                         (args
                                                                                          (raise-binding-result-arity-error
                                                                                           4
                                                                                           args))))))
                                                                                   (case-lambda
                                                                                    ((key_0
                                                                                      val_0)
                                                                                     (hash-set
                                                                                      table_0
                                                                                      key_0
                                                                                      val_0))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args))))))
                                                                             (values
                                                                              table_1))))
                                                                      (for-loop_0
                                                                       table_1
                                                                       rest_0))))
                                                                table_0))))))
                                                       (for-loop_0
                                                        hash2725
                                                        phases-in-order_0)))))
                                               (let ((body-linklets+module-use*s_0
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (table_0
                                                                     lst_0)
                                                              (begin
                                                                (if (pair?
                                                                     lst_0)
                                                                  (let ((phase_1
                                                                         (unsafe-car
                                                                          lst_0)))
                                                                    (let ((rest_0
                                                                           (unsafe-cdr
                                                                            lst_0)))
                                                                      (let ((table_1
                                                                             (let ((table_1
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (let ((bodys_0
                                                                                              (hash-ref
                                                                                               phase-to-body_0
                                                                                               phase_1)))
                                                                                         (let ((li_0
                                                                                                (hash-ref
                                                                                                 phase-to-link-info_0
                                                                                                 phase_1)))
                                                                                           (let ((binding-sym-to-define-sym_0
                                                                                                  (header-binding-sym-to-define-sym
                                                                                                   (hash-ref
                                                                                                    phase-to-header_0
                                                                                                    phase_1))))
                                                                                             (let ((module-use*s_0
                                                                                                    (let ((app_0
                                                                                                           (link-info-link-module-uses
                                                                                                            li_0)))
                                                                                                      (module-uses-add-extra-inspectorsss
                                                                                                       app_0
                                                                                                       (link-info-extra-inspectorsss
                                                                                                        li_0)))))
                                                                                               (let ((body-linklet_0
                                                                                                      (let ((app_0
                                                                                                             (qq-append
                                                                                                              body-imports2_0
                                                                                                              (link-info-imports
                                                                                                               li_0))))
                                                                                                        (let ((app_1
                                                                                                               (let ((app_1
                                                                                                                      (link-info-def-decls
                                                                                                                       li_0)))
                                                                                                                 (qq-append
                                                                                                                  app_1
                                                                                                                  (reverse$1
                                                                                                                   (let ((lst_1
                                                                                                                          (header-binding-syms-in-order
                                                                                                                           (hash-ref
                                                                                                                            phase-to-header_0
                                                                                                                            phase_1))))
                                                                                                                     (begin
                                                                                                                       (letrec*
                                                                                                                        ((for-loop_1
                                                                                                                          (|#%name|
                                                                                                                           for-loop
                                                                                                                           (lambda (fold-var_0
                                                                                                                                    lst_2)
                                                                                                                             (begin
                                                                                                                               (if (pair?
                                                                                                                                    lst_2)
                                                                                                                                 (let ((binding-sym_0
                                                                                                                                        (unsafe-car
                                                                                                                                         lst_2)))
                                                                                                                                   (let ((rest_1
                                                                                                                                          (unsafe-cdr
                                                                                                                                           lst_2)))
                                                                                                                                     (let ((fold-var_1
                                                                                                                                            (let ((fold-var_1
                                                                                                                                                   (cons
                                                                                                                                                    (let ((def-sym_0
                                                                                                                                                           (hash-ref
                                                                                                                                                            binding-sym-to-define-sym_0
                                                                                                                                                            binding-sym_0)))
                                                                                                                                                      (if (eq?
                                                                                                                                                           def-sym_0
                                                                                                                                                           binding-sym_0)
                                                                                                                                                        def-sym_0
                                                                                                                                                        (list
                                                                                                                                                         def-sym_0
                                                                                                                                                         binding-sym_0)))
                                                                                                                                                    fold-var_0)))
                                                                                                                                              (values
                                                                                                                                               fold-var_1))))
                                                                                                                                       (for-loop_1
                                                                                                                                        fold-var_1
                                                                                                                                        rest_1))))
                                                                                                                                 fold-var_0))))))
                                                                                                                        (for-loop_1
                                                                                                                         null
                                                                                                                         lst_1)))))))))
                                                                                                          (list*
                                                                                                           'linklet
                                                                                                           app_0
                                                                                                           app_1
                                                                                                           (qq-append
                                                                                                            (reverse$1
                                                                                                             bodys_0)
                                                                                                            body-suffix-forms4_0))))))
                                                                                                 (call-with-values
                                                                                                  (lambda ()
                                                                                                    (if to-correlated-linklet?14_0
                                                                                                      (values
                                                                                                       (begin-unsafe
                                                                                                        (correlated-linklet1.1
                                                                                                         body-linklet_0
                                                                                                         'module
                                                                                                         #f))
                                                                                                       module-use*s_0)
                                                                                                      (let ((temp93_0
                                                                                                             (if unsafe?-box16_0
                                                                                                               (unbox
                                                                                                                unsafe?-box16_0)
                                                                                                               #f)))
                                                                                                        (let ((temp95_0
                                                                                                               (compile-context-namespace
                                                                                                                cctx35_0)))
                                                                                                          (let ((temp93_1
                                                                                                                 temp93_0))
                                                                                                            (compile-module-linklet.1
                                                                                                             body-import-instances3_0
                                                                                                             body-imports2_0
                                                                                                             unsafe-undefined
                                                                                                             get-module-linklet-info_0
                                                                                                             #f
                                                                                                             module-prompt?13_0
                                                                                                             module-use*s_0
                                                                                                             temp95_0
                                                                                                             optimize-linklet?15_0
                                                                                                             realm_0
                                                                                                             serializable?12_0
                                                                                                             temp93_1
                                                                                                             body-linklet_0))))))
                                                                                                  (case-lambda
                                                                                                   ((linklet_0
                                                                                                     new-module-use*s_0)
                                                                                                    (values
                                                                                                     phase_1
                                                                                                     (cons
                                                                                                      linklet_0
                                                                                                      new-module-use*s_0)))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     2
                                                                                                     args))))))))))
                                                                                     (case-lambda
                                                                                      ((key_0
                                                                                        val_0)
                                                                                       (hash-set
                                                                                        table_0
                                                                                        key_0
                                                                                        val_0))
                                                                                      (args
                                                                                       (raise-binding-result-arity-error
                                                                                        2
                                                                                        args))))))
                                                                               (values
                                                                                table_1))))
                                                                        (for-loop_0
                                                                         table_1
                                                                         rest_0))))
                                                                  table_0))))))
                                                         (for-loop_0
                                                          hash2610
                                                          phases-in-order_0)))))
                                                 (let ((body-linklets_0
                                                        (begin
                                                          (letrec*
                                                           ((for-loop_0
                                                             (|#%name|
                                                              for-loop
                                                              (lambda (table_0
                                                                       i_0)
                                                                (begin
                                                                  (if i_0
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (hash-iterate-key+value
                                                                        body-linklets+module-use*s_0
                                                                        i_0))
                                                                     (case-lambda
                                                                      ((phase_1
                                                                        l+mu*s_0)
                                                                       (let ((table_1
                                                                              (let ((table_1
                                                                                     (call-with-values
                                                                                      (lambda ()
                                                                                        (values
                                                                                         phase_1
                                                                                         (car
                                                                                          l+mu*s_0)))
                                                                                      (case-lambda
                                                                                       ((key_0
                                                                                         val_0)
                                                                                        (hash-set
                                                                                         table_0
                                                                                         key_0
                                                                                         val_0))
                                                                                       (args
                                                                                        (raise-binding-result-arity-error
                                                                                         2
                                                                                         args))))))
                                                                                (values
                                                                                 table_1))))
                                                                         (for-loop_0
                                                                          table_1
                                                                          (hash-iterate-next
                                                                           body-linklets+module-use*s_0
                                                                           i_0))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))
                                                                    table_0))))))
                                                           (for-loop_0
                                                            hash2610
                                                            (hash-iterate-first
                                                             body-linklets+module-use*s_0))))))
                                                   (let ((phase-to-link-module-uses_0
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_0
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (table_0
                                                                         i_0)
                                                                  (begin
                                                                    (if i_0
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (hash-iterate-key+value
                                                                          body-linklets+module-use*s_0
                                                                          i_0))
                                                                       (case-lambda
                                                                        ((phase_1
                                                                          l+mu*s_0)
                                                                         (let ((table_1
                                                                                (let ((table_1
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (values
                                                                                           phase_1
                                                                                           (module-uses-strip-extra-inspectorsss
                                                                                            (cdr
                                                                                             l+mu*s_0))))
                                                                                        (case-lambda
                                                                                         ((key_0
                                                                                           val_0)
                                                                                          (hash-set
                                                                                           table_0
                                                                                           key_0
                                                                                           val_0))
                                                                                         (args
                                                                                          (raise-binding-result-arity-error
                                                                                           2
                                                                                           args))))))
                                                                                  (values
                                                                                   table_1))))
                                                                           (for-loop_0
                                                                            table_1
                                                                            (hash-iterate-next
                                                                             body-linklets+module-use*s_0
                                                                             i_0))))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args))))
                                                                      table_0))))))
                                                             (for-loop_0
                                                              hash2610
                                                              (hash-iterate-first
                                                               body-linklets+module-use*s_0))))))
                                                     (let ((phase-to-link-module-uses-expr_0
                                                            (serialize-phase-to-link-module-uses
                                                             phase-to-link-module-uses_0
                                                             mpis36_0)))
                                                       (let ((phase-to-link-extra-inspectorsss_0
                                                              (begin
                                                                (letrec*
                                                                 ((for-loop_0
                                                                   (|#%name|
                                                                    for-loop
                                                                    (lambda (table_0
                                                                             i_0)
                                                                      (begin
                                                                        (if i_0
                                                                          (call-with-values
                                                                           (lambda ()
                                                                             (hash-iterate-key+value
                                                                              body-linklets+module-use*s_0
                                                                              i_0))
                                                                           (case-lambda
                                                                            ((phase_1
                                                                              l+mu*s_0)
                                                                             (let ((table_1
                                                                                    (let ((id*_0
                                                                                           (let ((app_0
                                                                                                  (cdr
                                                                                                   l+mu*s_0)))
                                                                                             (let ((app_1
                                                                                                    (car
                                                                                                     l+mu*s_0)))
                                                                                               (module-uses-extract-extra-inspectorsss
                                                                                                app_0
                                                                                                app_1
                                                                                                (if optimize-linklet?15_0
                                                                                                  (not
                                                                                                   to-correlated-linklet?14_0)
                                                                                                  #f)
                                                                                                (length
                                                                                                 body-imports2_0))))))
                                                                                      (begin
                                                                                        #t
                                                                                        (letrec*
                                                                                         ((for-loop_1
                                                                                           (|#%name|
                                                                                            for-loop
                                                                                            (lambda (table_1)
                                                                                              (begin
                                                                                                (let ((table_2
                                                                                                       (if id*_0
                                                                                                         (let ((table_2
                                                                                                                (call-with-values
                                                                                                                 (lambda ()
                                                                                                                   (values
                                                                                                                    phase_1
                                                                                                                    id*_0))
                                                                                                                 (case-lambda
                                                                                                                  ((key_0
                                                                                                                    val_0)
                                                                                                                   (hash-set
                                                                                                                    table_1
                                                                                                                    key_0
                                                                                                                    val_0))
                                                                                                                  (args
                                                                                                                   (raise-binding-result-arity-error
                                                                                                                    2
                                                                                                                    args))))))
                                                                                                           (values
                                                                                                            table_2))
                                                                                                         table_1)))
                                                                                                  table_2))))))
                                                                                         (for-loop_1
                                                                                          table_0))))))
                                                                               (for-loop_0
                                                                                table_1
                                                                                (hash-iterate-next
                                                                                 body-linklets+module-use*s_0
                                                                                 i_0))))
                                                                            (args
                                                                             (raise-binding-result-arity-error
                                                                              2
                                                                              args))))
                                                                          table_0))))))
                                                                 (for-loop_0
                                                                  hash2725
                                                                  (hash-iterate-first
                                                                   body-linklets+module-use*s_0))))))
                                                         (values
                                                          body-linklets_0
                                                          min-phase_0
                                                          max-phase_0
                                                          phase-to-link-module-uses_0
                                                          phase-to-link-module-uses-expr_0
                                                          phase-to-link-extra-inspectorsss_0
                                                          syntax-literals_0
                                                          encoded-root-expand-pos_0))))))))))))))))))))))))))))))
(define compile-top-level-bind
  (lambda (ids_0 binding-syms_0 cctx_0 trans-exprs_0)
    (let ((phase_0 (compile-context-phase cctx_0)))
      (let ((self_0 (compile-context-self cctx_0)))
        (let ((header_0 (compile-context-header cctx_0)))
          (let ((mpis_0 (header-module-path-indexes header_0)))
            (let ((top-level-bind-scope_0
                   (let ((v_0
                          (namespace-get-root-expand-ctx
                           (compile-context-namespace cctx_0))))
                     (begin-unsafe
                      (root-expand-context/inner-top-level-bind-scope
                       (root-expand-context/outer-inner v_0))))))
              (let ((self-expr_0 (add-module-path-index! mpis_0 self_0)))
                (list*
                 'begin
                 (reverse$1
                  (let ((lst_0
                         (if trans-exprs_0
                           trans-exprs_0
                           (reverse$1
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (fold-var_0 lst_0)
                                    (begin
                                      (if (pair? lst_0)
                                        (let ((id_0 (unsafe-car lst_0)))
                                          (let ((rest_0 (unsafe-cdr lst_0)))
                                            (let ((fold-var_1
                                                   (cons ''#f fold-var_0)))
                                              (let ((fold-var_2
                                                     (values fold-var_1)))
                                                (for-loop_0
                                                 fold-var_2
                                                 rest_0)))))
                                        fold-var_0))))))
                               (for-loop_0 null ids_0)))))))
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_1 lst_2 lst_3)
                            (begin
                              (if (if (pair? lst_1)
                                    (if (pair? lst_2) (pair? lst_3) #f)
                                    #f)
                                (let ((id_0 (unsafe-car lst_1)))
                                  (let ((rest_0 (unsafe-cdr lst_1)))
                                    (let ((binding-sym_0 (unsafe-car lst_2)))
                                      (let ((rest_1 (unsafe-cdr lst_2)))
                                        (let ((trans-expr_0
                                               (unsafe-car lst_3)))
                                          (let ((rest_2 (unsafe-cdr lst_3)))
                                            (let ((fold-var_1
                                                   (let ((fold-var_1
                                                          (cons
                                                           (let ((id-stx_0
                                                                  (compile-quote-syntax
                                                                   (remove-scope
                                                                    id_0
                                                                    top-level-bind-scope_0)
                                                                   cctx_0)))
                                                             (list
                                                              top-level-bind!-id
                                                              id-stx_0
                                                              self-expr_0
                                                              phase_0
                                                              phase-shift-id
                                                              ns-id
                                                              (list
                                                               'quote
                                                               binding-sym_0)
                                                              (if trans-exprs_0
                                                                #t
                                                                #f)
                                                              trans-expr_0))
                                                           fold-var_0)))
                                                     (values fold-var_1))))
                                              (for-loop_0
                                               fold-var_1
                                               rest_0
                                               rest_1
                                               rest_2))))))))
                                fold-var_0))))))
                       (for-loop_0
                        null
                        ids_0
                        binding-syms_0
                        lst_0))))))))))))))
(define generate-top-level-define-syntaxes
  (lambda (gen-syms_0 rhs_0 transformer-set!s_0 finish_0)
    (let ((app_0 (list 'lambda '() rhs_0)))
      (list
       'call-with-values
       app_0
       (list*
        'case-lambda
        (let ((app_1
               (if (null? gen-syms_0)
                 '()
                 (list
                  (list
                   gen-syms_0
                   (list*
                    'begin
                    (qq-append
                     transformer-set!s_0
                     (qq-append (cdr finish_0) '((void))))))))))
          (qq-append
           app_1
           (let ((app_2
                  (list
                   '()
                   (let ((app_2
                          (list
                           (list
                            gen-syms_0
                            (list*
                             'values
                             (reverse$1
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_0 lst_0)
                                      (begin
                                        (if (pair? lst_0)
                                          (let ((s_0 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (let ((fold-var_1
                                                     (cons ''#f fold-var_0)))
                                                (let ((fold-var_2
                                                       (values fold-var_1)))
                                                  (for-loop_0
                                                   fold-var_2
                                                   rest_0)))))
                                          fold-var_0))))))
                                 (for-loop_0 null gen-syms_0)))))))))
                     (list
                      'let-values
                      app_2
                      (list* 'begin (qq-append (cdr finish_0) '((void)))))))))
             (list
              app_2
              (list
               'args
               (list*
                'let-values
                (list (list* gen-syms_0 '((apply values args))))
                '((void)))))))))))))
(define propagate-inline-property
  (lambda (e_0 orig-s_0)
    (let ((v_0
           (syntax-property$1 orig-s_0 'compiler-hint:cross-module-inline)))
      (if v_0
        (begin-unsafe
         (syntax-property e_0 'compiler-hint:cross-module-inline v_0))
        e_0))))
(define compile-module-linklet.1
  (|#%name|
   compile-module-linklet
   (lambda (body-import-instances40_0
            body-imports39_0
            compile-linklet38_0
            get-module-linklet-info41_0
            load-modules?47_0
            module-prompt?43_0
            module-use*s44_0
            namespace48_0
            optimize-linklet?45_0
            realm49_0
            serializable?42_0
            unsafe?46_0
            body-linklet62_0)
     (begin
       (let ((compile-linklet_0
              (if (eq? compile-linklet38_0 unsafe-undefined)
                compile-linklet
                compile-linklet38_0)))
         (call-with-values
          (lambda ()
            (begin
              (if log-performance?
                (start-performance-region 'compile '_ 'linklet)
                (void))
              (begin0
                (let ((keys_0
                       (list->vector
                        (append body-import-instances40_0 module-use*s44_0))))
                  (let ((getter_0
                         (make-module-use-to-linklet
                          optimize-linklet?45_0
                          load-modules?47_0
                          namespace48_0
                          get-module-linklet-info41_0
                          module-use*s44_0)))
                    (let ((keys_1 keys_0))
                      (with-continuation-mark*
                       push-authentic
                       parameterization-key
                       (extend-parameterization
                        (continuation-mark-set-first #f parameterization-key)
                        current-compile-realm
                        realm49_0)
                       (|#%app|
                        compile-linklet_0
                        body-linklet62_0
                        'module
                        keys_1
                        getter_0
                        (let ((flags_0
                               (if serializable?42_0
                                 (if module-prompt?43_0
                                   '(serializable use-prompt)
                                   '(serializable))
                                 (if module-prompt?43_0
                                   '(use-prompt)
                                   (if optimize-linklet?45_0 '() '(quick))))))
                          (if unsafe?46_0 (cons 'unsafe flags_0) flags_0)))))))
                (if log-performance? (end-performance-region) (void)))))
          (case-lambda
           ((linklet_0 new-module-use*s_0)
            (values
             linklet_0
             (let ((app_0 (vector->list new-module-use*s_0)))
               (list-tail app_0 (length body-imports39_0)))))
           (args (raise-binding-result-arity-error 2 args)))))))))
(define make-module-use-to-linklet
  (lambda (optimize-linklet?_0
           load-modules?_0
           ns_0
           get-module-linklet-info_0
           init-mu*s_0)
    (let ((mu*-intern-table_0 (make-hash)))
      (let ((intern-module-use*_0
             (|#%name|
              intern-module-use*
              (lambda (mu*_0)
                (begin
                  (let ((mod-name_0
                         (1/module-path-index-resolve
                          (module-use-module mu*_0)
                          load-modules?_0)))
                    (let ((existing-mu*_0
                           (hash-ref
                            mu*-intern-table_0
                            (cons mod-name_0 (module-use-phase mu*_0))
                            #f)))
                      (if existing-mu*_0
                        (begin
                          (module-use-merge-extra-inspectorss!
                           existing-mu*_0
                           mu*_0)
                          existing-mu*_0)
                        (begin
                          (hash-set!
                           mu*-intern-table_0
                           (cons mod-name_0 (module-use-phase mu*_0))
                           mu*_0)
                          mu*_0)))))))))
        (begin
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (lst_0)
                  (begin
                    (if (pair? lst_0)
                      (let ((mu*_0 (unsafe-car lst_0)))
                        (let ((rest_0 (unsafe-cdr lst_0)))
                          (begin
                            (intern-module-use*_0 mu*_0)
                            (for-loop_0 rest_0))))
                      (values)))))))
             (for-loop_0 init-mu*s_0)))
          (void)
          (lambda (mu*-or-instance_0)
            (if (instance? mu*-or-instance_0)
              (values mu*-or-instance_0 #f)
              (if (not optimize-linklet?_0)
                (values #f #f)
                (if mu*-or-instance_0
                  (let ((mod-name_0
                         (1/module-path-index-resolve
                          (module-use-module mu*-or-instance_0)
                          load-modules?_0)))
                    (let ((mli_0
                           (let ((or-part_0
                                  (|#%app|
                                   get-module-linklet-info_0
                                   mod-name_0
                                   (module-use-phase mu*-or-instance_0))))
                             (if or-part_0
                               or-part_0
                               (namespace->module-linklet-info
                                ns_0
                                mod-name_0
                                (module-use-phase mu*-or-instance_0))))))
                      (begin
                        (if mli_0
                          (let ((insp_0 (module-linklet-info-inspector mli_0)))
                            (begin-unsafe
                             (set-module-use*-self-inspector!
                              mu*-or-instance_0
                              insp_0)))
                          (void))
                        (if mli_0
                          (values
                           (module-linklet-info-linklet-or-instance mli_0)
                           (if (module-linklet-info-module-uses mli_0)
                             (list->vector
                              (append
                               '(#f #f)
                               (let ((mus_0
                                      (module-linklet-info-module-uses mli_0)))
                                 (let ((extra-inspectorsss_0
                                        (module-linklet-info-extra-inspectorsss
                                         mli_0)))
                                   (reverse$1
                                    (let ((lst_0
                                           (linklet-import-variables
                                            (module-linklet-info-linklet-or-instance
                                             mli_0))))
                                      (let ((lst_1
                                             (if extra-inspectorsss_0
                                               extra-inspectorsss_0
                                               mus_0)))
                                        (let ((lst_2 lst_0))
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (fold-var_0
                                                         lst_3
                                                         lst_4
                                                         lst_5)
                                                  (begin
                                                    (if (if (pair? lst_3)
                                                          (if (pair? lst_4)
                                                            (pair? lst_5)
                                                            #f)
                                                          #f)
                                                      (let ((sub-mu_0
                                                             (unsafe-car
                                                              lst_3)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_3)))
                                                          (let ((imports_0
                                                                 (unsafe-car
                                                                  lst_4)))
                                                            (let ((rest_1
                                                                   (unsafe-cdr
                                                                    lst_4)))
                                                              (let ((extra-inspectorss_0
                                                                     (unsafe-car
                                                                      lst_5)))
                                                                (let ((rest_2
                                                                       (unsafe-cdr
                                                                        lst_5)))
                                                                  (let ((fold-var_1
                                                                         (let ((fold-var_1
                                                                                (cons
                                                                                 (intern-module-use*_0
                                                                                  (let ((app_0
                                                                                         (let ((app_0
                                                                                                (module-use-module
                                                                                                 sub-mu_0)))
                                                                                           (let ((app_1
                                                                                                  (module-linklet-info-self
                                                                                                   mli_0)))
                                                                                             (module-path-index-shift
                                                                                              app_0
                                                                                              app_1
                                                                                              (module-use-module
                                                                                               mu*-or-instance_0))))))
                                                                                    (let ((app_1
                                                                                           (module-use-phase
                                                                                            sub-mu_0)))
                                                                                      (module-use+extra-inspectors
                                                                                       app_0
                                                                                       app_1
                                                                                       imports_0
                                                                                       (module-linklet-info-inspector
                                                                                        mli_0)
                                                                                       (module-linklet-info-extra-inspector
                                                                                        mli_0)
                                                                                       (if extra-inspectorsss_0
                                                                                         extra-inspectorss_0
                                                                                         #f)))))
                                                                                 fold-var_0)))
                                                                           (values
                                                                            fold-var_1))))
                                                                    (for-loop_0
                                                                     fold-var_1
                                                                     rest_0
                                                                     rest_1
                                                                     rest_2))))))))
                                                      fold-var_0))))))
                                             (for-loop_0
                                              null
                                              mus_0
                                              lst_2
                                              lst_1)))))))))))
                             #f))
                          (values #f #f)))))
                  (values #f #f))))))))))
(define build-shared-data-linklet.1
  (|#%name|
   build-shared-data-linklet
   (lambda (to-correlated-linklet?1_0 cims3_0 ns4_0)
     (begin
       (let ((mpis_0 (make-module-path-index-table)))
         (let ((mpi-trees_0
                (map-cim-tree
                 cims3_0
                 (lambda (cim_0)
                   (call-with-values
                    (lambda ()
                      (call-with-values
                       (lambda ()
                         (let ((vec_0 (compiled-in-memory-mpis cim_0)))
                           (begin
                             (check-vector vec_0)
                             (values vec_0 (unsafe-vector-length vec_0)))))
                       (case-lambda
                        ((vec_0 len_0)
                         (begin
                           #f
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (vec_1 i_0 pos_0)
                                 (begin
                                   (if (unsafe-fx< pos_0 len_0)
                                     (let ((mpi_0
                                            (unsafe-vector-ref vec_0 pos_0)))
                                       (call-with-values
                                        (lambda ()
                                          (call-with-values
                                           (lambda ()
                                             (let ((new-vec_0
                                                    (if (eq?
                                                         i_0
                                                         (unsafe-vector*-length
                                                          vec_1))
                                                      (grow-vector vec_1)
                                                      vec_1)))
                                               (begin
                                                 (unsafe-vector*-set!
                                                  new-vec_0
                                                  i_0
                                                  (add-module-path-index!/pos
                                                   mpis_0
                                                   mpi_0))
                                                 (values
                                                  new-vec_0
                                                  (unsafe-fx+ i_0 1)))))
                                           (case-lambda
                                            ((vec_2 i_1) (values vec_2 i_1))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))
                                        (case-lambda
                                         ((vec_2 i_1)
                                          (for-loop_0
                                           vec_2
                                           i_1
                                           (unsafe-fx+ 1 pos_0)))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))
                                     (values vec_1 i_0)))))))
                            (for-loop_0 (make-vector 16) 0 0))))
                        (args (raise-binding-result-arity-error 2 args)))))
                    (case-lambda
                     ((vec_0 i_0) (shrink-vector vec_0 i_0))
                     (args (raise-binding-result-arity-error 2 args))))))))
           (let ((syntax-literals_0 (make-syntax-literals)))
             (let ((syntax-literals-trees_0
                    (map-cim-tree
                     cims3_0
                     (lambda (cim_0)
                       (add-syntax-literals!
                        syntax-literals_0
                        (compiled-in-memory-syntax-literals cim_0))))))
               (let ((module-uses-tables_0 null))
                 (let ((module-uses-tables-count_0 0))
                   (let ((phase-to-link-module-uses-trees_0
                          (map-cim-tree
                           cims3_0
                           (lambda (cim_0)
                             (let ((pos_0 module-uses-tables-count_0))
                               (begin
                                 (set! module-uses-tables_0
                                   (let ((app_0
                                          (compiled-in-memory-phase-to-link-module-uses
                                           cim_0)))
                                     (cons app_0 module-uses-tables_0)))
                                 (set! module-uses-tables-count_0 (add1 pos_0))
                                 pos_0))))))
                     (let ((syntax-literals-expr_0
                            (generate-eager-syntax-literals!
                             syntax-literals_0
                             mpis_0
                             0
                             #f
                             ns4_0)))
                       (let ((phase-to-link-module-uses-expr_0
                              (list*
                               'vector
                               (reverse$1
                                (let ((lst_0 (reverse$1 module-uses-tables_0)))
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (fold-var_0 lst_1)
                                          (begin
                                            (if (pair? lst_1)
                                              (let ((phase-to-link-module-uses_0
                                                     (unsafe-car lst_1)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_1)))
                                                  (let ((fold-var_1
                                                         (let ((fold-var_1
                                                                (cons
                                                                 (serialize-phase-to-link-module-uses
                                                                  phase-to-link-module-uses_0
                                                                  mpis_0)
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0))))
                                              fold-var_0))))))
                                     (for-loop_0 null lst_0))))))))
                         (let ((app_0
                                (list
                                 deserialize-imports
                                 eager-instance-imports)))
                           (let ((linklet-s_0
                                  (let ((app_1
                                         (list*
                                          mpi-vector-id
                                          '(mpi-vector-trees
                                            phase-to-link-modules-vector
                                            phase-to-link-modules-trees
                                            syntax-literals
                                            syntax-literals-trees))))
                                    (let ((app_2
                                           (let ((app_2 (list mpi-vector-id)))
                                             (list
                                              'define-values
                                              app_2
                                              (generate-module-path-index-deserialize.1
                                               #f
                                               mpis_0)))))
                                      (list
                                       'linklet
                                       app_0
                                       app_1
                                       app_2
                                       (list
                                        'define-values
                                        '(mpi-vector-trees)
                                        (list 'quote mpi-trees_0))
                                       (list
                                        'define-values
                                        '(phase-to-link-modules-vector)
                                        phase-to-link-module-uses-expr_0)
                                       (list
                                        'define-values
                                        '(phase-to-link-modules-trees)
                                        (list
                                         'quote
                                         phase-to-link-module-uses-trees_0))
                                       (list
                                        'define-values
                                        '(syntax-literals)
                                        syntax-literals-expr_0)
                                       (list
                                        'define-values
                                        '(syntax-literals-trees)
                                        (list
                                         'quote
                                         syntax-literals-trees_0)))))))
                             (if to-correlated-linklet?1_0
                               (begin-unsafe
                                (correlated-linklet1.1 linklet-s_0 #f #f))
                               (compile-linklet linklet-s_0)))))))))))))))))
(define map-cim-tree
  (lambda (cims_0 proc_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (cims_1)
          (begin
            (reverse$1
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (fold-var_0 lst_0)
                     (begin
                       (if (pair? lst_0)
                         (let ((cim_0 (unsafe-car lst_0)))
                           (let ((rest_0 (unsafe-cdr lst_0)))
                             (let ((fold-var_1
                                    (let ((fold-var_1
                                           (cons
                                            (let ((app_0
                                                   (|#%app| proc_0 cim_0)))
                                              (let ((app_1
                                                     (loop_0
                                                      (compiled-in-memory-pre-compiled-in-memorys
                                                       cim_0))))
                                                (vector
                                                 app_0
                                                 app_1
                                                 (loop_0
                                                  (compiled-in-memory-post-compiled-in-memorys
                                                   cim_0)))))
                                            fold-var_0)))
                                      (values fold-var_1))))
                               (for-loop_0 fold-var_1 rest_0))))
                         fold-var_0))))))
                (for-loop_0 null cims_1)))))))))
     (loop_0 cims_0))))
(define compiled-tops->compiled-top.1
  (|#%name|
   compiled-tops->compiled-top
   (lambda (merge-serialization?2_0
            namespace3_0
            to-correlated-linklet?1_0
            all-cims7_0)
     (begin
       (let ((cims_0 (remove-nontail-purely-functional all-cims7_0)))
         (if (= 1 (length cims_0))
           (car cims_0)
           (let ((sequence-ht_0
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (table_0 lst_0 pos_0)
                          (begin
                            (if (if (pair? lst_0) #t #f)
                              (let ((cim_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((table_1
                                         (let ((table_1
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((app_0
                                                          (string->symbol
                                                           (number->string
                                                            pos_0))))
                                                     (values
                                                      app_0
                                                      (compiled-in-memory-linklet-directory
                                                       cim_0))))
                                                 (case-lambda
                                                  ((key_0 val_0)
                                                   (hash-set
                                                    table_0
                                                    key_0
                                                    val_0))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args))))))
                                           (values table_1))))
                                    (for-loop_0 table_1 rest_0 (+ pos_0 1)))))
                              table_0))))))
                     (for-loop_0 hash2610 cims_0 0)))))
             (let ((ht_0
                    (if merge-serialization?2_0
                      (hash-set
                       sequence-ht_0
                       'data
                       (1/hash->linklet-directory
                        (hasheq
                         #f
                         (1/hash->linklet-bundle
                          (hasheq
                           0
                           (build-shared-data-linklet.1
                            to-correlated-linklet?1_0
                            cims_0
                            namespace3_0))))))
                      sequence-ht_0)))
               (compiled-in-memory1.1
                (1/hash->linklet-directory ht_0)
                #f
                #f
                #f
                #f
                hash2589
                #f
                hash2589
                hash2589
                '#()
                '#()
                cims_0
                null
                #f
                #f)))))))))
(define compiled-top->compiled-tops
  (lambda (ld_0)
    (let ((ht_0 (linklet-directory->hash$1 ld_0)))
      (reverse$1
       (let ((end_0 (hash-count ht_0)))
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (fold-var_0 pos_0)
                 (begin
                   (if (< pos_0 end_0)
                     (let ((fold-var_1
                            (let ((id*_0
                                   (hash-ref
                                    ht_0
                                    (string->symbol (number->string pos_0))
                                    #f)))
                              (begin
                                #t
                                (letrec*
                                 ((for-loop_1
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_1)
                                      (begin
                                        (let ((fold-var_2
                                               (if id*_0
                                                 (let ((fold-var_2
                                                        (cons
                                                         id*_0
                                                         fold-var_1)))
                                                   (values fold-var_2))
                                                 fold-var_1)))
                                          fold-var_2))))))
                                 (for-loop_1 fold-var_0))))))
                       (for-loop_0 fold-var_1 (+ pos_0 1)))
                     fold-var_0))))))
            (for-loop_0 null 0))))))))
(define remove-nontail-purely-functional
  (lambda (cims_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (cims_1)
          (begin
            (if (null? cims_1)
              null
              (if (null? (cdr cims_1))
                cims_1
                (if (if (compiled-in-memory? (car cims_1))
                      (compiled-in-memory-purely-functional? (car cims_1))
                      #f)
                  (loop_0 (cdr cims_1))
                  (let ((app_0 (car cims_1)))
                    (cons app_0 (cdr cims_1)))))))))))
     (loop_0 cims_0))))
(define finish_2519
  (make-struct-type-install-properties
   '(known-defined/delay)
   1
   0
   #f
   null
   'prefab
   #f
   '(0)
   #f
   'known-defined/delay))
(define struct:known-defined/delay
  (make-record-type-descriptor
   'known-defined/delay
   #f
   (structure-type-lookup-prefab-uid 'known-defined/delay #f 1 0 #f '(0))
   #f
   #f
   '(1 . 1)))
(define effect_2998 (finish_2519 struct:known-defined/delay))
(define known-defined/delay2.1
  (|#%name|
   known-defined/delay
   (record-constructor
    (make-record-constructor-descriptor struct:known-defined/delay #f #f))))
(define known-defined/delay?_2399
  (|#%name|
   known-defined/delay?
   (record-predicate struct:known-defined/delay)))
(define known-defined/delay?
  (|#%name|
   known-defined/delay?
   (lambda (v)
     (if (known-defined/delay?_2399 v)
       #t
       ($value
        (if (impersonator? v)
          (known-defined/delay?_2399 (impersonator-val v))
          #f))))))
(define known-defined/delay-thunk_1981
  (|#%name|
   known-defined/delay-thunk
   (record-accessor struct:known-defined/delay 0)))
(define known-defined/delay-thunk
  (|#%name|
   known-defined/delay-thunk
   (lambda (s)
     (if (known-defined/delay?_2399 s)
       (known-defined/delay-thunk_1981 s)
       ($value
        (impersonate-ref
         known-defined/delay-thunk_1981
         struct:known-defined/delay
         0
         s
         'thunk))))))
(define finish_2590
  (make-struct-type-install-properties
   '(known-property)
   0
   0
   #f
   null
   'prefab
   #f
   '()
   #f
   'known-property))
(define struct:known-property
  (make-record-type-descriptor
   'known-property
   #f
   (structure-type-lookup-prefab-uid 'known-property #f 0 0 #f '())
   #f
   #f
   '(0 . 0)))
(define effect_2476 (finish_2590 struct:known-property))
(define known-property3.1
  (|#%name|
   known-property
   (record-constructor
    (make-record-constructor-descriptor struct:known-property #f #f))))
(define known-property?_2907
  (|#%name| known-property? (record-predicate struct:known-property)))
(define known-property?
  (|#%name|
   known-property?
   (lambda (v)
     (if (known-property?_2907 v)
       #t
       ($value
        (if (impersonator? v)
          (known-property?_2907 (impersonator-val v))
          #f))))))
(define finish_2139
  (make-struct-type-install-properties
   '(known-property-of-function)
   1
   0
   #f
   null
   'prefab
   #f
   '(0)
   #f
   'known-property-of-function))
(define struct:known-property-of-function
  (make-record-type-descriptor
   'known-property-of-function
   #f
   (structure-type-lookup-prefab-uid
    'known-property-of-function
    #f
    1
    0
    #f
    '(0))
   #f
   #f
   '(1 . 1)))
(define effect_2945 (finish_2139 struct:known-property-of-function))
(define known-property-of-function4.1
  (|#%name|
   known-property-of-function
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-property-of-function
     #f
     #f))))
(define known-property-of-function?_3246
  (|#%name|
   known-property-of-function?
   (record-predicate struct:known-property-of-function)))
(define known-property-of-function?
  (|#%name|
   known-property-of-function?
   (lambda (v)
     (if (known-property-of-function?_3246 v)
       #t
       ($value
        (if (impersonator? v)
          (known-property-of-function?_3246 (impersonator-val v))
          #f))))))
(define known-property-of-function-arity_2841
  (|#%name|
   known-property-of-function-arity
   (record-accessor struct:known-property-of-function 0)))
(define known-property-of-function-arity
  (|#%name|
   known-property-of-function-arity
   (lambda (s)
     (if (known-property-of-function?_3246 s)
       (known-property-of-function-arity_2841 s)
       ($value
        (impersonate-ref
         known-property-of-function-arity_2841
         struct:known-property-of-function
         0
         s
         'arity))))))
(define finish_2740
  (make-struct-type-install-properties
   '(known-function)
   2
   0
   #f
   null
   'prefab
   #f
   '(0 1)
   #f
   'known-function))
(define struct:known-function
  (make-record-type-descriptor
   'known-function
   #f
   (structure-type-lookup-prefab-uid 'known-function #f 2 0 #f '(0 1))
   #f
   #f
   '(2 . 3)))
(define effect_2741 (finish_2740 struct:known-function))
(define known-function5.1
  (|#%name|
   known-function
   (record-constructor
    (make-record-constructor-descriptor struct:known-function #f #f))))
(define known-function?_2201
  (|#%name| known-function? (record-predicate struct:known-function)))
(define known-function?
  (|#%name|
   known-function?
   (lambda (v)
     (if (known-function?_2201 v)
       #t
       ($value
        (if (impersonator? v)
          (known-function?_2201 (impersonator-val v))
          #f))))))
(define known-function-arity_3107
  (|#%name| known-function-arity (record-accessor struct:known-function 0)))
(define known-function-arity
  (|#%name|
   known-function-arity
   (lambda (s)
     (if (known-function?_2201 s)
       (known-function-arity_3107 s)
       ($value
        (impersonate-ref
         known-function-arity_3107
         struct:known-function
         0
         s
         'arity))))))
(define known-function-pure?_2002
  (|#%name| known-function-pure? (record-accessor struct:known-function 1)))
(define known-function-pure?
  (|#%name|
   known-function-pure?
   (lambda (s)
     (if (known-function?_2201 s)
       (known-function-pure?_2002 s)
       ($value
        (impersonate-ref
         known-function-pure?_2002
         struct:known-function
         1
         s
         'pure?))))))
(define finish_2071
  (make-struct-type-install-properties
   '(known-function-of-satisfying)
   2
   0
   #f
   null
   'prefab
   #f
   '(0 1)
   #f
   'known-function-of-satisfying))
(define struct:known-function-of-satisfying
  (make-record-type-descriptor
   'known-function-of-satisfying
   #f
   (structure-type-lookup-prefab-uid
    'known-function-of-satisfying
    #f
    2
    0
    #f
    '(0 1))
   #f
   #f
   '(2 . 3)))
(define effect_2265 (finish_2071 struct:known-function-of-satisfying))
(define known-function-of-satisfying6.1
  (|#%name|
   known-function-of-satisfying
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-function-of-satisfying
     #f
     #f))))
(define known-function-of-satisfying?_2900
  (|#%name|
   known-function-of-satisfying?
   (record-predicate struct:known-function-of-satisfying)))
(define known-function-of-satisfying?
  (|#%name|
   known-function-of-satisfying?
   (lambda (v)
     (if (known-function-of-satisfying?_2900 v)
       #t
       ($value
        (if (impersonator? v)
          (known-function-of-satisfying?_2900 (impersonator-val v))
          #f))))))
(define known-function-of-satisfying-arg-predicate-keys_2999
  (|#%name|
   known-function-of-satisfying-arg-predicate-keys
   (record-accessor struct:known-function-of-satisfying 0)))
(define known-function-of-satisfying-arg-predicate-keys
  (|#%name|
   known-function-of-satisfying-arg-predicate-keys
   (lambda (s)
     (if (known-function-of-satisfying?_2900 s)
       (known-function-of-satisfying-arg-predicate-keys_2999 s)
       ($value
        (impersonate-ref
         known-function-of-satisfying-arg-predicate-keys_2999
         struct:known-function-of-satisfying
         0
         s
         'arg-predicate-keys))))))
(define known-function-of-satisfying-result-key_2347
  (|#%name|
   known-function-of-satisfying-result-key
   (record-accessor struct:known-function-of-satisfying 1)))
(define known-function-of-satisfying-result-key
  (|#%name|
   known-function-of-satisfying-result-key
   (lambda (s)
     (if (known-function-of-satisfying?_2900 s)
       (known-function-of-satisfying-result-key_2347 s)
       ($value
        (impersonate-ref
         known-function-of-satisfying-result-key_2347
         struct:known-function-of-satisfying
         1
         s
         'result-key))))))
(define finish_2577
  (make-struct-type-install-properties
   '(known-predicate)
   1
   0
   #f
   null
   'prefab
   #f
   '(0)
   #f
   'known-predicate))
(define struct:known-predicate
  (make-record-type-descriptor
   'known-predicate
   #f
   (structure-type-lookup-prefab-uid 'known-predicate #f 1 0 #f '(0))
   #f
   #f
   '(1 . 1)))
(define effect_2144 (finish_2577 struct:known-predicate))
(define known-predicate7.1
  (|#%name|
   known-predicate
   (record-constructor
    (make-record-constructor-descriptor struct:known-predicate #f #f))))
(define known-predicate?_2903
  (|#%name| known-predicate? (record-predicate struct:known-predicate)))
(define known-predicate?
  (|#%name|
   known-predicate?
   (lambda (v)
     (if (known-predicate?_2903 v)
       #t
       ($value
        (if (impersonator? v)
          (known-predicate?_2903 (impersonator-val v))
          #f))))))
(define known-predicate-key_2853
  (|#%name| known-predicate-key (record-accessor struct:known-predicate 0)))
(define known-predicate-key
  (|#%name|
   known-predicate-key
   (lambda (s)
     (if (known-predicate?_2903 s)
       (known-predicate-key_2853 s)
       ($value
        (impersonate-ref
         known-predicate-key_2853
         struct:known-predicate
         0
         s
         'key))))))
(define finish_2468
  (make-struct-type-install-properties
   '(known-satisfies)
   1
   0
   #f
   null
   'prefab
   #f
   '(0)
   #f
   'known-satisfies))
(define struct:known-satisfies
  (make-record-type-descriptor
   'known-satisfies
   #f
   (structure-type-lookup-prefab-uid 'known-satisfies #f 1 0 #f '(0))
   #f
   #f
   '(1 . 1)))
(define effect_1976 (finish_2468 struct:known-satisfies))
(define known-satisfies8.1
  (|#%name|
   known-satisfies
   (record-constructor
    (make-record-constructor-descriptor struct:known-satisfies #f #f))))
(define known-satisfies?_2354
  (|#%name| known-satisfies? (record-predicate struct:known-satisfies)))
(define known-satisfies?
  (|#%name|
   known-satisfies?
   (lambda (v)
     (if (known-satisfies?_2354 v)
       #t
       ($value
        (if (impersonator? v)
          (known-satisfies?_2354 (impersonator-val v))
          #f))))))
(define known-satisfies-predicate-key_2990
  (|#%name|
   known-satisfies-predicate-key
   (record-accessor struct:known-satisfies 0)))
(define known-satisfies-predicate-key
  (|#%name|
   known-satisfies-predicate-key
   (lambda (s)
     (if (known-satisfies?_2354 s)
       (known-satisfies-predicate-key_2990 s)
       ($value
        (impersonate-ref
         known-satisfies-predicate-key_2990
         struct:known-satisfies
         0
         s
         'predicate-key))))))
(define finish_2604
  (make-struct-type-install-properties
   '(known-struct-op)
   2
   0
   #f
   null
   'prefab
   #f
   '(0 1)
   #f
   'known-struct-op))
(define struct:known-struct-op
  (make-record-type-descriptor
   'known-struct-op
   #f
   (structure-type-lookup-prefab-uid 'known-struct-op #f 2 0 #f '(0 1))
   #f
   #f
   '(2 . 3)))
(define effect_2534 (finish_2604 struct:known-struct-op))
(define known-struct-op9.1
  (|#%name|
   known-struct-op
   (record-constructor
    (make-record-constructor-descriptor struct:known-struct-op #f #f))))
(define known-struct-op?_2475
  (|#%name| known-struct-op? (record-predicate struct:known-struct-op)))
(define known-struct-op?
  (|#%name|
   known-struct-op?
   (lambda (v)
     (if (known-struct-op?_2475 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-op?_2475 (impersonator-val v))
          #f))))))
(define known-struct-op-type_2095
  (|#%name| known-struct-op-type (record-accessor struct:known-struct-op 0)))
(define known-struct-op-type
  (|#%name|
   known-struct-op-type
   (lambda (s)
     (if (known-struct-op?_2475 s)
       (known-struct-op-type_2095 s)
       ($value
        (impersonate-ref
         known-struct-op-type_2095
         struct:known-struct-op
         0
         s
         'type))))))
(define known-struct-op-field-count_2507
  (|#%name|
   known-struct-op-field-count
   (record-accessor struct:known-struct-op 1)))
(define known-struct-op-field-count
  (|#%name|
   known-struct-op-field-count
   (lambda (s)
     (if (known-struct-op?_2475 s)
       (known-struct-op-field-count_2507 s)
       ($value
        (impersonate-ref
         known-struct-op-field-count_2507
         struct:known-struct-op
         1
         s
         'field-count))))))
(define lookup-defn
  (lambda (defns_0 sym_0)
    (let ((d_0 (hash-ref defns_0 sym_0 #f)))
      (if (known-defined/delay? d_0)
        (begin
          (|#%app| (known-defined/delay-thunk d_0))
          (lookup-defn defns_0 sym_0))
        d_0))))
(define any-side-effects?.1
  (|#%name|
   any-side-effects?
   (lambda (known-defns2_0
            known-locals1_0
            ready-variable?3_0
            e7_0
            expected-results8_0)
     (begin
       (let ((ready-variable?_0
              (if (eq? ready-variable?3_0 unsafe-undefined)
                (|#%name| ready-variable? (lambda (id_0) (begin #f)))
                ready-variable?3_0)))
         (let ((effects?_0
                (|#%name|
                 effects?
                 (lambda (e_0 expected-results_0 locals_0)
                   (begin
                     (any-side-effects?.1
                      known-defns2_0
                      locals_0
                      ready-variable?_0
                      e_0
                      expected-results_0))))))
           (let ((actual-results_0
                  (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda (e_0 locals_0)
                        (begin
                          (let ((tmp_0
                                 (if (pair? (correlated-e e_0))
                                   (correlated-e (car (correlated-e e_0)))
                                   #f)))
                            (let ((index_0
                                   (if (symbol? tmp_0)
                                     (hash-ref hash2430 tmp_0 (lambda () 0))
                                     0)))
                              (if (unsafe-fx< index_0 6)
                                (if (unsafe-fx< index_0 2)
                                  (if (unsafe-fx< index_0 1)
                                    (let ((v_0 (correlated-e e_0)))
                                      (if (let ((or-part_0 (string? v_0)))
                                            (if or-part_0
                                              or-part_0
                                              (let ((or-part_1 (number? v_0)))
                                                (if or-part_1
                                                  or-part_1
                                                  (let ((or-part_2
                                                         (boolean? v_0)))
                                                    (if or-part_2
                                                      or-part_2
                                                      (char? v_0)))))))
                                        1
                                        (let ((c1_0
                                               (if (pair? v_0)
                                                 (let ((rator_0
                                                        (correlated-e
                                                         (car v_0))))
                                                   (let ((or-part_0
                                                          (hash-ref
                                                           locals_0
                                                           rator_0
                                                           #f)))
                                                     (if or-part_0
                                                       or-part_0
                                                       (lookup-defn
                                                        known-defns2_0
                                                        rator_0))))
                                                 #f)))
                                          (if c1_0
                                            (call-with-values
                                             (lambda ()
                                               (call-with-values
                                                (lambda ()
                                                  (let ((s_0
                                                         (if (syntax? e_0)
                                                           (syntax-e e_0)
                                                           e_0)))
                                                    (if (pair? s_0)
                                                      (let ((_0
                                                             (let ((s_1
                                                                    (car s_0)))
                                                               s_1)))
                                                        (let ((e18_0
                                                               (let ((s_1
                                                                      (cdr
                                                                       s_0)))
                                                                 (let ((s_2
                                                                        (if (syntax?
                                                                             s_1)
                                                                          (syntax-e
                                                                           s_1)
                                                                          s_1)))
                                                                   (let ((flat-s_0
                                                                          (to-syntax-list.1$1
                                                                           s_2)))
                                                                     (if (not
                                                                          flat-s_0)
                                                                       (let ((str_0
                                                                              "bad syntax"))
                                                                         (error
                                                                          str_0))
                                                                       flat-s_0))))))
                                                          (let ((_1 _0))
                                                            (values
                                                             _1
                                                             e18_0))))
                                                      (let ((str_0
                                                             "bad syntax"))
                                                        (error str_0)))))
                                                (case-lambda
                                                 ((_0 e16_0)
                                                  (values #t _0 e16_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args)))))
                                             (case-lambda
                                              ((ok?_0 _0 e16_0)
                                               (let ((n-args_0 (length e16_0)))
                                                 (if (let ((or-part_0
                                                            (if (let ((or-part_0
                                                                       (if (known-struct-op?
                                                                            c1_0)
                                                                         (if (eq?
                                                                              'constructor
                                                                              (known-struct-op-type
                                                                               c1_0))
                                                                           (let ((or-part_0
                                                                                  (eq?
                                                                                   #t
                                                                                   (known-struct-op-field-count
                                                                                    c1_0))))
                                                                             (if or-part_0
                                                                               or-part_0
                                                                               (=
                                                                                (known-struct-op-field-count
                                                                                 c1_0)
                                                                                n-args_0)))
                                                                           #f)
                                                                         #f)))
                                                                  (if or-part_0
                                                                    or-part_0
                                                                    (if (known-function?
                                                                         c1_0)
                                                                      (if (known-function-pure?
                                                                           c1_0)
                                                                        (arity-includes?
                                                                         (known-function-arity
                                                                          c1_0)
                                                                         n-args_0)
                                                                        #f)
                                                                      #f)))
                                                              (begin
                                                                (letrec*
                                                                 ((for-loop_0
                                                                   (|#%name|
                                                                    for-loop
                                                                    (lambda (result_0
                                                                             lst_0)
                                                                      (begin
                                                                        (if (pair?
                                                                             lst_0)
                                                                          (let ((e_1
                                                                                 (unsafe-car
                                                                                  lst_0)))
                                                                            (let ((rest_0
                                                                                   (unsafe-cdr
                                                                                    lst_0)))
                                                                              (let ((result_1
                                                                                     (let ((result_1
                                                                                            (not
                                                                                             (effects?_0
                                                                                              e_1
                                                                                              1
                                                                                              locals_0))))
                                                                                       (values
                                                                                        result_1))))
                                                                                (if (if (not
                                                                                         (let ((x_0
                                                                                                (list
                                                                                                 e_1)))
                                                                                           (not
                                                                                            result_1)))
                                                                                      #t
                                                                                      #f)
                                                                                  (for-loop_0
                                                                                   result_1
                                                                                   rest_0)
                                                                                  result_1))))
                                                                          result_0))))))
                                                                 (for-loop_0
                                                                  #t
                                                                  e16_0)))
                                                              #f)))
                                                       (if or-part_0
                                                         or-part_0
                                                         (if (known-function-of-satisfying?
                                                              c1_0)
                                                           (if (=
                                                                n-args_0
                                                                (length
                                                                 (known-function-of-satisfying-arg-predicate-keys
                                                                  c1_0)))
                                                             (let ((lst_0
                                                                    (known-function-of-satisfying-arg-predicate-keys
                                                                     c1_0)))
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (result_0
                                                                              lst_1
                                                                              lst_2)
                                                                       (begin
                                                                         (if (if (pair?
                                                                                  lst_1)
                                                                               (pair?
                                                                                lst_2)
                                                                               #f)
                                                                           (let ((e_1
                                                                                  (unsafe-car
                                                                                   lst_1)))
                                                                             (let ((rest_0
                                                                                    (unsafe-cdr
                                                                                     lst_1)))
                                                                               (let ((key_0
                                                                                      (unsafe-car
                                                                                       lst_2)))
                                                                                 (let ((rest_1
                                                                                        (unsafe-cdr
                                                                                         lst_2)))
                                                                                   (let ((result_1
                                                                                          (let ((result_1
                                                                                                 (if (not
                                                                                                      (effects?_0
                                                                                                       e_1
                                                                                                       1
                                                                                                       locals_0))
                                                                                                   (satisfies?
                                                                                                    e_1
                                                                                                    key_0
                                                                                                    known-defns2_0
                                                                                                    locals_0)
                                                                                                   #f)))
                                                                                            (values
                                                                                             result_1))))
                                                                                     (if (if (not
                                                                                              (let ((x_0
                                                                                                     (list
                                                                                                      e_1)))
                                                                                                (not
                                                                                                 result_1)))
                                                                                           (if (not
                                                                                                (let ((x_0
                                                                                                       (list
                                                                                                        key_0)))
                                                                                                  (not
                                                                                                   result_1)))
                                                                                             #t
                                                                                             #f)
                                                                                           #f)
                                                                                       (for-loop_0
                                                                                        result_1
                                                                                        rest_0
                                                                                        rest_1)
                                                                                       result_1))))))
                                                                           result_0))))))
                                                                  (for-loop_0
                                                                   #t
                                                                   e16_0
                                                                   lst_0))))
                                                             #f)
                                                           #f)))
                                                   1
                                                   #f)))
                                              (args
                                               (raise-binding-result-arity-error
                                                3
                                                args))))
                                            (if (let ((or-part_0
                                                       (self-quoting-in-linklet?
                                                        v_0)))
                                                  (if or-part_0
                                                    or-part_0
                                                    (if (symbol? v_0)
                                                      (let ((or-part_1
                                                             (hash-ref
                                                              locals_0
                                                              v_0
                                                              #f)))
                                                        (if or-part_1
                                                          or-part_1
                                                          (let ((or-part_2
                                                                 (lookup-defn
                                                                  known-defns2_0
                                                                  v_0)))
                                                            (if or-part_2
                                                              or-part_2
                                                              (let ((or-part_3
                                                                     (begin-unsafe
                                                                      (hash-ref
                                                                       built-in-symbols
                                                                       v_0
                                                                       #f))))
                                                                (if or-part_3
                                                                  or-part_3
                                                                  (|#%app|
                                                                   ready-variable?_0
                                                                   v_0)))))))
                                                      #f)))
                                              1
                                              #f)))))
                                    1)
                                  (if (unsafe-fx< index_0 3)
                                    (call-with-values
                                     (lambda ()
                                       (call-with-values
                                        (lambda ()
                                          (let ((s_0
                                                 (if (syntax? e_0)
                                                   (syntax-e e_0)
                                                   e_0)))
                                            (if (pair? s_0)
                                              (let ((_0
                                                     (let ((s_1 (car s_0)))
                                                       s_1)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((s_1 (cdr s_0)))
                                                     (let ((s_2
                                                            (if (syntax? s_1)
                                                              (syntax-e s_1)
                                                              s_1)))
                                                       (if (pair? s_2)
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((s_3
                                                                   (car s_2)))
                                                              (let ((s_4
                                                                     (if (syntax?
                                                                          s_3)
                                                                       (syntax-e
                                                                        s_3)
                                                                       s_3)))
                                                                (let ((flat-s_0
                                                                       (to-syntax-list.1$1
                                                                        s_4)))
                                                                  (if (not
                                                                       flat-s_0)
                                                                    (let ((str_0
                                                                           "bad syntax"))
                                                                      (error
                                                                       str_0))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (begin
                                                                         (letrec*
                                                                          ((for-loop_0
                                                                            (|#%name|
                                                                             for-loop
                                                                             (lambda (ids_0
                                                                                      rhs_0
                                                                                      lst_0)
                                                                               (begin
                                                                                 (if (pair?
                                                                                      lst_0)
                                                                                   (let ((s_5
                                                                                          (unsafe-car
                                                                                           lst_0)))
                                                                                     (let ((rest_0
                                                                                            (unsafe-cdr
                                                                                             lst_0)))
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (call-with-values
                                                                                              (lambda ()
                                                                                                (let ((s_6
                                                                                                       (if (syntax?
                                                                                                            s_5)
                                                                                                         (syntax-e
                                                                                                          s_5)
                                                                                                         s_5)))
                                                                                                  (if (pair?
                                                                                                       s_6)
                                                                                                    (let ((ids30_0
                                                                                                           (let ((s_7
                                                                                                                  (car
                                                                                                                   s_6)))
                                                                                                             s_7)))
                                                                                                      (let ((rhs31_0
                                                                                                             (let ((s_7
                                                                                                                    (cdr
                                                                                                                     s_6)))
                                                                                                               (let ((s_8
                                                                                                                      (if (syntax?
                                                                                                                           s_7)
                                                                                                                        (syntax-e
                                                                                                                         s_7)
                                                                                                                        s_7)))
                                                                                                                 (if (pair?
                                                                                                                      s_8)
                                                                                                                   (let ((rhs32_0
                                                                                                                          (let ((s_9
                                                                                                                                 (car
                                                                                                                                  s_8)))
                                                                                                                            s_9)))
                                                                                                                     (call-with-values
                                                                                                                      (lambda ()
                                                                                                                        (let ((s_9
                                                                                                                               (cdr
                                                                                                                                s_8)))
                                                                                                                          (let ((s_10
                                                                                                                                 (if (syntax?
                                                                                                                                      s_9)
                                                                                                                                   (syntax-e
                                                                                                                                    s_9)
                                                                                                                                   s_9)))
                                                                                                                            (if (null?
                                                                                                                                 s_10)
                                                                                                                              (values)
                                                                                                                              (let ((str_0
                                                                                                                                     "bad syntax"))
                                                                                                                                (error
                                                                                                                                 str_0))))))
                                                                                                                      (case-lambda
                                                                                                                       (()
                                                                                                                        (let ((rhs32_1
                                                                                                                               rhs32_0))
                                                                                                                          (values
                                                                                                                           rhs32_1)))
                                                                                                                       (args
                                                                                                                        (raise-binding-result-arity-error
                                                                                                                         0
                                                                                                                         args)))))
                                                                                                                   (let ((str_0
                                                                                                                          "bad syntax"))
                                                                                                                     (error
                                                                                                                      str_0)))))))
                                                                                                        (let ((ids30_1
                                                                                                               ids30_0))
                                                                                                          (values
                                                                                                           ids30_1
                                                                                                           rhs31_0))))
                                                                                                    (let ((str_0
                                                                                                           "bad syntax"))
                                                                                                      (error
                                                                                                       str_0)))))
                                                                                              (case-lambda
                                                                                               ((ids34_0
                                                                                                 rhs35_0)
                                                                                                (values
                                                                                                 (cons
                                                                                                  ids34_0
                                                                                                  ids_0)
                                                                                                 (cons
                                                                                                  rhs35_0
                                                                                                  rhs_0)))
                                                                                               (args
                                                                                                (raise-binding-result-arity-error
                                                                                                 2
                                                                                                 args)))))
                                                                                           (case-lambda
                                                                                            ((ids_1
                                                                                              rhs_1)
                                                                                             (values
                                                                                              ids_1
                                                                                              rhs_1))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args)))))
                                                                                        (case-lambda
                                                                                         ((ids_1
                                                                                           rhs_1)
                                                                                          (for-loop_0
                                                                                           ids_1
                                                                                           rhs_1
                                                                                           rest_0))
                                                                                         (args
                                                                                          (raise-binding-result-arity-error
                                                                                           2
                                                                                           args))))))
                                                                                   (values
                                                                                    ids_0
                                                                                    rhs_0)))))))
                                                                          (for-loop_0
                                                                           null
                                                                           null
                                                                           flat-s_0))))
                                                                     (case-lambda
                                                                      ((ids_0
                                                                        rhs_0)
                                                                       (let ((app_0
                                                                              (reverse$1
                                                                               ids_0)))
                                                                         (values
                                                                          app_0
                                                                          (reverse$1
                                                                           rhs_0))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))))))
                                                          (case-lambda
                                                           ((ids27_0 rhs28_0)
                                                            (let ((body29_0
                                                                   (let ((s_3
                                                                          (cdr
                                                                           s_2)))
                                                                     (let ((s_4
                                                                            (if (syntax?
                                                                                 s_3)
                                                                              (syntax-e
                                                                               s_3)
                                                                              s_3)))
                                                                       (if (pair?
                                                                            s_4)
                                                                         (let ((body33_0
                                                                                (let ((s_5
                                                                                       (car
                                                                                        s_4)))
                                                                                  s_5)))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((s_5
                                                                                     (cdr
                                                                                      s_4)))
                                                                                (let ((s_6
                                                                                       (if (syntax?
                                                                                            s_5)
                                                                                         (syntax-e
                                                                                          s_5)
                                                                                         s_5)))
                                                                                  (if (null?
                                                                                       s_6)
                                                                                    (values)
                                                                                    (let ((str_0
                                                                                           "bad syntax"))
                                                                                      (error
                                                                                       str_0))))))
                                                                            (case-lambda
                                                                             (()
                                                                              (let ((body33_1
                                                                                     body33_0))
                                                                                (values
                                                                                 body33_1)))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               0
                                                                               args)))))
                                                                         (let ((str_0
                                                                                "bad syntax"))
                                                                           (error
                                                                            str_0)))))))
                                                              (let ((ids27_1
                                                                     ids27_0)
                                                                    (rhs28_1
                                                                     rhs28_0))
                                                                (values
                                                                 ids27_1
                                                                 rhs28_1
                                                                 body29_0))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))
                                                         (let ((str_0
                                                                "bad syntax"))
                                                           (error str_0))))))
                                                 (case-lambda
                                                  ((ids24_0 rhs25_0 body26_0)
                                                   (let ((_1 _0))
                                                     (values
                                                      _1
                                                      ids24_0
                                                      rhs25_0
                                                      body26_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    3
                                                    args)))))
                                              (let ((str_0 "bad syntax"))
                                                (error str_0)))))
                                        (case-lambda
                                         ((_0 ids20_0 rhs21_0 body22_0)
                                          (values
                                           #t
                                           _0
                                           ids20_0
                                           rhs21_0
                                           body22_0))
                                         (args
                                          (raise-binding-result-arity-error
                                           4
                                           args)))))
                                     (case-lambda
                                      ((ok?_0 _0 ids20_0 rhs21_0 body22_0)
                                       (if (not
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (result_0
                                                           lst_0
                                                           lst_1)
                                                    (begin
                                                      (if (if (pair? lst_0)
                                                            (pair? lst_1)
                                                            #f)
                                                        (let ((ids_0
                                                               (unsafe-car
                                                                lst_0)))
                                                          (let ((rest_0
                                                                 (unsafe-cdr
                                                                  lst_0)))
                                                            (let ((rhs_0
                                                                   (unsafe-car
                                                                    lst_1)))
                                                              (let ((rest_1
                                                                     (unsafe-cdr
                                                                      lst_1)))
                                                                (let ((result_1
                                                                       (let ((result_1
                                                                              (effects?_0
                                                                               rhs_0
                                                                               (correlated-length
                                                                                ids_0)
                                                                               locals_0)))
                                                                         (values
                                                                          result_1))))
                                                                  (if (if (not
                                                                           (let ((x_0
                                                                                  (list
                                                                                   ids_0)))
                                                                             result_1))
                                                                        (if (not
                                                                             (let ((x_0
                                                                                    (list
                                                                                     rhs_0)))
                                                                               result_1))
                                                                          #t
                                                                          #f)
                                                                        #f)
                                                                    (for-loop_0
                                                                     result_1
                                                                     rest_0
                                                                     rest_1)
                                                                    result_1))))))
                                                        result_0))))))
                                               (for-loop_0
                                                #f
                                                ids20_0
                                                rhs21_0))))
                                         (loop_0
                                          body22_0
                                          (add-binding-info
                                           locals_0
                                           ids20_0
                                           rhs21_0))
                                         #f))
                                      (args
                                       (raise-binding-result-arity-error
                                        5
                                        args))))
                                    (if (unsafe-fx< index_0 4)
                                      (call-with-values
                                       (lambda ()
                                         (call-with-values
                                          (lambda ()
                                            (let ((s_0
                                                   (if (syntax? e_0)
                                                     (syntax-e e_0)
                                                     e_0)))
                                              (if (pair? s_0)
                                                (let ((_0
                                                       (let ((s_1 (car s_0)))
                                                         s_1)))
                                                  (let ((e39_0
                                                         (let ((s_1 (cdr s_0)))
                                                           (let ((s_2
                                                                  (if (syntax?
                                                                       s_1)
                                                                    (syntax-e
                                                                     s_1)
                                                                    s_1)))
                                                             (let ((flat-s_0
                                                                    (to-syntax-list.1$1
                                                                     s_2)))
                                                               (if (not
                                                                    flat-s_0)
                                                                 (let ((str_0
                                                                        "bad syntax"))
                                                                   (error
                                                                    str_0))
                                                                 flat-s_0))))))
                                                    (let ((_1 _0))
                                                      (values _1 e39_0))))
                                                (let ((str_0 "bad syntax"))
                                                  (error str_0)))))
                                          (case-lambda
                                           ((_0 e37_0) (values #t _0 e37_0))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))
                                       (case-lambda
                                        ((ok?_0 _0 e37_0)
                                         (if (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (result_0 lst_0)
                                                     (begin
                                                       (if (pair? lst_0)
                                                         (let ((e_1
                                                                (unsafe-car
                                                                 lst_0)))
                                                           (let ((rest_0
                                                                  (unsafe-cdr
                                                                   lst_0)))
                                                             (let ((result_1
                                                                    (let ((result_1
                                                                           (not
                                                                            (effects?_0
                                                                             e_1
                                                                             1
                                                                             locals_0))))
                                                                      (values
                                                                       result_1))))
                                                               (if (if (not
                                                                        (let ((x_0
                                                                               (list
                                                                                e_1)))
                                                                          (not
                                                                           result_1)))
                                                                     #t
                                                                     #f)
                                                                 (for-loop_0
                                                                  result_1
                                                                  rest_0)
                                                                 result_1))))
                                                         result_0))))))
                                                (for-loop_0 #t e37_0)))
                                           (length e37_0)
                                           #f))
                                        (args
                                         (raise-binding-result-arity-error
                                          3
                                          args))))
                                      (if (unsafe-fx< index_0 5)
                                        (call-with-values
                                         (lambda ()
                                           (call-with-values
                                            (lambda ()
                                              (let ((s_0
                                                     (if (syntax? e_0)
                                                       (syntax-e e_0)
                                                       e_0)))
                                                (if (pair? s_0)
                                                  (let ((_0
                                                         (let ((s_1 (car s_0)))
                                                           s_1)))
                                                    (let ((e43_0
                                                           (let ((s_1
                                                                  (cdr s_0)))
                                                             (let ((s_2
                                                                    (if (syntax?
                                                                         s_1)
                                                                      (syntax-e
                                                                       s_1)
                                                                      s_1)))
                                                               (let ((flat-s_0
                                                                      (to-syntax-list.1$1
                                                                       s_2)))
                                                                 (if (not
                                                                      flat-s_0)
                                                                   (let ((str_0
                                                                          "bad syntax"))
                                                                     (error
                                                                      str_0))
                                                                   flat-s_0))))))
                                                      (let ((_1 _0))
                                                        (values _1 e43_0))))
                                                  (let ((str_0 "bad syntax"))
                                                    (error str_0)))))
                                            (case-lambda
                                             ((_0 e41_0) (values #t _0 e41_0))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args)))))
                                         (case-lambda
                                          ((ok?_0 _0 e41_0)
                                           (if (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (result_0 lst_0)
                                                       (begin
                                                         (if (pair? lst_0)
                                                           (let ((e_1
                                                                  (unsafe-car
                                                                   lst_0)))
                                                             (let ((rest_0
                                                                    (unsafe-cdr
                                                                     lst_0)))
                                                               (let ((result_1
                                                                      (let ((result_1
                                                                             (not
                                                                              (effects?_0
                                                                               e_1
                                                                               1
                                                                               locals_0))))
                                                                        (values
                                                                         result_1))))
                                                                 (if (if (not
                                                                          (let ((x_0
                                                                                 (list
                                                                                  e_1)))
                                                                            (not
                                                                             result_1)))
                                                                       #t
                                                                       #f)
                                                                   (for-loop_0
                                                                    result_1
                                                                    rest_0)
                                                                   result_1))))
                                                           result_0))))))
                                                  (for-loop_0 #t e41_0)))
                                             1
                                             #f))
                                          (args
                                           (raise-binding-result-arity-error
                                            3
                                            args))))
                                        (call-with-values
                                         (lambda ()
                                           (call-with-values
                                            (lambda ()
                                              (let ((s_0
                                                     (if (syntax? e_0)
                                                       (syntax-e e_0)
                                                       e_0)))
                                                (if (pair? s_0)
                                                  (let ((_0
                                                         (let ((s_1 (car s_0)))
                                                           s_1)))
                                                    (let ((e47_0
                                                           (let ((s_1
                                                                  (cdr s_0)))
                                                             (let ((s_2
                                                                    (if (syntax?
                                                                         s_1)
                                                                      (syntax-e
                                                                       s_1)
                                                                      s_1)))
                                                               (let ((flat-s_0
                                                                      (to-syntax-list.1$1
                                                                       s_2)))
                                                                 (if (not
                                                                      flat-s_0)
                                                                   (let ((str_0
                                                                          "bad syntax"))
                                                                     (error
                                                                      str_0))
                                                                   flat-s_0))))))
                                                      (let ((_1 _0))
                                                        (values _1 e47_0))))
                                                  (let ((str_0 "bad syntax"))
                                                    (error str_0)))))
                                            (case-lambda
                                             ((_0 e45_0) (values #t _0 e45_0))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args)))))
                                         (case-lambda
                                          ((ok?_0 _0 e45_0)
                                           (letrec*
                                            ((bloop_0
                                              (|#%name|
                                               bloop
                                               (lambda (es_0)
                                                 (begin
                                                   (if (null? es_0)
                                                     #f
                                                     (if (null? (cdr es_0))
                                                       (loop_0
                                                        (car es_0)
                                                        locals_0)
                                                       (if (not
                                                            (effects?_0
                                                             (car es_0)
                                                             #f
                                                             locals_0))
                                                         (bloop_0 (cdr es_0))
                                                         #f))))))))
                                            (bloop_0 e45_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            3
                                            args))))))))
                                (if (unsafe-fx< index_0 9)
                                  (if (unsafe-fx< index_0 7)
                                    (call-with-values
                                     (lambda ()
                                       (call-with-values
                                        (lambda ()
                                          (let ((s_0
                                                 (if (syntax? e_0)
                                                   (syntax-e e_0)
                                                   e_0)))
                                            (if (pair? s_0)
                                              (let ((_0
                                                     (let ((s_1 (car s_0)))
                                                       s_1)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((s_1 (cdr s_0)))
                                                     (let ((s_2
                                                            (if (syntax? s_1)
                                                              (syntax-e s_1)
                                                              s_1)))
                                                       (if (pair? s_2)
                                                         (let ((e054_0
                                                                (let ((s_3
                                                                       (car
                                                                        s_2)))
                                                                  s_3)))
                                                           (let ((e55_0
                                                                  (let ((s_3
                                                                         (cdr
                                                                          s_2)))
                                                                    (let ((s_4
                                                                           (if (syntax?
                                                                                s_3)
                                                                             (syntax-e
                                                                              s_3)
                                                                             s_3)))
                                                                      (let ((flat-s_0
                                                                             (to-syntax-list.1$1
                                                                              s_4)))
                                                                        (if (not
                                                                             flat-s_0)
                                                                          (let ((str_0
                                                                                 "bad syntax"))
                                                                            (error
                                                                             str_0))
                                                                          flat-s_0))))))
                                                             (let ((e054_1
                                                                    e054_0))
                                                               (values
                                                                e054_1
                                                                e55_0))))
                                                         (let ((str_0
                                                                "bad syntax"))
                                                           (error str_0))))))
                                                 (case-lambda
                                                  ((e052_0 e53_0)
                                                   (let ((_1 _0))
                                                     (values _1 e052_0 e53_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))
                                              (let ((str_0 "bad syntax"))
                                                (error str_0)))))
                                        (case-lambda
                                         ((_0 e049_0 e50_0)
                                          (values #t _0 e049_0 e50_0))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args)))))
                                     (case-lambda
                                      ((ok?_0 _0 e049_0 e50_0)
                                       (if (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (result_0 lst_0)
                                                   (begin
                                                     (if (pair? lst_0)
                                                       (let ((e_1
                                                              (unsafe-car
                                                               lst_0)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_0)))
                                                           (let ((result_1
                                                                  (let ((result_1
                                                                         (not
                                                                          (effects?_0
                                                                           e_1
                                                                           #f
                                                                           locals_0))))
                                                                    (values
                                                                     result_1))))
                                                             (if (if (not
                                                                      (let ((x_0
                                                                             (list
                                                                              e_1)))
                                                                        (not
                                                                         result_1)))
                                                                   #t
                                                                   #f)
                                                               (for-loop_0
                                                                result_1
                                                                rest_0)
                                                               result_1))))
                                                       result_0))))))
                                              (for-loop_0 #t e50_0)))
                                         (loop_0 e049_0 locals_0)
                                         #f))
                                      (args
                                       (raise-binding-result-arity-error
                                        4
                                        args))))
                                    (if (unsafe-fx< index_0 8)
                                      (call-with-values
                                       (lambda ()
                                         (if (let ((s_0
                                                    (if (syntax? e_0)
                                                      (syntax-e e_0)
                                                      e_0)))
                                               (if (pair? s_0)
                                                 (if (let ((s_1 (car s_0))) #t)
                                                   (let ((s_1 (cdr s_0)))
                                                     (let ((s_2
                                                            (if (syntax? s_1)
                                                              (syntax-e s_1)
                                                              s_1)))
                                                       (if (pair? s_2)
                                                         (if (let ((s_3
                                                                    (car s_2)))
                                                               #t)
                                                           (let ((s_3
                                                                  (cdr s_2)))
                                                             (let ((s_4
                                                                    (if (syntax?
                                                                         s_3)
                                                                      (syntax-e
                                                                       s_3)
                                                                      s_3)))
                                                               (if (pair? s_4)
                                                                 (if (let ((s_5
                                                                            (car
                                                                             s_4)))
                                                                       #t)
                                                                   (let ((s_5
                                                                          (cdr
                                                                           s_4)))
                                                                     (let ((s_6
                                                                            (if (syntax?
                                                                                 s_5)
                                                                              (syntax-e
                                                                               s_5)
                                                                              s_5)))
                                                                       (if (pair?
                                                                            s_6)
                                                                         (if (let ((s_7
                                                                                    (car
                                                                                     s_6)))
                                                                               (let ((s_8
                                                                                      (if (syntax?
                                                                                           s_7)
                                                                                        (syntax-e
                                                                                         s_7)
                                                                                        s_7)))
                                                                                 (if (pair?
                                                                                      s_8)
                                                                                   (if (let ((s_9
                                                                                              (car
                                                                                               s_8)))
                                                                                         #t)
                                                                                     (let ((s_9
                                                                                            (cdr
                                                                                             s_8)))
                                                                                       (let ((s_10
                                                                                              (if (syntax?
                                                                                                   s_9)
                                                                                                (syntax-e
                                                                                                 s_9)
                                                                                                s_9)))
                                                                                         (if (pair?
                                                                                              s_10)
                                                                                           (if (let ((s_11
                                                                                                      (car
                                                                                                       s_10)))
                                                                                                 #t)
                                                                                             (let ((s_11
                                                                                                    (cdr
                                                                                                     s_10)))
                                                                                               (let ((s_12
                                                                                                      (if (syntax?
                                                                                                           s_11)
                                                                                                        (syntax-e
                                                                                                         s_11)
                                                                                                        s_11)))
                                                                                                 (null?
                                                                                                  s_12)))
                                                                                             #f)
                                                                                           #f)))
                                                                                     #f)
                                                                                   #f)))
                                                                           (let ((s_7
                                                                                  (cdr
                                                                                   s_6)))
                                                                             (let ((s_8
                                                                                    (if (syntax?
                                                                                         s_7)
                                                                                      (syntax-e
                                                                                       s_7)
                                                                                      s_7)))
                                                                               (null?
                                                                                s_8)))
                                                                           #f)
                                                                         #f)))
                                                                   #f)
                                                                 #f)))
                                                           #f)
                                                         #f)))
                                                   #f)
                                                 #f))
                                           (call-with-values
                                            (lambda ()
                                              (let ((s_0
                                                     (if (syntax? e_0)
                                                       (syntax-e e_0)
                                                       e_0)))
                                                (let ((mp61_0
                                                       (let ((s_1 (car s_0)))
                                                         s_1)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((s_1 (cdr s_0)))
                                                       (let ((s_2
                                                              (if (syntax? s_1)
                                                                (syntax-e s_1)
                                                                s_1)))
                                                         (let ((v66_0
                                                                (let ((s_3
                                                                       (car
                                                                        s_2)))
                                                                  s_3)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((s_3
                                                                     (cdr
                                                                      s_2)))
                                                                (let ((s_4
                                                                       (if (syntax?
                                                                            s_3)
                                                                         (syntax-e
                                                                          s_3)
                                                                         s_3)))
                                                                  (let ((g70_0
                                                                         (let ((s_5
                                                                                (car
                                                                                 s_4)))
                                                                           s_5)))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((s_5
                                                                              (cdr
                                                                               s_4)))
                                                                         (let ((s_6
                                                                                (if (syntax?
                                                                                     s_5)
                                                                                  (syntax-e
                                                                                   s_5)
                                                                                  s_5)))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((s_7
                                                                                     (car
                                                                                      s_6)))
                                                                                (let ((s_8
                                                                                       (if (syntax?
                                                                                            s_7)
                                                                                         (syntax-e
                                                                                          s_7)
                                                                                         s_7)))
                                                                                  (let ((quot75_0
                                                                                         (let ((s_9
                                                                                                (car
                                                                                                 s_8)))
                                                                                           s_9)))
                                                                                    (let ((nm76_0
                                                                                           (let ((s_9
                                                                                                  (cdr
                                                                                                   s_8)))
                                                                                             (let ((s_10
                                                                                                    (if (syntax?
                                                                                                         s_9)
                                                                                                      (syntax-e
                                                                                                       s_9)
                                                                                                      s_9)))
                                                                                               (let ((nm77_0
                                                                                                      (let ((s_11
                                                                                                             (car
                                                                                                              s_10)))
                                                                                                        s_11)))
                                                                                                 (call-with-values
                                                                                                  (lambda ()
                                                                                                    (let ((s_11
                                                                                                           (cdr
                                                                                                            s_10)))
                                                                                                      (let ((s_12
                                                                                                             (if (syntax?
                                                                                                                  s_11)
                                                                                                               (syntax-e
                                                                                                                s_11)
                                                                                                               s_11)))
                                                                                                        (values))))
                                                                                                  (case-lambda
                                                                                                   (()
                                                                                                    (let ((nm77_1
                                                                                                           nm77_0))
                                                                                                      (values
                                                                                                       nm77_1)))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     0
                                                                                                     args)))))))))
                                                                                      (let ((quot75_1
                                                                                             quot75_0))
                                                                                        (values
                                                                                         quot75_1
                                                                                         nm76_0)))))))
                                                                            (case-lambda
                                                                             ((quot73_0
                                                                               nm74_0)
                                                                              (call-with-values
                                                                               (lambda ()
                                                                                 (let ((s_7
                                                                                        (cdr
                                                                                         s_6)))
                                                                                   (let ((s_8
                                                                                          (if (syntax?
                                                                                               s_7)
                                                                                            (syntax-e
                                                                                             s_7)
                                                                                            s_7)))
                                                                                     (values))))
                                                                               (case-lambda
                                                                                (()
                                                                                 (let ((quot73_1
                                                                                        quot73_0)
                                                                                       (nm74_1
                                                                                        nm74_0))
                                                                                   (values
                                                                                    quot73_1
                                                                                    nm74_1)))
                                                                                (args
                                                                                 (raise-binding-result-arity-error
                                                                                  0
                                                                                  args)))))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args)))))))
                                                                     (case-lambda
                                                                      ((quot71_0
                                                                        nm72_0)
                                                                       (let ((g70_1
                                                                              g70_0))
                                                                         (values
                                                                          g70_1
                                                                          quot71_0
                                                                          nm72_0)))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))))))
                                                            (case-lambda
                                                             ((g67_0
                                                               quot68_0
                                                               nm69_0)
                                                              (let ((v66_1
                                                                     v66_0))
                                                                (values
                                                                 v66_1
                                                                 g67_0
                                                                 quot68_0
                                                                 nm69_0)))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args))))))))
                                                   (case-lambda
                                                    ((v62_0
                                                      g63_0
                                                      quot64_0
                                                      nm65_0)
                                                     (let ((mp61_1 mp61_0))
                                                       (values
                                                        mp61_1
                                                        v62_0
                                                        g63_0
                                                        quot64_0
                                                        nm65_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      4
                                                      args)))))))
                                            (case-lambda
                                             ((mp56_0
                                               v57_0
                                               g58_0
                                               quot59_0
                                               nm60_0)
                                              (values
                                               #t
                                               mp56_0
                                               v57_0
                                               g58_0
                                               quot59_0
                                               nm60_0))
                                             (args
                                              (raise-binding-result-arity-error
                                               5
                                               args))))
                                           (values #f #f #f #f #f #f)))
                                       (case-lambda
                                        ((ok?_0
                                          mp56_0
                                          v57_0
                                          g58_0
                                          quot59_0
                                          nm60_0)
                                         (if ok?_0
                                           (if (not
                                                (any-side-effects?.1
                                                 hash2610
                                                 hash2610
                                                 unsafe-undefined
                                                 v57_0
                                                 1))
                                             (if (eq? 'quote quot59_0)
                                               (if (symbol? nm60_0)
                                                 (if (eq? #f g58_0) 1 #f)
                                                 #f)
                                               #f)
                                             #f)
                                           #f))
                                        (args
                                         (raise-binding-result-arity-error
                                          6
                                          args))))
                                      (if (ok-make-struct-type?
                                           e_0
                                           ready-variable?_0
                                           known-defns2_0)
                                        5
                                        #f)))
                                  (if (unsafe-fx< index_0 11)
                                    (if (unsafe-fx< index_0 10)
                                      (if (ok-make-struct-field-accessor/mutator?
                                           e_0
                                           locals_0
                                           'general-accessor
                                           known-defns2_0)
                                        1
                                        #f)
                                      (if (ok-make-struct-field-accessor/mutator?
                                           e_0
                                           locals_0
                                           'general-mutator
                                           known-defns2_0)
                                        1
                                        #f))
                                    (if (unsafe-fx< index_0 12)
                                      (if (ok-make-struct-type-property?
                                           e_0
                                           known-defns2_0)
                                        3
                                        #f)
                                      (if (unsafe-fx< index_0 13)
                                        (call-with-values
                                         (lambda ()
                                           (if (let ((s_0
                                                      (if (syntax? e_0)
                                                        (syntax-e e_0)
                                                        e_0)))
                                                 (if (pair? s_0)
                                                   (if (let ((s_1 (car s_0)))
                                                         #t)
                                                     (let ((s_1 (cdr s_0)))
                                                       (let ((s_2
                                                              (if (syntax? s_1)
                                                                (syntax-e s_1)
                                                                s_1)))
                                                         (if (pair? s_2)
                                                           (if (let ((s_3
                                                                      (car
                                                                       s_2)))
                                                                 (let ((s_4
                                                                        (if (syntax?
                                                                             s_3)
                                                                          (syntax-e
                                                                           s_3)
                                                                          s_3)))
                                                                   (if (pair?
                                                                        s_4)
                                                                     (if (let ((s_5
                                                                                (car
                                                                                 s_4)))
                                                                           #t)
                                                                       (let ((s_5
                                                                              (cdr
                                                                               s_4)))
                                                                         (let ((s_6
                                                                                (if (syntax?
                                                                                     s_5)
                                                                                  (syntax-e
                                                                                   s_5)
                                                                                  s_5)))
                                                                           (if (pair?
                                                                                s_6)
                                                                             (if (let ((s_7
                                                                                        (car
                                                                                         s_6)))
                                                                                   #t)
                                                                               (let ((s_7
                                                                                      (cdr
                                                                                       s_6)))
                                                                                 (let ((s_8
                                                                                        (if (syntax?
                                                                                             s_7)
                                                                                          (syntax-e
                                                                                           s_7)
                                                                                          s_7)))
                                                                                   (null?
                                                                                    s_8)))
                                                                               #f)
                                                                             #f)))
                                                                       #f)
                                                                     #f)))
                                                             (let ((s_3
                                                                    (cdr s_2)))
                                                               (let ((s_4
                                                                      (if (syntax?
                                                                           s_3)
                                                                        (syntax-e
                                                                         s_3)
                                                                        s_3)))
                                                                 (null? s_4)))
                                                             #f)
                                                           #f)))
                                                     #f)
                                                   #f))
                                             (call-with-values
                                              (lambda ()
                                                (let ((s_0
                                                       (if (syntax? e_0)
                                                         (syntax-e e_0)
                                                         e_0)))
                                                  (let ((gs83_0
                                                         (let ((s_1 (car s_0)))
                                                           s_1)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((s_1 (cdr s_0)))
                                                         (let ((s_2
                                                                (if (syntax?
                                                                     s_1)
                                                                  (syntax-e
                                                                   s_1)
                                                                  s_1)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((s_3
                                                                     (car
                                                                      s_2)))
                                                                (let ((s_4
                                                                       (if (syntax?
                                                                            s_3)
                                                                         (syntax-e
                                                                          s_3)
                                                                         s_3)))
                                                                  (let ((quot88_0
                                                                         (let ((s_5
                                                                                (car
                                                                                 s_4)))
                                                                           s_5)))
                                                                    (let ((datum89_0
                                                                           (let ((s_5
                                                                                  (cdr
                                                                                   s_4)))
                                                                             (let ((s_6
                                                                                    (if (syntax?
                                                                                         s_5)
                                                                                      (syntax-e
                                                                                       s_5)
                                                                                      s_5)))
                                                                               (let ((datum90_0
                                                                                      (let ((s_7
                                                                                             (car
                                                                                              s_6)))
                                                                                        s_7)))
                                                                                 (call-with-values
                                                                                  (lambda ()
                                                                                    (let ((s_7
                                                                                           (cdr
                                                                                            s_6)))
                                                                                      (let ((s_8
                                                                                             (if (syntax?
                                                                                                  s_7)
                                                                                               (syntax-e
                                                                                                s_7)
                                                                                               s_7)))
                                                                                        (values))))
                                                                                  (case-lambda
                                                                                   (()
                                                                                    (let ((datum90_1
                                                                                           datum90_0))
                                                                                      (values
                                                                                       datum90_1)))
                                                                                   (args
                                                                                    (raise-binding-result-arity-error
                                                                                     0
                                                                                     args)))))))))
                                                                      (let ((quot88_1
                                                                             quot88_0))
                                                                        (values
                                                                         quot88_1
                                                                         datum89_0)))))))
                                                            (case-lambda
                                                             ((quot86_0
                                                               datum87_0)
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_3
                                                                        (cdr
                                                                         s_2)))
                                                                   (let ((s_4
                                                                          (if (syntax?
                                                                               s_3)
                                                                            (syntax-e
                                                                             s_3)
                                                                            s_3)))
                                                                     (values))))
                                                               (case-lambda
                                                                (()
                                                                 (let ((quot86_1
                                                                        quot86_0)
                                                                       (datum87_1
                                                                        datum87_0))
                                                                   (values
                                                                    quot86_1
                                                                    datum87_1)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  0
                                                                  args)))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (case-lambda
                                                      ((quot84_0 datum85_0)
                                                       (let ((gs83_1 gs83_0))
                                                         (values
                                                          gs83_1
                                                          quot84_0
                                                          datum85_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))))
                                              (case-lambda
                                               ((gs80_0 quot81_0 datum82_0)
                                                (values
                                                 #t
                                                 gs80_0
                                                 quot81_0
                                                 datum82_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 3
                                                 args))))
                                             (values #f #f #f #f)))
                                         (case-lambda
                                          ((ok?_0 gs80_0 quot81_0 datum82_0)
                                           (if (let ((or-part_0
                                                      (if ok?_0
                                                        (if (eq?
                                                             'quote
                                                             quot81_0)
                                                          (let ((or-part_0
                                                                 (symbol?
                                                                  datum82_0)))
                                                            (if or-part_0
                                                              or-part_0
                                                              (string?
                                                               datum82_0)))
                                                          #f)
                                                        #f)))
                                                 (if or-part_0
                                                   or-part_0
                                                   (null?
                                                    (cdr (correlated-e e_0)))))
                                             1
                                             #f))
                                          (args
                                           (raise-binding-result-arity-error
                                            4
                                            args))))
                                        (call-with-values
                                         (lambda ()
                                           (if (let ((s_0
                                                      (if (syntax? e_0)
                                                        (syntax-e e_0)
                                                        e_0)))
                                                 (if (pair? s_0)
                                                   (if (let ((s_1 (car s_0)))
                                                         #t)
                                                     (let ((s_1 (cdr s_0)))
                                                       (let ((s_2
                                                              (if (syntax? s_1)
                                                                (syntax-e s_1)
                                                                s_1)))
                                                         (if (pair? s_2)
                                                           (if (let ((s_3
                                                                      (car
                                                                       s_2)))
                                                                 (let ((s_4
                                                                        (if (syntax?
                                                                             s_3)
                                                                          (syntax-e
                                                                           s_3)
                                                                          s_3)))
                                                                   (if (pair?
                                                                        s_4)
                                                                     (if (let ((s_5
                                                                                (car
                                                                                 s_4)))
                                                                           (let ((or-part_0
                                                                                  (if (syntax?
                                                                                       s_5)
                                                                                    (symbol?
                                                                                     (syntax-e
                                                                                      s_5))
                                                                                    #f)))
                                                                             (if or-part_0
                                                                               or-part_0
                                                                               (symbol?
                                                                                s_5))))
                                                                       (let ((s_5
                                                                              (cdr
                                                                               s_4)))
                                                                         (let ((s_6
                                                                                (if (syntax?
                                                                                     s_5)
                                                                                  (syntax-e
                                                                                   s_5)
                                                                                  s_5)))
                                                                           (if (pair?
                                                                                s_6)
                                                                             (if (let ((s_7
                                                                                        (car
                                                                                         s_6)))
                                                                                   (let ((or-part_0
                                                                                          (if (syntax?
                                                                                               s_7)
                                                                                            (symbol?
                                                                                             (syntax-e
                                                                                              s_7))
                                                                                            #f)))
                                                                                     (if or-part_0
                                                                                       or-part_0
                                                                                       (symbol?
                                                                                        s_7))))
                                                                               (let ((s_7
                                                                                      (cdr
                                                                                       s_6)))
                                                                                 (let ((s_8
                                                                                        (if (syntax?
                                                                                             s_7)
                                                                                          (syntax-e
                                                                                           s_7)
                                                                                          s_7)))
                                                                                   (null?
                                                                                    s_8)))
                                                                               #f)
                                                                             #f)))
                                                                       #f)
                                                                     #f)))
                                                             (let ((s_3
                                                                    (cdr s_2)))
                                                               (let ((s_4
                                                                      (if (syntax?
                                                                           s_3)
                                                                        (syntax-e
                                                                         s_3)
                                                                        s_3)))
                                                                 (if (pair?
                                                                      s_4)
                                                                   (if (let ((s_5
                                                                              (car
                                                                               s_4)))
                                                                         #t)
                                                                     (let ((s_5
                                                                            (cdr
                                                                             s_4)))
                                                                       (let ((s_6
                                                                              (if (syntax?
                                                                                   s_5)
                                                                                (syntax-e
                                                                                 s_5)
                                                                                s_5)))
                                                                         (if (pair?
                                                                              s_6)
                                                                           (if (let ((s_7
                                                                                      (car
                                                                                       s_6)))
                                                                                 #t)
                                                                             (let ((s_7
                                                                                    (cdr
                                                                                     s_6)))
                                                                               (let ((s_8
                                                                                      (if (syntax?
                                                                                           s_7)
                                                                                        (syntax-e
                                                                                         s_7)
                                                                                        s_7)))
                                                                                 (null?
                                                                                  s_8)))
                                                                             #f)
                                                                           #f)))
                                                                     #f)
                                                                   #f)))
                                                             #f)
                                                           #f)))
                                                     #f)
                                                   #f))
                                             (call-with-values
                                              (lambda ()
                                                (let ((s_0
                                                       (if (syntax? e_0)
                                                         (syntax-e e_0)
                                                         e_0)))
                                                  (let ((_0
                                                         (let ((s_1 (car s_0)))
                                                           s_1)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((s_1 (cdr s_0)))
                                                         (let ((s_2
                                                                (if (syntax?
                                                                     s_1)
                                                                  (syntax-e
                                                                   s_1)
                                                                  s_1)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((s_3
                                                                     (car
                                                                      s_2)))
                                                                (let ((s_4
                                                                       (if (syntax?
                                                                            s_3)
                                                                         (syntax-e
                                                                          s_3)
                                                                         s_3)))
                                                                  (let ((id:rator105_0
                                                                         (let ((s_5
                                                                                (car
                                                                                 s_4)))
                                                                           s_5)))
                                                                    (let ((id:arg106_0
                                                                           (let ((s_5
                                                                                  (cdr
                                                                                   s_4)))
                                                                             (let ((s_6
                                                                                    (if (syntax?
                                                                                         s_5)
                                                                                      (syntax-e
                                                                                       s_5)
                                                                                      s_5)))
                                                                               (let ((id:arg107_0
                                                                                      (let ((s_7
                                                                                             (car
                                                                                              s_6)))
                                                                                        s_7)))
                                                                                 (call-with-values
                                                                                  (lambda ()
                                                                                    (let ((s_7
                                                                                           (cdr
                                                                                            s_6)))
                                                                                      (let ((s_8
                                                                                             (if (syntax?
                                                                                                  s_7)
                                                                                               (syntax-e
                                                                                                s_7)
                                                                                               s_7)))
                                                                                        (values))))
                                                                                  (case-lambda
                                                                                   (()
                                                                                    (let ((id:arg107_1
                                                                                           id:arg107_0))
                                                                                      (values
                                                                                       id:arg107_1)))
                                                                                   (args
                                                                                    (raise-binding-result-arity-error
                                                                                     0
                                                                                     args)))))))))
                                                                      (let ((id:rator105_1
                                                                             id:rator105_0))
                                                                        (values
                                                                         id:rator105_1
                                                                         id:arg106_0)))))))
                                                            (case-lambda
                                                             ((id:rator101_0
                                                               id:arg102_0)
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_3
                                                                        (cdr
                                                                         s_2)))
                                                                   (let ((s_4
                                                                          (if (syntax?
                                                                               s_3)
                                                                            (syntax-e
                                                                             s_3)
                                                                            s_3)))
                                                                     (let ((thn108_0
                                                                            (let ((s_5
                                                                                   (car
                                                                                    s_4)))
                                                                              s_5)))
                                                                       (let ((els109_0
                                                                              (let ((s_5
                                                                                     (cdr
                                                                                      s_4)))
                                                                                (let ((s_6
                                                                                       (if (syntax?
                                                                                            s_5)
                                                                                         (syntax-e
                                                                                          s_5)
                                                                                         s_5)))
                                                                                  (let ((els110_0
                                                                                         (let ((s_7
                                                                                                (car
                                                                                                 s_6)))
                                                                                           s_7)))
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (let ((s_7
                                                                                              (cdr
                                                                                               s_6)))
                                                                                         (let ((s_8
                                                                                                (if (syntax?
                                                                                                     s_7)
                                                                                                  (syntax-e
                                                                                                   s_7)
                                                                                                  s_7)))
                                                                                           (values))))
                                                                                     (case-lambda
                                                                                      (()
                                                                                       (let ((els110_1
                                                                                              els110_0))
                                                                                         (values
                                                                                          els110_1)))
                                                                                      (args
                                                                                       (raise-binding-result-arity-error
                                                                                        0
                                                                                        args)))))))))
                                                                         (let ((thn108_1
                                                                                thn108_0))
                                                                           (values
                                                                            thn108_1
                                                                            els109_0)))))))
                                                               (case-lambda
                                                                ((thn103_0
                                                                  els104_0)
                                                                 (let ((id:rator101_1
                                                                        id:rator101_0)
                                                                       (id:arg102_1
                                                                        id:arg102_0))
                                                                   (values
                                                                    id:rator101_1
                                                                    id:arg102_1
                                                                    thn103_0
                                                                    els104_0)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (case-lambda
                                                      ((id:rator97_0
                                                        id:arg98_0
                                                        thn99_0
                                                        els100_0)
                                                       (let ((_1 _0))
                                                         (values
                                                          _1
                                                          id:rator97_0
                                                          id:arg98_0
                                                          thn99_0
                                                          els100_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        4
                                                        args)))))))
                                              (case-lambda
                                               ((_0
                                                 id:rator92_0
                                                 id:arg93_0
                                                 thn94_0
                                                 els95_0)
                                                (values
                                                 #t
                                                 _0
                                                 id:rator92_0
                                                 id:arg93_0
                                                 thn94_0
                                                 els95_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 5
                                                 args))))
                                             (values #f #f #f #f #f #f)))
                                         (case-lambda
                                          ((ok?_0
                                            _0
                                            id:rator92_0
                                            id:arg93_0
                                            thn94_0
                                            els95_0)
                                           (if ok?_0
                                             (let ((c2_0
                                                    (let ((or-part_0
                                                           (hash-ref
                                                            locals_0
                                                            id:rator92_0
                                                            #f)))
                                                      (if or-part_0
                                                        or-part_0
                                                        (lookup-defn
                                                         known-defns2_0
                                                         id:rator92_0)))))
                                               (if c2_0
                                                 (if (known-predicate? c2_0)
                                                   (if (not
                                                        (effects?_0
                                                         thn94_0
                                                         expected-results8_0
                                                         (hash-set
                                                          locals_0
                                                          id:arg93_0
                                                          (known-satisfies8.1
                                                           (known-predicate-key
                                                            c2_0)))))
                                                     (loop_0 els95_0 locals_0)
                                                     #f)
                                                   #f)
                                                 #f))
                                             (call-with-values
                                              (lambda ()
                                                (if (let ((s_0
                                                           (if (syntax? e_0)
                                                             (syntax-e e_0)
                                                             e_0)))
                                                      (if (pair? s_0)
                                                        (if (let ((s_1
                                                                   (car s_0)))
                                                              #t)
                                                          (let ((s_1
                                                                 (cdr s_0)))
                                                            (let ((s_2
                                                                   (if (syntax?
                                                                        s_1)
                                                                     (syntax-e
                                                                      s_1)
                                                                     s_1)))
                                                              (if (pair? s_2)
                                                                (if (let ((s_3
                                                                           (car
                                                                            s_2)))
                                                                      #t)
                                                                  (let ((s_3
                                                                         (cdr
                                                                          s_2)))
                                                                    (let ((s_4
                                                                           (if (syntax?
                                                                                s_3)
                                                                             (syntax-e
                                                                              s_3)
                                                                             s_3)))
                                                                      (if (pair?
                                                                           s_4)
                                                                        (if (let ((s_5
                                                                                   (car
                                                                                    s_4)))
                                                                              #t)
                                                                          (let ((s_5
                                                                                 (cdr
                                                                                  s_4)))
                                                                            (let ((s_6
                                                                                   (if (syntax?
                                                                                        s_5)
                                                                                     (syntax-e
                                                                                      s_5)
                                                                                     s_5)))
                                                                              (if (pair?
                                                                                   s_6)
                                                                                (if (let ((s_7
                                                                                           (car
                                                                                            s_6)))
                                                                                      #t)
                                                                                  (let ((s_7
                                                                                         (cdr
                                                                                          s_6)))
                                                                                    (let ((s_8
                                                                                           (if (syntax?
                                                                                                s_7)
                                                                                             (syntax-e
                                                                                              s_7)
                                                                                             s_7)))
                                                                                      (null?
                                                                                       s_8)))
                                                                                  #f)
                                                                                #f)))
                                                                          #f)
                                                                        #f)))
                                                                  #f)
                                                                #f)))
                                                          #f)
                                                        #f))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((s_0
                                                            (if (syntax? e_0)
                                                              (syntax-e e_0)
                                                              e_0)))
                                                       (let ((_1
                                                              (let ((s_1
                                                                     (car
                                                                      s_0)))
                                                                s_1)))
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((s_1
                                                                   (cdr s_0)))
                                                              (let ((s_2
                                                                     (if (syntax?
                                                                          s_1)
                                                                       (syntax-e
                                                                        s_1)
                                                                       s_1)))
                                                                (let ((tst119_0
                                                                       (let ((s_3
                                                                              (car
                                                                               s_2)))
                                                                         s_3)))
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((s_3
                                                                            (cdr
                                                                             s_2)))
                                                                       (let ((s_4
                                                                              (if (syntax?
                                                                                   s_3)
                                                                                (syntax-e
                                                                                 s_3)
                                                                                s_3)))
                                                                         (let ((thn122_0
                                                                                (let ((s_5
                                                                                       (car
                                                                                        s_4)))
                                                                                  s_5)))
                                                                           (let ((els123_0
                                                                                  (let ((s_5
                                                                                         (cdr
                                                                                          s_4)))
                                                                                    (let ((s_6
                                                                                           (if (syntax?
                                                                                                s_5)
                                                                                             (syntax-e
                                                                                              s_5)
                                                                                             s_5)))
                                                                                      (let ((els124_0
                                                                                             (let ((s_7
                                                                                                    (car
                                                                                                     s_6)))
                                                                                               s_7)))
                                                                                        (call-with-values
                                                                                         (lambda ()
                                                                                           (let ((s_7
                                                                                                  (cdr
                                                                                                   s_6)))
                                                                                             (let ((s_8
                                                                                                    (if (syntax?
                                                                                                         s_7)
                                                                                                      (syntax-e
                                                                                                       s_7)
                                                                                                      s_7)))
                                                                                               (values))))
                                                                                         (case-lambda
                                                                                          (()
                                                                                           (let ((els124_1
                                                                                                  els124_0))
                                                                                             (values
                                                                                              els124_1)))
                                                                                          (args
                                                                                           (raise-binding-result-arity-error
                                                                                            0
                                                                                            args)))))))))
                                                                             (let ((thn122_1
                                                                                    thn122_0))
                                                                               (values
                                                                                thn122_1
                                                                                els123_0)))))))
                                                                   (case-lambda
                                                                    ((thn120_0
                                                                      els121_0)
                                                                     (let ((tst119_1
                                                                            tst119_0))
                                                                       (values
                                                                        tst119_1
                                                                        thn120_0
                                                                        els121_0)))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args))))))))
                                                          (case-lambda
                                                           ((tst116_0
                                                             thn117_0
                                                             els118_0)
                                                            (let ((_2 _1))
                                                              (values
                                                               _2
                                                               tst116_0
                                                               thn117_0
                                                               els118_0)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             3
                                                             args)))))))
                                                   (case-lambda
                                                    ((_1
                                                      tst112_0
                                                      thn113_0
                                                      els114_0)
                                                     (values
                                                      #t
                                                      _1
                                                      tst112_0
                                                      thn113_0
                                                      els114_0))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      4
                                                      args))))
                                                  (values #f #f #f #f #f)))
                                              (case-lambda
                                               ((ok?_1
                                                 _1
                                                 tst112_0
                                                 thn113_0
                                                 els114_0)
                                                (if ok?_1
                                                  (if (not
                                                       (effects?_0
                                                        tst112_0
                                                        1
                                                        locals_0))
                                                    (if (not
                                                         (effects?_0
                                                          thn113_0
                                                          expected-results8_0
                                                          locals_0))
                                                      (loop_0
                                                       els114_0
                                                       locals_0)
                                                      #f)
                                                    #f)
                                                  #f))
                                               (args
                                                (raise-binding-result-arity-error
                                                 5
                                                 args))))))
                                          (args
                                           (raise-binding-result-arity-error
                                            6
                                            args))))))))))))))))
                   (loop_0 e7_0 known-locals1_0))))
             (not
              (if actual-results_0
                (let ((or-part_0 (not expected-results8_0)))
                  (if or-part_0
                    or-part_0
                    (= actual-results_0 expected-results8_0)))
                #f)))))))))
(define satisfies?
  (lambda (e_0 key_0 defns_0 locals_0)
    (let ((d_0
           (let ((or-part_0 (hash-ref locals_0 e_0 #f)))
             (if or-part_0 or-part_0 (lookup-defn defns_0 e_0)))))
      (let ((known-key_0
             (let ((or-part_0
                    (if d_0
                      (if (known-satisfies? d_0)
                        (known-satisfies-predicate-key d_0)
                        #f)
                      #f)))
               (if or-part_0
                 or-part_0
                 (if (not e_0)
                   'false
                   (if (exact-integer? e_0)
                     'exact-integer
                     (if (pair? e_0)
                       (let ((head_0 (car e_0)))
                         (if (eq? head_0 'quote)
                           (let ((v_0 (cadr e_0)))
                             (if (symbol? v_0) 'symbol #f))
                           (let ((p_0 (lookup-defn defns_0 head_0)))
                             (if (known-function-of-satisfying? p_0)
                               (known-function-of-satisfying-result-key p_0)
                               #f))))
                       #f)))))))
        (if known-key_0
          (let ((or-part_0 (eq? key_0 known-key_0)))
            (if or-part_0
              or-part_0
              (if (pair? key_0)
                (if (eq? 'or (car key_0))
                  (let ((lst_0 (cdr key_0)))
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (result_0 lst_1)
                            (begin
                              (if (pair? lst_1)
                                (let ((key_1 (unsafe-car lst_1)))
                                  (let ((rest_0 (unsafe-cdr lst_1)))
                                    (let ((result_1 (eq? key_1 known-key_0)))
                                      (let ((result_2 (values result_1)))
                                        (if (if (not
                                                 (let ((x_0 (list key_1)))
                                                   result_2))
                                              #t
                                              #f)
                                          (for-loop_0 result_2 rest_0)
                                          result_2)))))
                                result_0))))))
                       (for-loop_0 #f lst_0))))
                  #f)
                #f)))
          #f)))))
(define add-binding-info
  (lambda (locals_0 idss_0 rhss_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (locals_1 lst_0 lst_1)
            (begin
              (if (if (pair? lst_0) (pair? lst_1) #f)
                (let ((ids_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((rhs_0 (unsafe-car lst_1)))
                      (let ((rest_1 (unsafe-cdr lst_1)))
                        (let ((locals_2
                               (let ((locals_2
                                      (letrec*
                                       ((loop_0
                                         (|#%name|
                                          loop
                                          (lambda (rhs_1)
                                            (begin
                                              (let ((tmp_0
                                                     (if (pair?
                                                          (correlated-e rhs_1))
                                                       (correlated-e
                                                        (car
                                                         (correlated-e rhs_1)))
                                                       #f)))
                                                (if (eq?
                                                     tmp_0
                                                     'make-struct-type)
                                                  (let ((field-count_0
                                                         (extract-struct-field-count-lower-bound
                                                          rhs_1)))
                                                    (let ((lst_2
                                                           (correlated->list
                                                            ids_0)))
                                                      (let ((lst_3
                                                             '(struct-type
                                                               constructor
                                                               predicate
                                                               general-accessor
                                                               general-mutator)))
                                                        (let ((lst_4 lst_2))
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_1
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (locals_2
                                                                         lst_5
                                                                         lst_6)
                                                                  (begin
                                                                    (if (if (pair?
                                                                             lst_5)
                                                                          (pair?
                                                                           lst_6)
                                                                          #f)
                                                                      (let ((id_0
                                                                             (unsafe-car
                                                                              lst_5)))
                                                                        (let ((rest_2
                                                                               (unsafe-cdr
                                                                                lst_5)))
                                                                          (let ((type_0
                                                                                 (unsafe-car
                                                                                  lst_6)))
                                                                            (let ((rest_3
                                                                                   (unsafe-cdr
                                                                                    lst_6)))
                                                                              (let ((locals_3
                                                                                     (let ((locals_3
                                                                                            (let ((app_0
                                                                                                   (correlated-e
                                                                                                    id_0)))
                                                                                              (hash-set
                                                                                               locals_2
                                                                                               app_0
                                                                                               (known-struct-op9.1
                                                                                                type_0
                                                                                                field-count_0)))))
                                                                                       (values
                                                                                        locals_3))))
                                                                                (for-loop_1
                                                                                 locals_3
                                                                                 rest_2
                                                                                 rest_3))))))
                                                                      locals_2))))))
                                                             (for-loop_1
                                                              locals_1
                                                              lst_4
                                                              lst_3)))))))
                                                  (if (eq? tmp_0 'let-values)
                                                    (if (null?
                                                         (correlated-e
                                                          (correlated-cadr
                                                           rhs_1)))
                                                      (loop_0
                                                       (caddr
                                                        (correlated->list
                                                         rhs_1)))
                                                      (loop_0 #f))
                                                    (let ((ids*_0
                                                           (correlated->list
                                                            ids_0)))
                                                      (if (if (pair? ids*_0)
                                                            (null?
                                                             (cdr ids*_0))
                                                            #f)
                                                        (let ((app_0
                                                               (correlated-e
                                                                (car ids*_0))))
                                                          (hash-set
                                                           locals_1
                                                           app_0
                                                           (infer-known
                                                            rhs_1)))
                                                        (begin
                                                          (letrec*
                                                           ((for-loop_1
                                                             (|#%name|
                                                              for-loop
                                                              (lambda (locals_2
                                                                       lst_2)
                                                                (begin
                                                                  (if (pair?
                                                                       lst_2)
                                                                    (let ((id_0
                                                                           (unsafe-car
                                                                            lst_2)))
                                                                      (let ((rest_2
                                                                             (unsafe-cdr
                                                                              lst_2)))
                                                                        (let ((locals_3
                                                                               (let ((locals_3
                                                                                      (hash-set
                                                                                       locals_2
                                                                                       (correlated-e
                                                                                        id_0)
                                                                                       #t)))
                                                                                 (values
                                                                                  locals_3))))
                                                                          (for-loop_1
                                                                           locals_3
                                                                           rest_2))))
                                                                    locals_2))))))
                                                           (for-loop_1
                                                            locals_1
                                                            ids*_0)))))))))))))
                                       (loop_0 rhs_0))))
                                 (values locals_2))))
                          (for-loop_0 locals_2 rest_0 rest_1))))))
                locals_1))))))
       (for-loop_0 locals_0 idss_0 rhss_0)))))
(define infer-known
  (lambda (e_0)
    (let ((tmp_0
           (if (pair? (correlated-e e_0))
             (correlated-e (car (correlated-e e_0)))
             #f)))
      (if (if (eq? tmp_0 'lambda) #t (eq? tmp_0 'case-lambda))
        (known-satisfies8.1 'procedure)
        #t))))
(define ok-make-struct-type-property?
  (lambda (e_0 defns_0)
    (let ((l_0 (correlated->list e_0)))
      (if (<= 2 (length l_0) 8)
        (let ((lst_0 (cdr l_0)))
          (let ((lst_1
                 (list
                  (lambda (v_0) (quoted? symbol? v_0))
                  (lambda (v_0) (is-lambda? v_0 2 defns_0))
                  (lambda (v_0)
                    (ok-make-struct-type-property-super? v_0 defns_0))
                  (lambda (v_0)
                    (not
                     (any-side-effects?.1
                      defns_0
                      hash2610
                      unsafe-undefined
                      v_0
                      1)))
                  (lambda (v_0) (quoted? symbol? v_0))
                  (lambda (v_0)
                    (quoted?
                     (lambda (x_0)
                       (let ((or-part_0 (not x_0)))
                         (if or-part_0
                           or-part_0
                           (let ((or-part_1 (symbol? x_0)))
                             (if or-part_1 or-part_1 (string? x_0))))))
                     v_0))
                  (lambda (v_0) (quoted? symbol? v_0)))))
            (let ((lst_2 lst_0))
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (result_0 lst_3 lst_4)
                      (begin
                        (if (if (pair? lst_3) (pair? lst_4) #f)
                          (let ((arg_0 (unsafe-car lst_3)))
                            (let ((rest_0 (unsafe-cdr lst_3)))
                              (let ((pred_0 (unsafe-car lst_4)))
                                (let ((rest_1 (unsafe-cdr lst_4)))
                                  (let ((result_1
                                         (let ((result_1
                                                (|#%app| pred_0 arg_0)))
                                           (values result_1))))
                                    (if (if (not
                                             (let ((x_0 (list arg_0)))
                                               (not result_1)))
                                          (if (not
                                               (let ((x_0 (list pred_0)))
                                                 (not result_1)))
                                            #t
                                            #f)
                                          #f)
                                      (for-loop_0 result_1 rest_0 rest_1)
                                      result_1))))))
                          result_0))))))
                 (for-loop_0 #t lst_2 lst_1))))))
        #f))))
(define ok-make-struct-type-property-super?
  (lambda (v_0 defns_0)
    (let ((or-part_0 (quoted? null? v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? 'null (correlated-e v_0))))
          (if or-part_1
            or-part_1
            (if (pair? (correlated-e v_0))
              (if (eq? (correlated-e (car (correlated-e v_0))) 'list)
                (if (let ((lst_0 (cdr (correlated->list v_0))))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (result_0 lst_1)
                              (begin
                                (if (pair? lst_1)
                                  (let ((prop+val_0 (unsafe-car lst_1)))
                                    (let ((rest_0 (unsafe-cdr lst_1)))
                                      (let ((result_1
                                             (let ((result_1
                                                    (if (=
                                                         (correlated-length
                                                          prop+val_0)
                                                         3)
                                                      (let ((prop+val_1
                                                             (correlated->list
                                                              prop+val_0)))
                                                        (if (eq?
                                                             'cons
                                                             (correlated-e
                                                              (car
                                                               prop+val_1)))
                                                          (if (let ((or-part_2
                                                                     (memq
                                                                      (correlated-e
                                                                       (list-ref
                                                                        prop+val_1
                                                                        1))
                                                                      '(prop:procedure
                                                                        prop:equal+hash))))
                                                                (if or-part_2
                                                                  or-part_2
                                                                  (let ((o_0
                                                                         (lookup-defn
                                                                          defns_0
                                                                          (correlated-e
                                                                           (list-ref
                                                                            prop+val_1
                                                                            1)))))
                                                                    (let ((or-part_3
                                                                           (known-property?
                                                                            o_0)))
                                                                      (if or-part_3
                                                                        or-part_3
                                                                        (known-property-of-function?
                                                                         o_0))))))
                                                            (not
                                                             (let ((temp128_0
                                                                    (list-ref
                                                                     prop+val_1
                                                                     2)))
                                                               (any-side-effects?.1
                                                                defns_0
                                                                hash2610
                                                                unsafe-undefined
                                                                temp128_0
                                                                1)))
                                                            #f)
                                                          #f))
                                                      #f)))
                                               (values result_1))))
                                        (if (if (not
                                                 (let ((x_0 (list prop+val_0)))
                                                   (not result_1)))
                                              #t
                                              #f)
                                          (for-loop_0 result_1 rest_0)
                                          result_1))))
                                  result_0))))))
                         (for-loop_0 #t lst_0))))
                  (let ((app_0 (sub1 (correlated-length v_0))))
                    (=
                     app_0
                     (let ((s_0
                            (let ((lst_0 (cdr (correlated->list v_0))))
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (table_0 lst_1)
                                      (begin
                                        (if (pair? lst_1)
                                          (let ((prop+val_0
                                                 (unsafe-car lst_1)))
                                            (let ((rest_0 (unsafe-cdr lst_1)))
                                              (let ((table_1
                                                     (let ((table_1
                                                            (call-with-values
                                                             (lambda ()
                                                               (values
                                                                (correlated-e
                                                                 (list-ref
                                                                  (correlated->list
                                                                   prop+val_0)
                                                                  1))
                                                                #t))
                                                             (case-lambda
                                                              ((key_0 val_0)
                                                               (hash-set
                                                                table_0
                                                                key_0
                                                                val_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args))))))
                                                       (values table_1))))
                                                (for-loop_0 table_1 rest_0))))
                                          table_0))))))
                                 (for-loop_0 hash2725 lst_0))))))
                       (begin-unsafe (hash-count s_0)))))
                  #f)
                #f)
              #f)))))))
(define ok-make-struct-type?
  (lambda (e_0 ready-variable?_0 defns_0)
    (let ((l_0 (correlated->list e_0)))
      (let ((init-field-count-expr_0
             (if (> (length l_0) 3) (list-ref l_0 3) #f)))
        (let ((auto-field-count-expr_0
               (if (> (length l_0) 4) (list-ref l_0 4) #f)))
          (let ((num-fields_0
                 (let ((app_0
                        (field-count-expr-to-field-count
                         init-field-count-expr_0)))
                   (maybe+
                    app_0
                    (field-count-expr-to-field-count
                     auto-field-count-expr_0)))))
            (let ((immutables-expr_0
                   (let ((or-part_0
                          (if (> (length l_0) 9) (list-ref l_0 9) #f)))
                     (if or-part_0 or-part_0 'null))))
              (let ((super-expr_0 (if (> (length l_0) 2) (list-ref l_0 2) #f)))
                (if (>= (length l_0) 5)
                  (if (<= (length l_0) 12)
                    (let ((lst_0 (cdr l_0)))
                      (let ((lst_1
                             (list
                              (lambda (v_0) (quoted? symbol? v_0))
                              (lambda (v_0) (super-ok? v_0 defns_0))
                              (lambda (v_0)
                                (field-count-expr-to-field-count v_0))
                              (lambda (v_0)
                                (field-count-expr-to-field-count v_0))
                              (lambda (v_0)
                                (not
                                 (any-side-effects?.1
                                  defns_0
                                  hash2610
                                  ready-variable?_0
                                  v_0
                                  1)))
                              (lambda (v_0)
                                (known-good-struct-properties?
                                 v_0
                                 immutables-expr_0
                                 super-expr_0
                                 defns_0))
                              (lambda (v_0) (inspector-or-false? v_0))
                              (lambda (v_0) (procedure-spec? v_0 num-fields_0))
                              (lambda (v_0)
                                (immutables-ok?
                                 v_0
                                 init-field-count-expr_0)))))
                        (let ((lst_2 lst_0))
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (result_0 lst_3 lst_4)
                                  (begin
                                    (if (if (pair? lst_3) (pair? lst_4) #f)
                                      (let ((arg_0 (unsafe-car lst_3)))
                                        (let ((rest_0 (unsafe-cdr lst_3)))
                                          (let ((pred_0 (unsafe-car lst_4)))
                                            (let ((rest_1 (unsafe-cdr lst_4)))
                                              (let ((result_1
                                                     (let ((result_1
                                                            (|#%app|
                                                             pred_0
                                                             arg_0)))
                                                       (values result_1))))
                                                (if (if (not
                                                         (let ((x_0
                                                                (list arg_0)))
                                                           (not result_1)))
                                                      (if (not
                                                           (let ((x_0
                                                                  (list
                                                                   pred_0)))
                                                             (not result_1)))
                                                        #t
                                                        #f)
                                                      #f)
                                                  (for-loop_0
                                                   result_1
                                                   rest_0
                                                   rest_1)
                                                  result_1))))))
                                      result_0))))))
                             (for-loop_0 #t lst_2 lst_1))))))
                    #f)
                  #f)))))))))
(define super-ok?
  (lambda (e_0 defns_0)
    (let ((or-part_0 (quoted? false? e_0)))
      (if or-part_0
        or-part_0
        (let ((o_0 (lookup-defn defns_0 (correlated-e e_0))))
          (if o_0
            (if (known-struct-op? o_0)
              (eq? 'struct-type (known-struct-op-type o_0))
              #f)
            #f))))))
(define extract-struct-field-count-lower-bound
  (lambda (e_0)
    (let ((l_0 (correlated->list e_0)))
      (let ((app_0 (field-count-expr-to-field-count (list-ref l_0 3))))
        (+ app_0 (field-count-expr-to-field-count (list-ref l_0 4)))))))
(define quoted?
  (lambda (val?_0 v_0)
    (let ((or-part_0
           (if (pair? (correlated-e v_0))
             (if (eq? (correlated-e (car (correlated-e v_0))) 'quote)
               (|#%app| val?_0 (correlated-e (correlated-cadr v_0)))
               #f)
             #f)))
      (if or-part_0 or-part_0 (|#%app| val?_0 (correlated-e v_0))))))
(define quoted-value
  (lambda (v_0)
    (if (pair? (correlated-e v_0))
      (correlated-e (correlated-cadr v_0))
      (correlated-e v_0))))
(define false? (lambda (v_0) (eq? (correlated-e v_0) #f)))
(define field-count-expr-to-field-count
  (lambda (v_0)
    (if (quoted? exact-nonnegative-integer? v_0) (quoted-value v_0) #f)))
(define inspector-or-false?
  (lambda (v_0)
    (let ((or-part_0 (quoted? false? v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1
               (if (quoted? symbol? v_0) (eq? 'prefab (quoted-value v_0)) #f)))
          (if or-part_1
            or-part_1
            (if (= 1 (correlated-length v_0))
              (eq? 'current-inspector (correlated-e (car (correlated-e v_0))))
              #f)))))))
(define known-good-struct-properties?
  (lambda (v_0 immutables-expr_0 super-expr_0 defns_0)
    (let ((or-part_0 (quoted? null? v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? 'null (correlated-e v_0))))
          (if or-part_1
            or-part_1
            (if (pair? (correlated-e v_0))
              (if (eq? (correlated-e (car (correlated-e v_0))) 'list)
                (if (let ((lst_0 (cdr (correlated->list v_0))))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (result_0 lst_1)
                              (begin
                                (if (pair? lst_1)
                                  (let ((prop+val_0 (unsafe-car lst_1)))
                                    (let ((rest_0 (unsafe-cdr lst_1)))
                                      (let ((result_1
                                             (let ((result_1
                                                    (if (=
                                                         (correlated-length
                                                          prop+val_0)
                                                         3)
                                                      (let ((prop+val_1
                                                             (correlated->list
                                                              prop+val_0)))
                                                        (if (eq?
                                                             'cons
                                                             (correlated-e
                                                              (car
                                                               prop+val_1)))
                                                          (let ((app_0
                                                                 (list-ref
                                                                  prop+val_1
                                                                  1)))
                                                            (known-good-struct-property+value?
                                                             app_0
                                                             (list-ref
                                                              prop+val_1
                                                              2)
                                                             immutables-expr_0
                                                             super-expr_0
                                                             defns_0))
                                                          #f))
                                                      #f)))
                                               (values result_1))))
                                        (if (if (not
                                                 (let ((x_0 (list prop+val_0)))
                                                   (not result_1)))
                                              #t
                                              #f)
                                          (for-loop_0 result_1 rest_0)
                                          result_1))))
                                  result_0))))))
                         (for-loop_0 #t lst_0))))
                  (let ((app_0 (sub1 (correlated-length v_0))))
                    (=
                     app_0
                     (let ((s_0
                            (let ((lst_0 (cdr (correlated->list v_0))))
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (table_0 lst_1)
                                      (begin
                                        (if (pair? lst_1)
                                          (let ((prop+val_0
                                                 (unsafe-car lst_1)))
                                            (let ((rest_0 (unsafe-cdr lst_1)))
                                              (let ((table_1
                                                     (let ((table_1
                                                            (call-with-values
                                                             (lambda ()
                                                               (values
                                                                (correlated-e
                                                                 (list-ref
                                                                  (correlated->list
                                                                   prop+val_0)
                                                                  1))
                                                                #t))
                                                             (case-lambda
                                                              ((key_0 val_0)
                                                               (hash-set
                                                                table_0
                                                                key_0
                                                                val_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args))))))
                                                       (values table_1))))
                                                (for-loop_0 table_1 rest_0))))
                                          table_0))))))
                                 (for-loop_0 hash2725 lst_0))))))
                       (begin-unsafe (hash-count s_0)))))
                  #f)
                #f)
              #f)))))))
(define known-good-struct-property+value?
  (lambda (prop-expr_0 val-expr_0 immutables-expr_0 super-expr_0 defns_0)
    (let ((prop-name_0 (correlated-e prop-expr_0)))
      (if (eq? prop-name_0 'prop:evt)
        (let ((or-part_0 (is-lambda? val-expr_0 1 defns_0)))
          (if or-part_0
            or-part_0
            (immutable-field? val-expr_0 immutables-expr_0)))
        (if (eq? prop-name_0 'prop:procedure)
          (let ((or-part_0 (is-lambda? val-expr_0 1 defns_0)))
            (if or-part_0
              or-part_0
              (immutable-field? val-expr_0 immutables-expr_0)))
          (if (eq? prop-name_0 'prop:equal+hash)
            (let ((l_0 (correlated->list val-expr_0)))
              (if (eq? 'list (car l_0))
                (if (is-lambda? (list-ref l_0 1) 3 defns_0)
                  (if (is-lambda? (list-ref l_0 2) 2 defns_0)
                    (is-lambda? (list-ref l_0 3) 2 defns_0)
                    #f)
                  #f)
                #f))
            (if (eq? prop-name_0 'prop:checked-procedure)
              (if (quoted? false? super-expr_0)
                (immutable-field? 1 immutables-expr_0)
                #f)
              (if (eq? prop-name_0 'prop:object-name)
                (immutable-field? val-expr_0 immutables-expr_0)
                (let ((o_0 (lookup-defn defns_0 prop-name_0)))
                  (if (known-property? o_0)
                    (not
                     (any-side-effects?.1
                      defns_0
                      hash2610
                      unsafe-undefined
                      val-expr_0
                      1))
                    (if (known-property-of-function? o_0)
                      (is-lambda?
                       val-expr_0
                       (known-property-of-function-arity o_0)
                       defns_0)
                      #f)))))))))))
(define is-lambda?
  (lambda (expr_0 arity_0 defns_0)
    (let ((lookup_0 (lookup-defn defns_0 expr_0)))
      (let ((or-part_0
             (if lookup_0
               (if (known-function? lookup_0)
                 (let ((or-part_0 (not arity_0)))
                   (if or-part_0
                     or-part_0
                     (arity-includes?
                      (known-function-arity lookup_0)
                      arity_0)))
                 #f)
               #f)))
        (if or-part_0
          or-part_0
          (let ((or-part_1
                 (if (pair? (correlated-e expr_0))
                   (if (eq? 'case-lambda (car (correlated-e expr_0)))
                     (not arity_0)
                     #f)
                   #f)))
            (if or-part_1
              or-part_1
              (if (pair? (correlated-e expr_0))
                (if (eq? 'lambda (car (correlated-e expr_0)))
                  (let ((or-part_2 (not arity_0)))
                    (if or-part_2
                      or-part_2
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (args_0 arity_1)
                            (begin
                              (if (begin-unsafe (syntax? args_0))
                                (loop_0 (correlated-e args_0) arity_1)
                                (if (null? args_0)
                                  (zero? arity_1)
                                  (if (pair? args_0)
                                    (let ((app_0 (cdr args_0)))
                                      (loop_0 app_0 (sub1 arity_1)))
                                    (not (negative? arity_1))))))))))
                       (loop_0 (cadr (correlated->list expr_0)) arity_0))))
                  #f)
                #f))))))))
(define arity-includes?
  (lambda (a_0 n_0)
    (let ((or-part_0 (equal? a_0 n_0)))
      (if or-part_0
        or-part_0
        (if (list? a_0)
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (result_0 lst_0)
                  (begin
                    (if (pair? lst_0)
                      (let ((a_1 (unsafe-car lst_0)))
                        (let ((rest_0 (unsafe-cdr lst_0)))
                          (let ((result_1
                                 (let ((result_1 (equal? a_1 n_0)))
                                   (values result_1))))
                            (if (if (not (let ((x_0 (list a_1))) result_1))
                                  #t
                                  #f)
                              (for-loop_0 result_1 rest_0)
                              result_1))))
                      result_0))))))
             (for-loop_0 #f a_0)))
          #f)))))
(define immutable-field?
  (lambda (val-expr_0 immutables-expr_0)
    (if (quoted? exact-nonnegative-integer? val-expr_0)
      (let ((app_0 (quoted-value val-expr_0)))
        (memv app_0 (immutables-expr-to-immutables immutables-expr_0 null)))
      #f)))
(define immutables-expr-to-immutables
  (lambda (e_0 fail-v_0)
    (let ((tmp_0
           (if (pair? (correlated-e e_0))
             (correlated-e (car (correlated-e e_0)))
             #f)))
      (if (eq? tmp_0 'quote)
        (let ((v_0 (correlated-cadr e_0)))
          (let ((or-part_0
                 (if (correlated-length v_0)
                   (let ((l_0 (map_1346 correlated-e (correlated->list v_0))))
                     (if (andmap_2344 exact-nonnegative-integer? l_0)
                       (if (let ((app_0 (length l_0)))
                             (=
                              app_0
                              (let ((s_0 (list->set l_0)))
                                (begin-unsafe (hash-count s_0)))))
                         l_0
                         #f)
                       #f))
                   #f)))
            (if or-part_0 or-part_0 fail-v_0)))
        fail-v_0))))
(define procedure-spec?
  (lambda (e_0 field-count_0)
    (let ((or-part_0 (quoted? false? e_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1
               (if (quoted? exact-nonnegative-integer? e_0)
                 (if field-count_0 (< (quoted-value e_0) field-count_0) #f)
                 #f)))
          (if or-part_1 or-part_1 (is-lambda? e_0 #f hash2610)))))))
(define immutables-ok?
  (lambda (e_0 init-field-count-expr_0)
    (let ((l_0 (immutables-expr-to-immutables e_0 #f)))
      (let ((c_0 (field-count-expr-to-field-count init-field-count-expr_0)))
        (if l_0
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (result_0 lst_0)
                  (begin
                    (if (pair? lst_0)
                      (let ((n_0 (unsafe-car lst_0)))
                        (let ((rest_0 (unsafe-cdr lst_0)))
                          (let ((result_1
                                 (let ((result_1 (< n_0 c_0)))
                                   (values result_1))))
                            (if (if (not
                                     (let ((x_0 (list n_0))) (not result_1)))
                                  #t
                                  #f)
                              (for-loop_0 result_1 rest_0)
                              result_1))))
                      result_0))))))
             (for-loop_0 #t l_0)))
          #f)))))
(define ok-make-struct-field-accessor/mutator?
  (lambda (e_0 locals_0 type_0 defns_0)
    (let ((l_0 (correlated->list e_0)))
      (let ((len_0 (length l_0)))
        (let ((a_0
               (if (<= 3 len_0 6)
                 (let ((or-part_0
                        (hash-ref
                         locals_0
                         (correlated-e (list-ref l_0 1))
                         #f)))
                   (if or-part_0
                     or-part_0
                     (lookup-defn defns_0 (correlated-e (list-ref l_0 1)))))
                 #f)))
          (if (known-struct-op? a_0)
            (if (eq? (known-struct-op-type a_0) type_0)
              (if (let ((c_0
                         (field-count-expr-to-field-count (list-ref l_0 2))))
                    (if c_0 (< c_0 (known-struct-op-field-count a_0)) #f))
                (if (let ((or-part_0 (< len_0 4)))
                      (if or-part_0
                        or-part_0
                        (quoted? symbol? (list-ref l_0 3))))
                  (if (let ((or-part_0 (< len_0 5)))
                        (if or-part_0
                          or-part_0
                          (quoted?
                           (lambda (x_0)
                             (let ((or-part_1 (not x_0)))
                               (if or-part_1
                                 or-part_1
                                 (let ((or-part_2 (string? x_0)))
                                   (if or-part_2 or-part_2 (symbol? x_0))))))
                           (list-ref l_0 4))))
                    (let ((or-part_0 (< len_0 6)))
                      (if or-part_0
                        or-part_0
                        (quoted? symbol? (list-ref l_0 5))))
                    #f)
                  #f)
                #f)
              #f)
            #f))))))
(define maybe+ (lambda (x_0 y_0) (if x_0 (if y_0 (+ x_0 y_0) #f) #f)))
(define compile-single
  (lambda (p_0 cctx_0) (compile-top.1 #f #t #f p_0 cctx_0)))
(define compile-top.1
  (|#%name|
   compile-top
   (lambda (serializable?1_0
            single-expression?2_0
            to-correlated-linklet?3_0
            p7_0
            cctx8_0)
     (begin
       (begin
         (if log-performance?
           (start-performance-region
            'compile
            (if single-expression?2_0 'transformer 'top))
           (void))
         (begin0
           (let ((phase_0 (compile-context-phase cctx8_0)))
             (let ((mpis_0 (make-module-path-index-table)))
               (let ((purely-functional?_0 #t))
                 (call-with-values
                  (lambda ()
                    (let ((temp14_0 (flatten-begin p7_0)))
                      (let ((temp17_0
                             (if single-expression?2_0
                               (list* '() (list syntax-literals-id) '(()))
                               (list
                                (list top-level-bind!-id top-level-require!-id)
                                (list mpi-vector-id syntax-literals-id)
                                instance-imports))))
                        (let ((temp18_0
                               (list
                                top-level-instance
                                empty-top-syntax-literal-instance
                                empty-instance-instance)))
                          (let ((temp21_0
                                 (lambda () (set! purely-functional?_0 #f))))
                            (let ((temp22_0
                                   (lambda (e_0
                                            expected-results_0
                                            phase_1
                                            required-reference?_0)
                                     (if (if purely-functional?_0
                                           (any-side-effects?.1
                                            hash2610
                                            hash2610
                                            required-reference?_0
                                            e_0
                                            expected-results_0)
                                           #f)
                                       (set! purely-functional?_0 #f)
                                       (void)))))
                              (let ((temp23_0
                                     (lambda (s_0 cctx_0)
                                       (begin
                                         (set! purely-functional?_0 #f)
                                         (compile-top-level-require
                                          s_0
                                          cctx_0)))))
                                (let ((temp24_0 (not single-expression?2_0)))
                                  (let ((temp23_1 temp23_0)
                                        (temp22_1 temp22_0)
                                        (temp21_1 temp21_0)
                                        (temp18_1 temp18_0)
                                        (temp17_1 temp17_0)
                                        (temp14_1 temp14_0))
                                    (compile-forms.1
                                     temp18_1
                                     temp17_1
                                     null
                                     temp22_1
                                     temp21_1
                                     #f
                                     null
                                     unsafe-undefined
                                     #f
                                     temp24_0
                                     temp23_1
                                     unsafe-undefined
                                     #f
                                     serializable?1_0
                                     to-correlated-linklet?3_0
                                     #f
                                     temp14_1
                                     cctx8_0
                                     mpis_0))))))))))
                  (case-lambda
                   ((body-linklets_0
                     min-phase_0
                     max-phase_0
                     phase-to-link-module-uses_0
                     phase-to-link-module-uses-expr_0
                     phase-to-link-extra-inspectorss_0
                     syntax-literals_0
                     no-root-context-pos_0)
                    (let ((add-metadata_0
                           (|#%name|
                            add-metadata
                            (lambda (ht_0)
                              (begin
                                (let ((ht_1
                                       (hash-set
                                        ht_0
                                        'original-phase
                                        phase_0)))
                                  (let ((ht_2
                                         (hash-set
                                          ht_1
                                          'max-phase
                                          max-phase_0)))
                                    ht_2)))))))
                      (let ((bundle_0
                             (1/hash->linklet-bundle
                              (add-metadata_0
                               (if serializable?1_0
                                 (let ((syntax-literals-expr_0
                                        (begin
                                          (if log-performance?
                                            (start-performance-region
                                             'compile
                                             'top
                                             'serialize)
                                            (void))
                                          (begin0
                                            (generate-eager-syntax-literals!
                                             syntax-literals_0
                                             mpis_0
                                             phase_0
                                             (compile-context-self cctx8_0)
                                             (compile-context-namespace
                                              cctx8_0))
                                            (if log-performance?
                                              (end-performance-region)
                                              (void))))))
                                   (let ((app_0
                                          (list
                                           deserialize-imports
                                           eager-instance-imports)))
                                     (let ((link-linklet_0
                                            (let ((s_0
                                                   (let ((app_1
                                                          (list
                                                           mpi-vector-id
                                                           deserialized-syntax-vector-id
                                                           'phase-to-link-modules
                                                           syntax-literals-id)))
                                                     (let ((app_2
                                                            (let ((app_2
                                                                   (list
                                                                    mpi-vector-id)))
                                                              (list
                                                               'define-values
                                                               app_2
                                                               (generate-module-path-index-deserialize.1
                                                                #f
                                                                mpis_0)))))
                                                       (let ((app_3
                                                              (let ((app_3
                                                                     (list
                                                                      deserialized-syntax-vector-id)))
                                                                (list
                                                                 'define-values
                                                                 app_3
                                                                 (list*
                                                                  'make-vector
                                                                  (add1
                                                                   phase_0)
                                                                  '(#f))))))
                                                         (list
                                                          'linklet
                                                          app_0
                                                          app_1
                                                          app_2
                                                          app_3
                                                          (list
                                                           'define-values
                                                           '(phase-to-link-modules)
                                                           phase-to-link-module-uses-expr_0)
                                                          (list
                                                           'define-values
                                                           (list
                                                            syntax-literals-id)
                                                           syntax-literals-expr_0)))))))
                                              (if to-correlated-linklet?3_0
                                                (begin-unsafe
                                                 (correlated-linklet1.1
                                                  s_0
                                                  #f
                                                  #f))
                                                (begin
                                                  (if log-performance?
                                                    (start-performance-region
                                                     'compile
                                                     'top
                                                     'linklet)
                                                    (void))
                                                  (begin0
                                                    (call-with-values
                                                     (lambda ()
                                                       (compile-linklet
                                                        s_0
                                                        #f
                                                        (vector
                                                         deserialize-instance
                                                         empty-eager-instance-instance)
                                                        (lambda (inst_0)
                                                          (values inst_0 #f))))
                                                     (case-lambda
                                                      ((linklet_0 new-keys_0)
                                                       linklet_0)
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args))))
                                                    (if log-performance?
                                                      (end-performance-region)
                                                      (void))))))))
                                       (hash-set
                                        body-linklets_0
                                        'link
                                        link-linklet_0))))
                                 body-linklets_0)))))
                        (let ((app_0
                               (1/hash->linklet-directory
                                (hasheq #f bundle_0))))
                          (let ((app_1 (current-code-inspector)))
                            (let ((app_2 (mpis-as-vector mpis_0)))
                              (let ((app_3
                                     (syntax-literals-as-vector
                                      syntax-literals_0)))
                                (let ((app_4
                                       (extract-namespace-scopes
                                        (compile-context-namespace cctx8_0))))
                                  (compiled-in-memory1.1
                                   app_0
                                   #f
                                   #f
                                   #f
                                   #f
                                   phase-to-link-module-uses_0
                                   app_1
                                   phase-to-link-extra-inspectorss_0
                                   hash2589
                                   app_2
                                   app_3
                                   null
                                   null
                                   app_4
                                   purely-functional?_0)))))))))
                   (args (raise-binding-result-arity-error 8 args)))))))
           (if log-performance? (end-performance-region) (void))))))))
(define compile-top-level-require
  (lambda (p_0 cctx_0)
    (let ((phase_0 (compile-context-phase cctx_0)))
      (if (parsed-require? p_0)
        (let ((form-stx_0 (compile-quote-syntax (parsed-s p_0) cctx_0)))
          (list
           top-level-require!-id
           form-stx_0
           ns-id
           (list 'quote (parsed-require-portal-syms p_0))))
        #f))))
(define flatten-begin
  (lambda (p_0)
    (if (parsed-begin? p_0)
      (apply append (map_1346 flatten-begin (parsed-begin-body p_0)))
      (list p_0))))
(define core-scope (new-multi-scope))
(define core-stx (add-scope empty-syntax core-scope))
(define core-module-name (1/make-resolved-module-path '|#%core|))
(define core-mpi (1/module-path-index-join ''|#%core| #f))
(define cell.1$4 (unsafe-make-place-local (make-hasheq)))
(define cell.2$1 (unsafe-make-place-local (make-hasheq)))
(define core-place-init!
  (lambda ()
    (begin
      (unsafe-place-local-set! cell.1$4 (make-hasheq))
      (unsafe-place-local-set! cell.2$1 (make-hasheq)))))
(define core-id
  (lambda (sym_0 phase_0)
    (if (eqv? phase_0 0)
      (let ((or-part_0 (hash-ref (unsafe-place-local-ref cell.1$4) sym_0 #f)))
        (if or-part_0
          or-part_0
          (let ((s_0 (datum->syntax$1 core-stx sym_0)))
            (begin
              (hash-set! (unsafe-place-local-ref cell.1$4) sym_0 s_0)
              s_0))))
      (if (eq? phase_0 1)
        (let ((or-part_0
               (hash-ref (unsafe-place-local-ref cell.2$1) sym_0 #f)))
          (if or-part_0
            or-part_0
            (let ((s_0
                   (datum->syntax$1
                    (syntax-shift-phase-level$1 core-stx 1)
                    sym_0)))
              (begin
                (hash-set! (unsafe-place-local-ref cell.2$1) sym_0 s_0)
                s_0))))
        (datum->syntax$1
         (syntax-shift-phase-level$1 core-stx phase_0)
         sym_0)))))
(define core-forms hash2610)
(define core-primitives hash2610)
(define finish_2981
  (make-struct-type-install-properties
   '(protected-core)
   1
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'protected-core))
(define struct:protected-core
  (make-record-type-descriptor
   'protected-core
   #f
   (|#%nongenerative-uid| protected-core)
   #f
   #f
   '(1 . 0)))
(define effect_3023 (finish_2981 struct:protected-core))
(define protected-core1.1
  (|#%name|
   protected-core
   (record-constructor
    (make-record-constructor-descriptor struct:protected-core #f #f))))
(define protected-core?
  (|#%name| protected-core? (record-predicate struct:protected-core)))
(define protected-core-val
  (|#%name| protected-core-val (record-accessor struct:protected-core 0)))
(define add-core-form!*
  (lambda (sym_0 proc_0)
    (begin
      (add-core-binding! sym_0)
      (set! core-forms (hash-set core-forms sym_0 proc_0)))))
(define add-core-primitive!.1
  (|#%name|
   add-core-primitive!
   (lambda (protected?2_0 sym4_0 val5_0)
     (begin
       (begin
         (add-core-binding! sym4_0)
         (set! core-primitives
           (let ((app_0 core-primitives))
             (hash-set
              app_0
              sym4_0
              (if protected?2_0 (protected-core1.1 val5_0) val5_0)))))))))
(define add-core-binding!
  (lambda (sym_0)
    (let ((temp8_0 (datum->syntax$1 core-stx sym_0)))
      (let ((temp9_0
             (make-module-binding.1
              #f
              null
              #f
              #f
              unsafe-undefined
              unsafe-undefined
              0
              unsafe-undefined
              core-mpi
              0
              sym_0)))
        (let ((temp8_1 temp8_0)) (add-binding!.1 #f #f temp8_1 temp9_0 0))))))
(define declare-core-module!
  (lambda (ns_0)
    (let ((temp15_0
           (let ((temp20_0
                  (hasheqv
                   0
                   (let ((lst_0
                          (let ((app_0 core-primitives))
                            (list app_0 core-forms))))
                     (let ((lst_1 '(#f #t)))
                       (let ((lst_2 lst_0))
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (table_0 lst_3 lst_4)
                                 (begin
                                   (if (if (pair? lst_3) (pair? lst_4) #f)
                                     (let ((syms_0 (unsafe-car lst_3)))
                                       (let ((rest_0 (unsafe-cdr lst_3)))
                                         (let ((syntax?_0 (unsafe-car lst_4)))
                                           (let ((rest_1 (unsafe-cdr lst_4)))
                                             (let ((table_1
                                                    (begin
                                                      (letrec*
                                                       ((for-loop_1
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (table_1 i_0)
                                                            (begin
                                                              (if i_0
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (hash-iterate-key+value
                                                                    syms_0
                                                                    i_0))
                                                                 (case-lambda
                                                                  ((sym_0
                                                                    val_0)
                                                                   (let ((table_2
                                                                          (let ((table_2
                                                                                 (call-with-values
                                                                                  (lambda ()
                                                                                    (let ((b_0
                                                                                           (make-module-binding.1
                                                                                            #f
                                                                                            null
                                                                                            #f
                                                                                            #f
                                                                                            unsafe-undefined
                                                                                            unsafe-undefined
                                                                                            0
                                                                                            unsafe-undefined
                                                                                            core-mpi
                                                                                            0
                                                                                            sym_0)))
                                                                                      (values
                                                                                       sym_0
                                                                                       (if syntax?_0
                                                                                         (provided1.1
                                                                                          b_0
                                                                                          #f
                                                                                          #t)
                                                                                         (if (protected-core?
                                                                                              val_0)
                                                                                           (provided1.1
                                                                                            b_0
                                                                                            #t
                                                                                            #f)
                                                                                           b_0)))))
                                                                                  (case-lambda
                                                                                   ((key_0
                                                                                     val_1)
                                                                                    (hash-set
                                                                                     table_1
                                                                                     key_0
                                                                                     val_1))
                                                                                   (args
                                                                                    (raise-binding-result-arity-error
                                                                                     2
                                                                                     args))))))
                                                                            (values
                                                                             table_2))))
                                                                     (for-loop_1
                                                                      table_2
                                                                      (hash-iterate-next
                                                                       syms_0
                                                                       i_0))))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args))))
                                                                table_1))))))
                                                       (for-loop_1
                                                        table_0
                                                        (hash-iterate-first
                                                         syms_0))))))
                                               (for-loop_0
                                                table_1
                                                rest_0
                                                rest_1))))))
                                     table_0))))))
                            (for-loop_0 hash2610 lst_2 lst_1)))))))))
             (let ((temp21_0
                    (lambda (phase-level_0 ns_1 insp_0)
                      (if (zero? phase-level_0)
                        (let ((ns_2
                               (namespace->module-namespace.1
                                #f
                                #f
                                void
                                ns_1
                                core-module-name
                                0)))
                          (if ns_2
                            (module-linklet-info2.1
                             (begin-unsafe
                              (definitions-variables
                               (namespace->definitions ns_2 0)))
                             #f
                             core-mpi
                             #f
                             #f
                             #f)
                            #f))
                        #f))))
               (let ((temp22_0
                      (lambda (data-box_0
                               ns_1
                               phase_0
                               phase-level_0
                               self_0
                               bulk-binding-registry_0
                               insp_0)
                        (if (eq? phase-level_0 0)
                          (begin
                            (let ((ht_0 core-primitives))
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (i_0)
                                      (begin
                                        (if i_0
                                          (call-with-values
                                           (lambda ()
                                             (hash-iterate-key+value ht_0 i_0))
                                           (case-lambda
                                            ((sym_0 val_0)
                                             (begin
                                               (namespace-set-consistent!
                                                ns_1
                                                0
                                                sym_0
                                                (if (protected-core? val_0)
                                                  (protected-core-val val_0)
                                                  val_0))
                                               (for-loop_0
                                                (hash-iterate-next ht_0 i_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (values)))))))
                                 (for-loop_0 (hash-iterate-first ht_0)))))
                            (void)
                            (let ((ht_0 core-forms))
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (i_0)
                                      (begin
                                        (if i_0
                                          (call-with-values
                                           (lambda ()
                                             (hash-iterate-key+value ht_0 i_0))
                                           (case-lambda
                                            ((sym_0 proc_0)
                                             (begin
                                               (namespace-set-transformer!
                                                ns_1
                                                0
                                                sym_0
                                                (if (procedure-arity-includes?
                                                     proc_0
                                                     2)
                                                  (core-form7.1 proc_0 sym_0)
                                                  proc_0))
                                               (for-loop_0
                                                (hash-iterate-next ht_0 i_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (values)))))))
                                 (for-loop_0 (hash-iterate-first ht_0)))))
                            (void))
                          (void)))))
                 (let ((temp21_1 temp21_0) (temp20_1 temp20_0))
                   (make-module.1
                    #t
                    void
                    unsafe-undefined
                    unsafe-undefined
                    temp22_0
                    #f
                    0
                    0
                    #f
                    temp21_1
                    #t
                    void
                    #f
                    temp20_1
                    'racket
                    unsafe-undefined
                    null
                    core-mpi
                    #f
                    null
                    #f)))))))
      (declare-module!.1 #t ns_0 temp15_0 core-module-name))))
(define core-form-sym
  (lambda (s_0 phase_0)
    (call-with-values
     (lambda ()
       (if (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
             (if (pair? s_1)
               (if (let ((s_2 (car s_1)))
                     (let ((or-part_0
                            (if (syntax?$1 s_2)
                              (symbol? (syntax-e$1 s_2))
                              #f)))
                       (if or-part_0 or-part_0 (symbol? s_2))))
                 (let ((s_2 (cdr s_1))) #t)
                 #f)
               #f))
         (call-with-values
          (lambda ()
            (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
              (let ((id31_0 (let ((s_2 (car s_1))) s_2)))
                (let ((_0 (let ((s_2 (cdr s_1))) s_2)))
                  (let ((id31_1 id31_0)) (values id31_1 _0))))))
          (case-lambda
           ((id29_0 _0) (values #t id29_0 _0))
           (args (raise-binding-result-arity-error 2 args))))
         (values #f #f #f)))
     (case-lambda
      ((ok?_0 id29_0 _0)
       (if ok?_0
         (let ((b_0
                (resolve+shift.1
                 #f
                 #f
                 null
                 unsafe-undefined
                 #f
                 id29_0
                 phase_0)))
           (if (module-binding? b_0)
             (if (eq?
                  core-module-name
                  (1/module-path-index-resolve (module-binding-module b_0)))
               (module-binding-sym b_0)
               #f)
             #f))
         #f))
      (args (raise-binding-result-arity-error 3 args))))))
(define select-defined-syms-and-bind!.1
  (|#%name|
   select-defined-syms-and-bind!
   (lambda (as-transformer?5_0
            frame-id1_0
            in4_0
            requires+provides3_0
            top-level-bind-scope2_0
            ids11_0
            defined-syms12_0
            self13_0
            phase14_0
            all-scopes-stx15_0)
     (begin
       (let ((defined-syms-at-phase_0
              (let ((or-part_0 (hash-ref defined-syms12_0 phase14_0 #f)))
                (if or-part_0
                  or-part_0
                  (let ((ht_0 (make-hasheq)))
                    (begin
                      (hash-set! defined-syms12_0 phase14_0 ht_0)
                      ht_0))))))
         (reverse$1
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (fold-var_0 lst_0)
                  (begin
                    (if (pair? lst_0)
                      (let ((id_0 (unsafe-car lst_0)))
                        (let ((rest_0 (unsafe-cdr lst_0)))
                          (let ((fold-var_1
                                 (let ((fold-var_1
                                        (cons
                                         (let ((sym_0 (syntax-e$1 id_0)))
                                           (let ((defined-sym_0
                                                  (if (if (not
                                                           (defined-as-other?
                                                            (hash-ref
                                                             defined-syms-at-phase_0
                                                             sym_0
                                                             #f)
                                                            id_0
                                                            phase14_0
                                                            top-level-bind-scope2_0))
                                                        (if (no-extra-scopes?
                                                             id_0
                                                             all-scopes-stx15_0
                                                             top-level-bind-scope2_0
                                                             phase14_0)
                                                          (symbol-interned?
                                                           sym_0)
                                                          #f)
                                                        #f)
                                                    sym_0
                                                    (begin
                                                      (check-non-simple-due-to-interned-scope
                                                       id_0
                                                       requires+provides3_0)
                                                      (letrec*
                                                       ((loop_0
                                                         (|#%name|
                                                          loop
                                                          (lambda (pos_0)
                                                            (begin
                                                              (let ((s_0
                                                                     (string->unreadable-symbol
                                                                      (let ((app_0
                                                                             (symbol->string
                                                                              sym_0)))
                                                                        (string-append
                                                                         app_0
                                                                         "."
                                                                         (number->string
                                                                          pos_0))))))
                                                                (if (defined-as-other?
                                                                     (hash-ref
                                                                      defined-syms-at-phase_0
                                                                      s_0
                                                                      #f)
                                                                     id_0
                                                                     phase14_0
                                                                     top-level-bind-scope2_0)
                                                                  (loop_0
                                                                   (add1
                                                                    pos_0))
                                                                  s_0)))))))
                                                       (loop_0 1))))))
                                             (begin
                                               (hash-set!
                                                defined-syms-at-phase_0
                                                defined-sym_0
                                                id_0)
                                               (let ((b_0
                                                      (make-module-binding.1
                                                       #f
                                                       null
                                                       frame-id1_0
                                                       #f
                                                       unsafe-undefined
                                                       unsafe-undefined
                                                       0
                                                       sym_0
                                                       self13_0
                                                       phase14_0
                                                       defined-sym_0)))
                                                 (begin
                                                   (if requires+provides3_0
                                                     (remove-required-id!
                                                      requires+provides3_0
                                                      id_0
                                                      phase14_0)
                                                     (void))
                                                   (add-binding!.1
                                                    in4_0
                                                    #f
                                                    id_0
                                                    b_0
                                                    phase14_0)
                                                   (if requires+provides3_0
                                                     (add-defined-or-required-id!.1
                                                      as-transformer?5_0
                                                      #f
                                                      requires+provides3_0
                                                      id_0
                                                      phase14_0
                                                      b_0)
                                                     (void))
                                                   defined-sym_0)))))
                                         fold-var_0)))
                                   (values fold-var_1))))
                            (for-loop_0 fold-var_1 rest_0))))
                      fold-var_0))))))
             (for-loop_0 null ids11_0)))))))))
(define no-extra-scopes?
  (lambda (id_0 all-scopes-stx_0 top-level-bind-scope_0 phase_0)
    (let ((m-id_0 (datum->syntax$1 all-scopes-stx_0 (syntax-e$1 id_0))))
      (let ((or-part_0 (bound-identifier=?$1 id_0 m-id_0 phase_0)))
        (if or-part_0
          or-part_0
          (if top-level-bind-scope_0
            (bound-identifier=?$1
             id_0
             (add-scope m-id_0 top-level-bind-scope_0)
             phase_0)
            #f))))))
(define defined-as-other?
  (lambda (prev-id_0 id_0 phase_0 top-level-bind-scope_0)
    (if prev-id_0
      (if (not (bound-identifier=?$1 prev-id_0 id_0 phase_0))
        (let ((or-part_0 (not top-level-bind-scope_0)))
          (if or-part_0
            or-part_0
            (not
             (let ((app_0 (remove-scope prev-id_0 top-level-bind-scope_0)))
               (bound-identifier=?$1
                app_0
                (remove-scope id_0 top-level-bind-scope_0)
                phase_0)))))
        #f)
      #f)))
(define check-non-simple-due-to-interned-scope
  (lambda (id_0 r+p_0)
    (if (if r+p_0
          (if (requires+provides-all-bindings-simple? r+p_0)
            (syntax-has-interned-scope? id_0)
            #f)
          #f)
      (set-requires+provides-all-bindings-simple?! r+p_0 #f)
      (void))))
(define select-defined-syms-and-bind!/ctx
  (lambda (tl-ids_0 ctx_0)
    (let ((temp32_0
           (begin-unsafe
            (root-expand-context/inner-defined-syms
             (root-expand-context/outer-inner ctx_0)))))
      (let ((temp33_0
             (begin-unsafe
              (root-expand-context/inner-self-mpi
               (root-expand-context/outer-inner ctx_0)))))
        (let ((temp34_0
               (begin-unsafe
                (expand-context/inner-phase
                 (root-expand-context/outer-inner ctx_0)))))
          (let ((temp35_0
                 (begin-unsafe
                  (root-expand-context/inner-all-scopes-stx
                   (root-expand-context/outer-inner ctx_0)))))
            (let ((temp36_0
                   (begin-unsafe (root-expand-context/outer-frame-id ctx_0))))
              (let ((temp37_0
                     (begin-unsafe
                      (root-expand-context/inner-top-level-bind-scope
                       (root-expand-context/outer-inner ctx_0)))))
                (select-defined-syms-and-bind!.1
                 #f
                 temp36_0
                 #f
                 #f
                 temp37_0
                 tl-ids_0
                 temp32_0
                 temp33_0
                 temp34_0
                 temp35_0)))))))))
(define add-defined-sym!
  (lambda (defined-syms_0 phase_0 sym_0 id_0)
    (let ((defined-syms-at-phase_0
           (let ((or-part_0 (hash-ref defined-syms_0 phase_0 #f)))
             (if or-part_0
               or-part_0
               (let ((ht_0 (make-hasheq)))
                 (begin (hash-set! defined-syms_0 phase_0 ht_0) ht_0))))))
      (hash-set! defined-syms-at-phase_0 sym_0 id_0))))
(define make-create-root-expand-context-from-module
  (lambda (requires_0 evaled-ld-h_0)
    (lambda (ns_0 phase-shift_0 original-self_0 self_0)
      (let ((root-ctx_0
             (let ((temp1_0 (namespace-mpi ns_0)))
               (make-root-expand-context.1
                #f
                null
                unsafe-undefined
                unsafe-undefined
                temp1_0))))
        (let ((s_0
               (add-scopes
                empty-syntax
                (begin-unsafe
                 (root-expand-context/inner-module-scopes
                  (root-expand-context/outer-inner root-ctx_0))))))
          (begin
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((phase+reqs_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (begin
                              (let ((phase_0 (car phase+reqs_0)))
                                (begin
                                  (let ((lst_1 (cdr phase+reqs_0)))
                                    (begin
                                      (letrec*
                                       ((for-loop_1
                                         (|#%name|
                                          for-loop
                                          (lambda (lst_2)
                                            (begin
                                              (if (pair? lst_2)
                                                (let ((req_0
                                                       (unsafe-car lst_2)))
                                                  (let ((rest_1
                                                         (unsafe-cdr lst_2)))
                                                    (begin
                                                      (let ((mpi_0
                                                             (module-path-index-shift
                                                              req_0
                                                              original-self_0
                                                              self_0)))
                                                        (let ((temp7_0
                                                               (phase+
                                                                phase_0
                                                                phase-shift_0)))
                                                          (perform-require!.1
                                                           #f
                                                           #t
                                                           #f
                                                           #f
                                                           #f
                                                           #f
                                                           'all
                                                           #t
                                                           temp7_0
                                                           #f
                                                           phase-shift_0
                                                           #f
                                                           #f
                                                           unsafe-undefined
                                                           #t
                                                           'module
                                                           mpi_0
                                                           s_0
                                                           self_0
                                                           s_0
                                                           ns_0)))
                                                      (for-loop_1 rest_1))))
                                                (values)))))))
                                       (for-loop_1 lst_1))))
                                  (void)))
                              (for-loop_0 rest_0))))
                        (values)))))))
               (for-loop_0 requires_0)))
            (let ((defined-syms_0
                   (begin-unsafe
                    (root-expand-context/inner-defined-syms
                     (root-expand-context/outer-inner root-ctx_0)))))
              (begin
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (i_0)
                        (begin
                          (if i_0
                            (call-with-values
                             (lambda ()
                               (hash-iterate-key+value evaled-ld-h_0 i_0))
                             (case-lambda
                              ((phase_0 linklet_0)
                               (begin
                                 (begin
                                   (let ((lst_0
                                          (linklet-export-variables
                                           linklet_0)))
                                     (begin
                                       (letrec*
                                        ((for-loop_1
                                          (|#%name|
                                           for-loop
                                           (lambda (lst_1)
                                             (begin
                                               (if (pair? lst_1)
                                                 (let ((sym_0
                                                        (unsafe-car lst_1)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_1)))
                                                     (begin
                                                       (let ((id_0
                                                              (datum->syntax$1
                                                               s_0
                                                               sym_0)))
                                                         (begin
                                                           (let ((temp11_0
                                                                  (make-module-binding.1
                                                                   #f
                                                                   null
                                                                   #f
                                                                   #f
                                                                   unsafe-undefined
                                                                   unsafe-undefined
                                                                   0
                                                                   unsafe-undefined
                                                                   self_0
                                                                   phase_0
                                                                   sym_0)))
                                                             (add-binding!.1
                                                              #f
                                                              #f
                                                              id_0
                                                              temp11_0
                                                              phase_0))
                                                           (add-defined-sym!
                                                            defined-syms_0
                                                            phase_0
                                                            sym_0
                                                            id_0)))
                                                       (for-loop_1 rest_0))))
                                                 (values)))))))
                                        (for-loop_1 lst_0))))
                                   (void))
                                 (for-loop_0
                                  (hash-iterate-next evaled-ld-h_0 i_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            (values)))))))
                   (for-loop_0 (hash-iterate-first evaled-ld-h_0))))
                (void)
                root-ctx_0))))))))
(define shift-to-inside-root-context
  (lambda (root-context_0)
    (let ((outside-mpi_0
           (begin-unsafe
            (root-expand-context/inner-self-mpi
             (root-expand-context/outer-inner root-context_0)))))
      (let ((inside-mpi_0
             (make-self-module-path-index
              (module-path-index-resolved outside-mpi_0))))
        (if (root-expand-context/outer? root-context_0)
          (let ((inner16_0
                 (let ((the-struct_0
                        (root-expand-context/outer-inner root-context_0)))
                   (if (root-expand-context/inner? the-struct_0)
                     (let ((all-scopes-stx18_0
                            (let ((temp19_0
                                   (begin-unsafe
                                    (root-expand-context/inner-all-scopes-stx
                                     (root-expand-context/outer-inner
                                      root-context_0)))))
                              (syntax-module-path-index-shift.1
                               #f
                               temp19_0
                               outside-mpi_0
                               inside-mpi_0
                               #f))))
                       (root-expand-context/inner2.1
                        inside-mpi_0
                        (root-expand-context/inner-module-scopes the-struct_0)
                        (root-expand-context/inner-top-level-bind-scope
                         the-struct_0)
                        all-scopes-stx18_0
                        (root-expand-context/inner-defined-syms the-struct_0)
                        (root-expand-context/inner-counter the-struct_0)
                        (root-expand-context/inner-lift-key the-struct_0)))
                     (raise-argument-error
                      'struct-copy
                      "root-expand-context/inner?"
                      the-struct_0)))))
            (root-expand-context/outer1.1
             inner16_0
             (root-expand-context/outer-post-expansion root-context_0)
             (root-expand-context/outer-use-site-scopes root-context_0)
             (root-expand-context/outer-frame-id root-context_0)))
          (raise-argument-error
           'struct-copy
           "root-expand-context/outer?"
           root-context_0))))))
(define initial-code-inspector (current-code-inspector))
(define check-require-access.1
  (|#%name|
   check-require-access
   (lambda (skip-imports1_0
            linklet3_0
            import-module-uses4_0
            import-module-instances5_0
            insp6_0
            extra-inspector7_0
            extra-inspectorsss8_0)
     (begin
       (begin
         (let ((lst_0
                (list-tail
                 (linklet-import-variables linklet3_0)
                 skip-imports1_0)))
           (let ((lst_1
                  (if extra-inspectorsss8_0
                    extra-inspectorsss8_0
                    import-module-uses4_0)))
             (let ((lst_2 lst_0))
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (lst_3 lst_4 lst_5 lst_6)
                       (begin
                         (if (if (pair? lst_3)
                               (if (pair? lst_4)
                                 (if (pair? lst_5) (pair? lst_6) #f)
                                 #f)
                               #f)
                           (let ((import-syms_0 (unsafe-car lst_3)))
                             (let ((rest_0 (unsafe-cdr lst_3)))
                               (let ((mu_0 (unsafe-car lst_4)))
                                 (let ((rest_1 (unsafe-cdr lst_4)))
                                   (let ((mi_0 (unsafe-car lst_5)))
                                     (let ((rest_2 (unsafe-cdr lst_5)))
                                       (let ((extra-inspectorss_0
                                              (unsafe-car lst_6)))
                                         (let ((rest_3 (unsafe-cdr lst_6)))
                                           (begin
                                             (let ((m_0
                                                    (module-instance-module
                                                     mi_0)))
                                               (if (module-no-protected? m_0)
                                                 (void)
                                                 (let ((access_0
                                                        (let ((or-part_0
                                                               (module-access
                                                                m_0)))
                                                          (if or-part_0
                                                            or-part_0
                                                            (module-compute-access!
                                                             m_0)))))
                                                   (begin
                                                     (begin
                                                       (letrec*
                                                        ((for-loop_1
                                                          (|#%name|
                                                           for-loop
                                                           (lambda (lst_7)
                                                             (begin
                                                               (if (pair?
                                                                    lst_7)
                                                                 (let ((import-sym_0
                                                                        (unsafe-car
                                                                         lst_7)))
                                                                   (let ((rest_4
                                                                          (unsafe-cdr
                                                                           lst_7)))
                                                                     (begin
                                                                       (let ((a_0
                                                                              (hash-ref
                                                                               (hash-ref
                                                                                access_0
                                                                                (module-use-phase
                                                                                 mu_0)
                                                                                hash2610)
                                                                               import-sym_0
                                                                               'unexported)))
                                                                         (if (let ((or-part_0
                                                                                    (eq?
                                                                                     a_0
                                                                                     'unexported)))
                                                                               (if or-part_0
                                                                                 or-part_0
                                                                                 (eq?
                                                                                  a_0
                                                                                  'protected)))
                                                                           (let ((guard-insp_0
                                                                                  (namespace-inspector
                                                                                   (module-instance-namespace
                                                                                    mi_0))))
                                                                             (if (let ((or-part_0
                                                                                        (inspector-superior?
                                                                                         insp6_0
                                                                                         guard-insp_0)))
                                                                                   (if or-part_0
                                                                                     or-part_0
                                                                                     (let ((or-part_1
                                                                                            (if extra-inspector7_0
                                                                                              (inspector-superior?
                                                                                               extra-inspector7_0
                                                                                               guard-insp_0)
                                                                                              #f)))
                                                                                       (if or-part_1
                                                                                         or-part_1
                                                                                         (if extra-inspectorsss8_0
                                                                                           (if extra-inspectorss_0
                                                                                             (extra-inspectors-allow?
                                                                                              (hash-ref
                                                                                               extra-inspectorss_0
                                                                                               import-sym_0
                                                                                               #f)
                                                                                              guard-insp_0)
                                                                                             #f)
                                                                                           #f)))))
                                                                               (void)
                                                                               (let ((app_0
                                                                                      (string-append
                                                                                       "access disallowed by code inspector to ~a variable\n"
                                                                                       "  variable: ~s\n"
                                                                                       "  from module: ~a")))
                                                                                 (error
                                                                                  'link
                                                                                  app_0
                                                                                  a_0
                                                                                  import-sym_0
                                                                                  (1/module-path-index-resolve
                                                                                   (namespace-mpi
                                                                                    (module-instance-namespace
                                                                                     mi_0)))))))
                                                                           (void)))
                                                                       (for-loop_1
                                                                        rest_4))))
                                                                 (values)))))))
                                                        (for-loop_1
                                                         import-syms_0)))
                                                     (void)))))
                                             (for-loop_0
                                              rest_0
                                              rest_1
                                              rest_2
                                              rest_3))))))))))
                           (values)))))))
                  (for-loop_0
                   lst_2
                   import-module-uses4_0
                   import-module-instances5_0
                   lst_1))))))
         (void))))))
(define check-single-require-access
  (lambda (mi_0 phase_0 sym_0 insp_0)
    (let ((m_0 (module-instance-module mi_0)))
      (if (module-no-protected? m_0)
        #t
        (let ((access_0
               (let ((or-part_0 (module-access m_0)))
                 (if or-part_0 or-part_0 (module-compute-access! m_0)))))
          (let ((a_0
                 (hash-ref
                  (hash-ref access_0 phase_0 hash2610)
                  sym_0
                  'unexported)))
            (if (let ((or-part_0 (eq? a_0 'unexported)))
                  (if or-part_0 or-part_0 (eq? a_0 'protected)))
              (let ((guard-insp_0
                     (namespace-inspector (module-instance-namespace mi_0))))
                (let ((or-part_0
                       (if insp_0
                         (inspector-superior? insp_0 guard-insp_0)
                         #f)))
                  (if or-part_0
                    or-part_0
                    (inspector-superior?
                     (current-code-inspector)
                     guard-insp_0))))
              #t)))))))
(define cell.1$3 (unsafe-make-place-local (make-weak-hasheq)))
(define module-cache-place-init!
  (lambda () (unsafe-place-local-set! cell.1$3 (make-weak-hasheq))))
(define make-module-cache-key
  (lambda (hash-code_0)
    (if hash-code_0
      (string->symbol
       (format
        "~s"
        (list
         hash-code_0
         (path->directory-path
          (let ((or-part_0 (current-load-relative-directory)))
            (if or-part_0 or-part_0 (current-directory)))))))
      #f)))
(define module-cache-set!
  (lambda (key_0 proc_0)
    (hash-set!
     (unsafe-place-local-ref cell.1$3)
     key_0
     (make-ephemeron key_0 proc_0))))
(define module-cache-ref
  (lambda (key_0)
    (let ((e_0 (hash-ref (unsafe-place-local-ref cell.1$3) key_0 #f)))
      (if e_0 (ephemeron-value e_0) #f))))
(define 1/module-cache-clear!
  (|#%name|
   module-cache-clear!
   (lambda () (begin (hash-clear! (unsafe-place-local-ref cell.1$3))))))
(define current-module-declare-as-predefined
  (make-parameter #f #f 'current-module-declare-as-predefined))
(define eval-module.1
  (|#%name|
   eval-module
   (lambda (namespace1_0 supermodule-name3_0 with-submodules?2_0 c7_0)
     (begin
       (let ((ns_0
              (if (eq? namespace1_0 unsafe-undefined)
                (1/current-namespace)
                namespace1_0)))
         (begin
           (if log-performance?
             (start-performance-region 'eval 'module)
             (void))
           (begin0
             (call-with-values
              (lambda ()
                (compiled-module->dh+h+data-instance+declaration-instance
                 c7_0))
              (case-lambda
               ((dh_0 h_0 data-instance_0 declaration-instance_0)
                (let ((syntax-literals-data-instance_0
                       (if (compiled-in-memory? c7_0)
                         (make-syntax-literal-data-instance-from-compiled-in-memory
                          c7_0)
                         (let ((l_0 (hash-ref h_0 'stx-data #f)))
                           (if l_0
                             (let ((app_0
                                    (begin-unsafe
                                     (eval-linklet
                                      (force-compile-linklet l_0)))))
                               (instantiate-linklet
                                app_0
                                (list deserialize-instance data-instance_0)))
                             (if (eq?
                                  (hash-ref h_0 'module->namespace #f)
                                  'empty)
                               empty-syntax-literals-instance/empty-namespace
                               empty-syntax-literals-data-instance))))))
                  (let ((decl_0
                         (|#%name|
                          decl
                          (lambda (key_0)
                            (begin
                              (instance-variable-value
                               declaration-instance_0
                               key_0))))))
                    (let ((pre-submodule-names_0 (hash-ref h_0 'pre null)))
                      (let ((post-submodule-names_0 (hash-ref h_0 'post null)))
                        (let ((default-name_0 (hash-ref h_0 'name 'module)))
                          (let ((cache-key_0
                                 (make-module-cache-key
                                  (if (null? pre-submodule-names_0)
                                    (if (null? post-submodule-names_0)
                                      (hash-ref h_0 'hash-code #f)
                                      #f)
                                    #f))))
                            (let ((cross-phase-persistent?_0
                                   (hash-ref h_0 'cross-phase-persistent? #f)))
                              (let ((min-phase_0 (hash-ref h_0 'min-phase 0)))
                                (let ((max-phase_0
                                       (hash-ref h_0 'max-phase 0)))
                                  (let ((language-info_0
                                         (hash-ref h_0 'language-info #f)))
                                    (let ((realm_0
                                           (hash-ref h_0 'realm 'racket)))
                                      (let ((phases-h_0
                                             (let ((end_0 (add1 max-phase_0)))
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (table_0 pos_0)
                                                       (begin
                                                         (if (< pos_0 end_0)
                                                           (let ((table_1
                                                                  (let ((id*_0
                                                                         (hash-ref
                                                                          h_0
                                                                          pos_0
                                                                          #f)))
                                                                    (begin
                                                                      #t
                                                                      (letrec*
                                                                       ((for-loop_1
                                                                         (|#%name|
                                                                          for-loop
                                                                          (lambda (table_1)
                                                                            (begin
                                                                              (let ((table_2
                                                                                     (if id*_0
                                                                                       (let ((table_2
                                                                                              (call-with-values
                                                                                               (lambda ()
                                                                                                 (values
                                                                                                  pos_0
                                                                                                  (begin-unsafe
                                                                                                   (eval-linklet
                                                                                                    (force-compile-linklet
                                                                                                     id*_0)))))
                                                                                               (case-lambda
                                                                                                ((key_0
                                                                                                  val_0)
                                                                                                 (hash-set
                                                                                                  table_1
                                                                                                  key_0
                                                                                                  val_0))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  2
                                                                                                  args))))))
                                                                                         (values
                                                                                          table_2))
                                                                                       table_1)))
                                                                                table_2))))))
                                                                       (for-loop_1
                                                                        table_0))))))
                                                             (for-loop_0
                                                              table_1
                                                              (+ pos_0 1)))
                                                           table_0))))))
                                                  (for-loop_0
                                                   hash2725
                                                   min-phase_0))))))
                                        (let ((syntax-literals-linklet_0
                                               (let ((l_0
                                                      (hash-ref h_0 'stx #f)))
                                                 (if l_0
                                                   (begin-unsafe
                                                    (eval-linklet
                                                     (force-compile-linklet
                                                      l_0)))
                                                   #f))))
                                          (let ((extra-inspector_0
                                                 (if (compiled-in-memory? c7_0)
                                                   (compiled-in-memory-compile-time-inspector
                                                    c7_0)
                                                   #f)))
                                            (let ((phase-to-link-extra-inspectorsss_0
                                                   (if (compiled-in-memory?
                                                        c7_0)
                                                     (compiled-in-memory-phase-to-link-extra-inspectorsss
                                                      c7_0)
                                                     hash2589)))
                                              (let ((requires_0
                                                     (begin-unsafe
                                                      (begin
                                                        (instance-variable-value
                                                         declaration-instance_0
                                                         'requires)))))
                                                (let ((recur-requires_0
                                                       (begin-unsafe
                                                        (begin
                                                          (instance-variable-value
                                                           declaration-instance_0
                                                           'recur-requires)))))
                                                  (let ((provides_0
                                                         (begin-unsafe
                                                          (begin
                                                            (instance-variable-value
                                                             declaration-instance_0
                                                             'provides)))))
                                                    (let ((original-self_0
                                                           (begin-unsafe
                                                            (begin
                                                              (instance-variable-value
                                                               declaration-instance_0
                                                               'self-mpi)))))
                                                      (let ((phase-to-link-modules_0
                                                             (begin-unsafe
                                                              (begin
                                                                (instance-variable-value
                                                                 declaration-instance_0
                                                                 'phase-to-link-modules)))))
                                                        (let ((portal-stxes_0
                                                               (begin-unsafe
                                                                (begin
                                                                  (instance-variable-value
                                                                   declaration-instance_0
                                                                   'portal-stxes)))))
                                                          (let ((create-root-expand-context-from-module_0
                                                                 (make-create-root-expand-context-from-module
                                                                  requires_0
                                                                  phases-h_0)))
                                                            (let ((declare-submodules_0
                                                                   (if dh_0
                                                                     (|#%name|
                                                                      declare-submodules
                                                                      (lambda (ns_1
                                                                               names_0
                                                                               declare-name_0
                                                                               pre?_0)
                                                                        (begin
                                                                          (if (compiled-in-memory?
                                                                               c7_0)
                                                                            (begin
                                                                              (let ((lst_0
                                                                                     (if pre?_0
                                                                                       (compiled-in-memory-pre-compiled-in-memorys
                                                                                        c7_0)
                                                                                       (compiled-in-memory-post-compiled-in-memorys
                                                                                        c7_0))))
                                                                                (begin
                                                                                  (letrec*
                                                                                   ((for-loop_0
                                                                                     (|#%name|
                                                                                      for-loop
                                                                                      (lambda (lst_1)
                                                                                        (begin
                                                                                          (if (pair?
                                                                                               lst_1)
                                                                                            (let ((c_0
                                                                                                   (unsafe-car
                                                                                                    lst_1)))
                                                                                              (let ((rest_0
                                                                                                     (unsafe-cdr
                                                                                                      lst_1)))
                                                                                                (begin
                                                                                                  (eval-module.1
                                                                                                   ns_1
                                                                                                   declare-name_0
                                                                                                   #t
                                                                                                   c_0)
                                                                                                  (for-loop_0
                                                                                                   rest_0))))
                                                                                            (values)))))))
                                                                                   (for-loop_0
                                                                                    lst_0))))
                                                                              (void))
                                                                            (begin
                                                                              (begin
                                                                                (letrec*
                                                                                 ((for-loop_0
                                                                                   (|#%name|
                                                                                    for-loop
                                                                                    (lambda (lst_0)
                                                                                      (begin
                                                                                        (if (pair?
                                                                                             lst_0)
                                                                                          (let ((name_0
                                                                                                 (unsafe-car
                                                                                                  lst_0)))
                                                                                            (let ((rest_0
                                                                                                   (unsafe-cdr
                                                                                                    lst_0)))
                                                                                              (begin
                                                                                                (let ((sm-cd_0
                                                                                                       (hash-ref
                                                                                                        dh_0
                                                                                                        name_0
                                                                                                        #f)))
                                                                                                  (begin
                                                                                                    (if sm-cd_0
                                                                                                      (void)
                                                                                                      (error
                                                                                                       "missing submodule declaration:"
                                                                                                       name_0))
                                                                                                    (eval-module.1
                                                                                                     ns_1
                                                                                                     declare-name_0
                                                                                                     #t
                                                                                                     sm-cd_0)))
                                                                                                (for-loop_0
                                                                                                 rest_0))))
                                                                                          (values)))))))
                                                                                 (for-loop_0
                                                                                  names_0)))
                                                                              (void))))))
                                                                     void)))
                                                              (let ((declare-this-module_0
                                                                     (|#%name|
                                                                      declare-this-module
                                                                      (lambda (ns_1)
                                                                        (begin
                                                                          (let ((m_0
                                                                                 (let ((temp20_0
                                                                                        (1/current-module-declare-source)))
                                                                                   (let ((temp30_0
                                                                                          (current-module-declare-as-predefined)))
                                                                                     (let ((temp31_0
                                                                                            (append
                                                                                             pre-submodule-names_0
                                                                                             post-submodule-names_0)))
                                                                                       (let ((temp33_0
                                                                                              (lambda ()
                                                                                                (get-all-variables
                                                                                                 phases-h_0))))
                                                                                         (let ((temp34_0
                                                                                                (lambda (phase-level_0
                                                                                                         ns_2
                                                                                                         insp_0)
                                                                                                  (let ((app_0
                                                                                                         (hash-ref
                                                                                                          phases-h_0
                                                                                                          phase-level_0
                                                                                                          #f)))
                                                                                                    (let ((app_1
                                                                                                           (hash-ref
                                                                                                            phase-to-link-modules_0
                                                                                                            phase-level_0
                                                                                                            #f)))
                                                                                                      (module-linklet-info2.1
                                                                                                       app_0
                                                                                                       app_1
                                                                                                       original-self_0
                                                                                                       insp_0
                                                                                                       extra-inspector_0
                                                                                                       (hash-ref
                                                                                                        phase-to-link-extra-inspectorsss_0
                                                                                                        phase-level_0
                                                                                                        #f)))))))
                                                                                           (let ((temp35_0
                                                                                                  (lambda (bulk-binding-registry_0)
                                                                                                    (force-syntax-deserialize
                                                                                                     syntax-literals-data-instance_0
                                                                                                     bulk-binding-registry_0))))
                                                                                             (let ((temp36_0
                                                                                                    (lambda (data-box_0
                                                                                                             ns_2
                                                                                                             phase-shift_0
                                                                                                             self_0
                                                                                                             bulk-binding-registry_0
                                                                                                             insp_0)
                                                                                                      (if (unbox
                                                                                                           data-box_0)
                                                                                                        (void)
                                                                                                        (init-instance-data!
                                                                                                         data-box_0
                                                                                                         cache-key_0
                                                                                                         ns_2
                                                                                                         syntax-literals-linklet_0
                                                                                                         data-instance_0
                                                                                                         syntax-literals-data-instance_0
                                                                                                         phase-shift_0
                                                                                                         original-self_0
                                                                                                         self_0
                                                                                                         bulk-binding-registry_0
                                                                                                         insp_0
                                                                                                         create-root-expand-context-from-module_0)))))
                                                                                               (let ((temp37_0
                                                                                                      (lambda (data-box_0
                                                                                                               phase_0
                                                                                                               sym_0)
                                                                                                        (let ((ht_0
                                                                                                               (hash-ref
                                                                                                                portal-stxes_0
                                                                                                                phase_0
                                                                                                                hash2610)))
                                                                                                          (let ((pos_0
                                                                                                                 (hash-ref
                                                                                                                  ht_0
                                                                                                                  sym_0
                                                                                                                  #f)))
                                                                                                            (if pos_0
                                                                                                              (let ((syntax-literals-instance_0
                                                                                                                     (instance-data-syntax-literals-instance
                                                                                                                      (unbox
                                                                                                                       data-box_0))))
                                                                                                                (|#%app|
                                                                                                                 (instance-variable-value
                                                                                                                  syntax-literals-instance_0
                                                                                                                  get-syntax-literal!-id)
                                                                                                                 pos_0))
                                                                                                              #f))))))
                                                                                                 (let ((temp38_0
                                                                                                        (lambda (data-box_0
                                                                                                                 ns_2
                                                                                                                 phase-shift_0
                                                                                                                 phase-level_0
                                                                                                                 self_0
                                                                                                                 bulk-binding-registry_0
                                                                                                                 insp_0)
                                                                                                          (begin
                                                                                                            (if log-performance?
                                                                                                              (start-performance-region
                                                                                                               'eval
                                                                                                               'instantiate)
                                                                                                              (void))
                                                                                                            (begin0
                                                                                                              (let ((syntax-literals-instance_0
                                                                                                                     (instance-data-syntax-literals-instance
                                                                                                                      (unbox
                                                                                                                       data-box_0))))
                                                                                                                (let ((phase-portal-stxes_0
                                                                                                                       (hash-ref
                                                                                                                        portal-stxes_0
                                                                                                                        (sub1
                                                                                                                         phase-level_0)
                                                                                                                        hash2610)))
                                                                                                                  (begin
                                                                                                                    (if (zero?
                                                                                                                         (hash-count
                                                                                                                          phase-portal-stxes_0))
                                                                                                                      (void)
                                                                                                                      (let ((get-syntax-literal!_0
                                                                                                                             (instance-variable-value
                                                                                                                              syntax-literals-instance_0
                                                                                                                              get-syntax-literal!-id)))
                                                                                                                        (begin
                                                                                                                          (begin
                                                                                                                            (letrec*
                                                                                                                             ((for-loop_0
                                                                                                                               (|#%name|
                                                                                                                                for-loop
                                                                                                                                (lambda (i_0)
                                                                                                                                  (begin
                                                                                                                                    (if i_0
                                                                                                                                      (call-with-values
                                                                                                                                       (lambda ()
                                                                                                                                         (hash-iterate-key+value
                                                                                                                                          phase-portal-stxes_0
                                                                                                                                          i_0))
                                                                                                                                       (case-lambda
                                                                                                                                        ((key_0
                                                                                                                                          pos_0)
                                                                                                                                         (begin
                                                                                                                                           (if (symbol?
                                                                                                                                                key_0)
                                                                                                                                             (let ((portal-stx_0
                                                                                                                                                    (|#%app|
                                                                                                                                                     get-syntax-literal!_0
                                                                                                                                                     pos_0)))
                                                                                                                                               (let ((app_0
                                                                                                                                                      (sub1
                                                                                                                                                       phase-level_0)))
                                                                                                                                                 (namespace-set-transformer!
                                                                                                                                                  ns_2
                                                                                                                                                  app_0
                                                                                                                                                  key_0
                                                                                                                                                  (portal-syntax1.1
                                                                                                                                                   portal-stx_0))))
                                                                                                                                             (void))
                                                                                                                                           (for-loop_0
                                                                                                                                            (hash-iterate-next
                                                                                                                                             phase-portal-stxes_0
                                                                                                                                             i_0))))
                                                                                                                                        (args
                                                                                                                                         (raise-binding-result-arity-error
                                                                                                                                          2
                                                                                                                                          args))))
                                                                                                                                      (values)))))))
                                                                                                                             (for-loop_0
                                                                                                                              (hash-iterate-first
                                                                                                                               phase-portal-stxes_0))))
                                                                                                                          (void))))
                                                                                                                    (let ((phase-linklet_0
                                                                                                                           (hash-ref
                                                                                                                            phases-h_0
                                                                                                                            phase-level_0
                                                                                                                            #f)))
                                                                                                                      (if phase-linklet_0
                                                                                                                        (let ((module-uses_0
                                                                                                                               (hash-ref
                                                                                                                                phase-to-link-modules_0
                                                                                                                                phase-level_0)))
                                                                                                                          (call-with-values
                                                                                                                           (lambda ()
                                                                                                                             (call-with-values
                                                                                                                              (lambda ()
                                                                                                                                (begin
                                                                                                                                  (letrec*
                                                                                                                                   ((for-loop_0
                                                                                                                                     (|#%name|
                                                                                                                                      for-loop
                                                                                                                                      (lambda (mis_0
                                                                                                                                               is_0
                                                                                                                                               lst_0)
                                                                                                                                        (begin
                                                                                                                                          (if (pair?
                                                                                                                                               lst_0)
                                                                                                                                            (let ((mu_0
                                                                                                                                                   (unsafe-car
                                                                                                                                                    lst_0)))
                                                                                                                                              (let ((rest_0
                                                                                                                                                     (unsafe-cdr
                                                                                                                                                      lst_0)))
                                                                                                                                                (call-with-values
                                                                                                                                                 (lambda ()
                                                                                                                                                   (call-with-values
                                                                                                                                                    (lambda ()
                                                                                                                                                      (call-with-values
                                                                                                                                                       (lambda ()
                                                                                                                                                         (let ((temp52_0
                                                                                                                                                                (phase+
                                                                                                                                                                 (phase-
                                                                                                                                                                  phase-level_0
                                                                                                                                                                  (module-use-phase
                                                                                                                                                                   mu_0))
                                                                                                                                                                 phase-shift_0)))
                                                                                                                                                           (namespace-module-use->module+linklet-instances.1
                                                                                                                                                            temp52_0
                                                                                                                                                            original-self_0
                                                                                                                                                            self_0
                                                                                                                                                            ns_2
                                                                                                                                                            mu_0)))
                                                                                                                                                       (case-lambda
                                                                                                                                                        ((mis46_0
                                                                                                                                                          is47_0)
                                                                                                                                                         (values
                                                                                                                                                          (cons
                                                                                                                                                           mis46_0
                                                                                                                                                           mis_0)
                                                                                                                                                          (cons
                                                                                                                                                           is47_0
                                                                                                                                                           is_0)))
                                                                                                                                                        (args
                                                                                                                                                         (raise-binding-result-arity-error
                                                                                                                                                          2
                                                                                                                                                          args)))))
                                                                                                                                                    (case-lambda
                                                                                                                                                     ((mis_1
                                                                                                                                                       is_1)
                                                                                                                                                      (values
                                                                                                                                                       mis_1
                                                                                                                                                       is_1))
                                                                                                                                                     (args
                                                                                                                                                      (raise-binding-result-arity-error
                                                                                                                                                       2
                                                                                                                                                       args)))))
                                                                                                                                                 (case-lambda
                                                                                                                                                  ((mis_1
                                                                                                                                                    is_1)
                                                                                                                                                   (for-loop_0
                                                                                                                                                    mis_1
                                                                                                                                                    is_1
                                                                                                                                                    rest_0))
                                                                                                                                                  (args
                                                                                                                                                   (raise-binding-result-arity-error
                                                                                                                                                    2
                                                                                                                                                    args))))))
                                                                                                                                            (values
                                                                                                                                             mis_0
                                                                                                                                             is_0)))))))
                                                                                                                                   (for-loop_0
                                                                                                                                    null
                                                                                                                                    null
                                                                                                                                    module-uses_0))))
                                                                                                                              (case-lambda
                                                                                                                               ((mis_0
                                                                                                                                 is_0)
                                                                                                                                (let ((app_0
                                                                                                                                       (reverse$1
                                                                                                                                        mis_0)))
                                                                                                                                  (values
                                                                                                                                   app_0
                                                                                                                                   (reverse$1
                                                                                                                                    is_0))))
                                                                                                                               (args
                                                                                                                                (raise-binding-result-arity-error
                                                                                                                                 2
                                                                                                                                 args)))))
                                                                                                                           (case-lambda
                                                                                                                            ((import-module-instances_0
                                                                                                                              import-instances_0)
                                                                                                                             (begin
                                                                                                                               (let ((temp45_0
                                                                                                                                      (hash-ref
                                                                                                                                       phase-to-link-extra-inspectorsss_0
                                                                                                                                       phase-level_0
                                                                                                                                       #f)))
                                                                                                                                 (check-require-access.1
                                                                                                                                  2
                                                                                                                                  phase-linklet_0
                                                                                                                                  module-uses_0
                                                                                                                                  import-module-instances_0
                                                                                                                                  insp_0
                                                                                                                                  extra-inspector_0
                                                                                                                                  temp45_0))
                                                                                                                               (let ((temp53_0
                                                                                                                                      (if (begin-unsafe
                                                                                                                                           (eq?
                                                                                                                                            phase-level_0
                                                                                                                                            0))
                                                                                                                                        (|#%name|
                                                                                                                                         temp53
                                                                                                                                         (lambda (name_0
                                                                                                                                                  val_0)
                                                                                                                                           (begin
                                                                                                                                             (error
                                                                                                                                              'define-syntax
                                                                                                                                              "should not happen at phase level 0"))))
                                                                                                                                        (|#%name|
                                                                                                                                         temp53
                                                                                                                                         (lambda (name_0
                                                                                                                                                  val_0)
                                                                                                                                           (begin
                                                                                                                                             (namespace-set-transformer!
                                                                                                                                              ns_2
                                                                                                                                              (sub1
                                                                                                                                               phase-level_0)
                                                                                                                                              name_0
                                                                                                                                              val_0)))))))
                                                                                                                                 (let ((module-body-instance-instance_0
                                                                                                                                        (make-module-body-instance-instance.1
                                                                                                                                         temp53_0)))
                                                                                                                                   (let ((instantiate-body_0
                                                                                                                                          (|#%name|
                                                                                                                                           instantiate-body
                                                                                                                                           (lambda ()
                                                                                                                                             (begin
                                                                                                                                               (let ((app_0
                                                                                                                                                      (list*
                                                                                                                                                       syntax-literals-instance_0
                                                                                                                                                       module-body-instance-instance_0
                                                                                                                                                       import-instances_0)))
                                                                                                                                                 (instantiate-linklet
                                                                                                                                                  phase-linklet_0
                                                                                                                                                  app_0
                                                                                                                                                  (begin-unsafe
                                                                                                                                                   (definitions-variables
                                                                                                                                                    (namespace->definitions
                                                                                                                                                     ns_2
                                                                                                                                                     phase-level_0))))))))))
                                                                                                                                     (if (begin-unsafe
                                                                                                                                          (eq?
                                                                                                                                           phase-level_0
                                                                                                                                           0))
                                                                                                                                       (if (begin-unsafe
                                                                                                                                            (eq?
                                                                                                                                             phase-shift_0
                                                                                                                                             0))
                                                                                                                                         (instantiate-body_0)
                                                                                                                                         (with-continuation-mark*
                                                                                                                                          push-authentic
                                                                                                                                          parameterization-key
                                                                                                                                          (extend-parameterization
                                                                                                                                           (continuation-mark-set-first
                                                                                                                                            #f
                                                                                                                                            parameterization-key)
                                                                                                                                           1/current-namespace
                                                                                                                                           ns_2)
                                                                                                                                          (instantiate-body_0)))
                                                                                                                                       (let ((ns-1_0
                                                                                                                                              (namespace->namespace-at-phase
                                                                                                                                               ns_2
                                                                                                                                               (phase+
                                                                                                                                                phase-shift_0
                                                                                                                                                (sub1
                                                                                                                                                 phase-level_0)))))
                                                                                                                                         (with-continuation-mark*
                                                                                                                                          push-authentic
                                                                                                                                          parameterization-key
                                                                                                                                          (extend-parameterization
                                                                                                                                           (continuation-mark-set-first
                                                                                                                                            #f
                                                                                                                                            parameterization-key)
                                                                                                                                           1/current-namespace
                                                                                                                                           ns_2)
                                                                                                                                          (with-continuation-mark*
                                                                                                                                           authentic
                                                                                                                                           current-expand-context
                                                                                                                                           (promise1.1
                                                                                                                                            (lambda ()
                                                                                                                                              (make-expand-context.1
                                                                                                                                               #f
                                                                                                                                               #f
                                                                                                                                               #t
                                                                                                                                               #f
                                                                                                                                               #f
                                                                                                                                               ns-1_0))
                                                                                                                                            #f)
                                                                                                                                           (with-continuation-mark*
                                                                                                                                            authentic
                                                                                                                                            current-module-code-inspector
                                                                                                                                            insp_0
                                                                                                                                            (instantiate-body_0)))))))))))
                                                                                                                            (args
                                                                                                                             (raise-binding-result-arity-error
                                                                                                                              2
                                                                                                                              args)))))
                                                                                                                        (void))))))
                                                                                                              (if log-performance?
                                                                                                                (end-performance-region)
                                                                                                                (void)))))))
                                                                                                   (let ((temp37_1
                                                                                                          temp37_0)
                                                                                                         (temp36_1
                                                                                                          temp36_0)
                                                                                                         (temp35_1
                                                                                                          temp35_0)
                                                                                                         (temp34_1
                                                                                                          temp34_0)
                                                                                                         (temp33_1
                                                                                                          temp33_0)
                                                                                                         (temp31_1
                                                                                                          temp31_0)
                                                                                                         (temp30_1
                                                                                                          temp30_0)
                                                                                                         (temp20_1
                                                                                                          temp20_0))
                                                                                                     (make-module.1
                                                                                                      cross-phase-persistent?_0
                                                                                                      temp35_1
                                                                                                      temp33_1
                                                                                                      temp37_1
                                                                                                      temp38_0
                                                                                                      language-info_0
                                                                                                      max-phase_0
                                                                                                      min-phase_0
                                                                                                      #f
                                                                                                      temp34_1
                                                                                                      temp30_1
                                                                                                      temp36_1
                                                                                                      #f
                                                                                                      provides_0
                                                                                                      realm_0
                                                                                                      recur-requires_0
                                                                                                      requires_0
                                                                                                      original-self_0
                                                                                                      temp20_1
                                                                                                      temp31_1
                                                                                                      supermodule-name3_0)))))))))))))
                                                                            (let ((declare-name_0
                                                                                   (substitute-module-declare-name
                                                                                    default-name_0)))
                                                                              (begin
                                                                                (if with-submodules?2_0
                                                                                  (|#%app|
                                                                                   declare-submodules_0
                                                                                   ns_1
                                                                                   pre-submodule-names_0
                                                                                   declare-name_0
                                                                                   #t)
                                                                                  (void))
                                                                                (declare-module!.1
                                                                                 with-submodules?2_0
                                                                                 ns_1
                                                                                 m_0
                                                                                 declare-name_0)
                                                                                (if with-submodules?2_0
                                                                                  (|#%app|
                                                                                   declare-submodules_0
                                                                                   ns_1
                                                                                   post-submodule-names_0
                                                                                   declare-name_0
                                                                                   #f)
                                                                                  (void))))))))))
                                                                (begin
                                                                  (if cache-key_0
                                                                    (module-cache-set!
                                                                     cache-key_0
                                                                     declare-this-module_0)
                                                                    (void))
                                                                  (declare-this-module_0
                                                                   ns_0)))))))))))))))))))))))))))
               (args (raise-binding-result-arity-error 4 args))))
             (if log-performance? (end-performance-region) (void)))))))))
(define finish_2479
  (make-struct-type-install-properties
   '(instance-data)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'instance-data))
(define struct:instance-data
  (make-record-type-descriptor
   'instance-data
   #f
   (|#%nongenerative-uid| instance-data)
   #f
   #f
   '(2 . 0)))
(define effect_2595 (finish_2479 struct:instance-data))
(define instance-data9.1
  (|#%name|
   instance-data
   (record-constructor
    (make-record-constructor-descriptor struct:instance-data #f #f))))
(define instance-data?_2770
  (|#%name| instance-data? (record-predicate struct:instance-data)))
(define instance-data?
  (|#%name|
   instance-data?
   (lambda (v)
     (if (instance-data?_2770 v)
       #t
       ($value
        (if (impersonator? v)
          (instance-data?_2770 (impersonator-val v))
          #f))))))
(define instance-data-syntax-literals-instance_2650
  (|#%name|
   instance-data-syntax-literals-instance
   (record-accessor struct:instance-data 0)))
(define instance-data-syntax-literals-instance
  (|#%name|
   instance-data-syntax-literals-instance
   (lambda (s)
     (if (instance-data?_2770 s)
       (instance-data-syntax-literals-instance_2650 s)
       ($value
        (impersonate-ref
         instance-data-syntax-literals-instance_2650
         struct:instance-data
         0
         s
         'syntax-literals-instance))))))
(define instance-data-cache-key_2423
  (|#%name| instance-data-cache-key (record-accessor struct:instance-data 1)))
(define instance-data-cache-key
  (|#%name|
   instance-data-cache-key
   (lambda (s)
     (if (instance-data?_2770 s)
       (instance-data-cache-key_2423 s)
       ($value
        (impersonate-ref
         instance-data-cache-key_2423
         struct:instance-data
         1
         s
         'cache-key))))))
(define init-instance-data!
  (lambda (data-box_0
           cache-key_0
           ns_0
           syntax-literals-linklet_0
           data-instance_0
           syntax-literals-data-instance_0
           phase-shift_0
           original-self_0
           self_0
           bulk-binding-registry_0
           insp_0
           create-root-expand-context-from-module_0)
    (begin
      (if (not (load-on-demand-enabled))
        (force-syntax-deserialize
         syntax-literals-data-instance_0
         bulk-binding-registry_0)
        (void))
      (let ((temp62_0
             (lambda (name_0 val_0)
               (error "shouldn't get here for the root-ctx linklet"))))
        (let ((inst_0
               (make-instance-instance.1
                bulk-binding-registry_0
                insp_0
                ns_0
                phase-shift_0
                self_0
                temp62_0)))
          (let ((syntax-literals-instance_0
                 (if syntax-literals-linklet_0
                   (instantiate-linklet
                    syntax-literals-linklet_0
                    (list
                     deserialize-instance
                     data-instance_0
                     syntax-literals-data-instance_0
                     inst_0))
                   empty-syntax-literals-instance)))
            (begin
              (set-box!
               data-box_0
               (instance-data9.1 syntax-literals-instance_0 cache-key_0))
              (let ((get-encoded-root-expand-ctx_0
                     (instance-variable-value
                      syntax-literals-instance_0
                      'get-encoded-root-expand-ctx)))
                (if (eq? get-encoded-root-expand-ctx_0 'empty)
                  (let ((root-ctx_0
                         (promise1.1
                          (lambda ()
                            (shift-to-inside-root-context
                             (make-root-expand-context.1
                              #f
                              null
                              unsafe-undefined
                              unsafe-undefined
                              self_0)))
                          #f)))
                    (begin-unsafe
                     (set-box! (namespace-root-expand-ctx ns_0) root-ctx_0)))
                  (if (procedure? get-encoded-root-expand-ctx_0)
                    (let ((root-ctx_0
                           (promise1.1
                            (lambda ()
                              (shift-to-inside-root-context
                               (root-expand-context-decode-for-module
                                (|#%app| get-encoded-root-expand-ctx_0)
                                self_0)))
                            #f)))
                      (begin-unsafe
                       (set-box! (namespace-root-expand-ctx ns_0) root-ctx_0)))
                    (let ((root-ctx_0
                           (promise1.1
                            (lambda ()
                              (shift-to-inside-root-context
                               (|#%app|
                                create-root-expand-context-from-module_0
                                ns_0
                                phase-shift_0
                                original-self_0
                                self_0)))
                            #f)))
                      (begin-unsafe
                       (set-box!
                        (namespace-root-expand-ctx ns_0)
                        root-ctx_0)))))))))))))
(define force-syntax-deserialize
  (lambda (syntax-literals-data-instance_0 bulk-binding-registry_0)
    (if (let ((or-part_0
               (eq?
                syntax-literals-data-instance_0
                empty-syntax-literals-data-instance)))
          (if or-part_0
            or-part_0
            (eq?
             syntax-literals-data-instance_0
             empty-syntax-literals-instance/empty-namespace)))
      (void)
      (let ((deserialize-syntax_0
             (instance-variable-value
              syntax-literals-data-instance_0
              deserialize-syntax-id)))
        (if deserialize-syntax_0
          (|#%app| deserialize-syntax_0 bulk-binding-registry_0)
          (void))))))
(define compiled-module->dh+h
  (lambda (c_0)
    (let ((ld/h_0
           (if (compiled-in-memory? c_0)
             (compiled-in-memory-linklet-directory c_0)
             c_0)))
      (let ((dh_0
             (if (linklet-directory?$1 ld/h_0)
               (linklet-directory->hash$1 ld/h_0)
               #f)))
        (let ((h_0
               (1/linklet-bundle->hash (if dh_0 (hash-ref dh_0 #f) ld/h_0))))
          (values dh_0 h_0))))))
(define compiled-module->h
  (lambda (c_0)
    (call-with-values
     (lambda () (compiled-module->dh+h c_0))
     (case-lambda
      ((dh_0 h_0) h_0)
      (args (raise-binding-result-arity-error 2 args))))))
(define compiled-module->dh+h+data-instance+declaration-instance
  (lambda (c_0)
    (call-with-values
     (lambda () (compiled-module->dh+h c_0))
     (case-lambda
      ((dh_0 h_0)
       (let ((data-instance_0
              (if (compiled-in-memory? c_0)
                (make-data-instance-from-compiled-in-memory c_0)
                (let ((app_0
                       (let ((l_0 (hash-ref h_0 'data)))
                         (begin-unsafe
                          (eval-linklet (force-compile-linklet l_0))))))
                  (instantiate-linklet app_0 (list deserialize-instance))))))
         (let ((declaration-instance_0
                (if (if (compiled-in-memory? c_0)
                      (compiled-in-memory-original-self c_0)
                      #f)
                  (make-declaration-instance-from-compiled-in-memory c_0)
                  (let ((app_0
                         (let ((l_0 (hash-ref h_0 'decl)))
                           (begin-unsafe
                            (eval-linklet (force-compile-linklet l_0))))))
                    (instantiate-linklet
                     app_0
                     (list deserialize-instance data-instance_0))))))
           (values dh_0 h_0 data-instance_0 declaration-instance_0))))
      (args (raise-binding-result-arity-error 2 args))))))
(define compiled-module->declaration-instance
  (lambda (c_0)
    (call-with-values
     (lambda () (compiled-module->dh+h+data-instance+declaration-instance c_0))
     (case-lambda
      ((dh_0 h_0 data-instance_0 declaration-instance_0)
       declaration-instance_0)
      (args (raise-binding-result-arity-error 4 args))))))
(define compiled-module->h+declaration-instance
  (lambda (c_0)
    (call-with-values
     (lambda () (compiled-module->dh+h+data-instance+declaration-instance c_0))
     (case-lambda
      ((dh_0 h_0 data-instance_0 declaration-instance_0)
       (values h_0 declaration-instance_0))
      (args (raise-binding-result-arity-error 4 args))))))
(define make-data-instance-from-compiled-in-memory
  (lambda (cim_0)
    (make-instance
     'data
     #f
     'constant
     mpi-vector-id
     (compiled-in-memory-mpis cim_0))))
(define make-declaration-instance-from-compiled-in-memory
  (lambda (cim_0)
    (let ((app_0 (compiled-in-memory-original-self cim_0)))
      (let ((app_1 (compiled-in-memory-requires cim_0)))
        (let ((app_2 (compiled-in-memory-recur-requires cim_0)))
          (let ((app_3 (compiled-in-memory-provides cim_0)))
            (let ((app_4 (compiled-in-memory-phase-to-link-module-uses cim_0)))
              (make-instance
               'decl
               #f
               'constant
               'self-mpi
               app_0
               'requires
               app_1
               'recur-requires
               app_2
               'provides
               app_3
               'phase-to-link-modules
               app_4
               'portal-stxes
               (compiled-in-memory-portal-stxes cim_0)))))))))
(define make-syntax-literal-data-instance-from-compiled-in-memory
  (lambda (cim_0)
    (make-instance
     'syntax-literal-data
     #f
     #f
     deserialize-syntax-id
     void
     deserialized-syntax-vector-id
     (compiled-in-memory-syntax-literals cim_0))))
(define empty-syntax-literals-instance/empty-namespace
  (make-instance
   'empty-stx/empty-ns
   #f
   'constant
   get-syntax-literal!-id
   (lambda (pos_0) #f)
   'get-encoded-root-expand-ctx
   'empty))
(define get-all-variables
  (lambda (phases-h_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (table_0 i_0)
            (begin
              (if i_0
                (call-with-values
                 (lambda () (hash-iterate-key+value phases-h_0 i_0))
                 (case-lambda
                  ((phase_0 linklet_0)
                   (let ((table_1
                          (let ((table_1
                                 (call-with-values
                                  (lambda ()
                                    (values
                                     phase_0
                                     (linklet-export-variables linklet_0)))
                                  (case-lambda
                                   ((key_0 val_0)
                                    (hash-set table_0 key_0 val_0))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))))
                            (values table_1))))
                     (for-loop_0 table_1 (hash-iterate-next phases-h_0 i_0))))
                  (args (raise-binding-result-arity-error 2 args))))
                table_0))))))
       (for-loop_0 hash2725 (hash-iterate-first phases-h_0))))))
(define eval-linklet*
  (lambda (l_0) (eval-linklet (force-compile-linklet l_0))))
(define check-provides-verbosity
  (lambda (who_0 verbosity_0)
    (if (let ((or-part_0 (not verbosity_0)))
          (if or-part_0 or-part_0 (eq? verbosity_0 'defined-names)))
      (void)
      (raise-argument-error who_0 "(or/c #f 'defined-names)" verbosity_0))))
(define provides->api-provides
  (lambda (provides_0 self_0 verbosity_0)
    (let ((defined-names?_0 (eq? verbosity_0 'defined-names)))
      (let ((extract_0
             (|#%name|
              extract
              (lambda (ok?_0)
                (begin
                  (let ((result-l_0
                         (reverse$1
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (fold-var_0 i_0)
                                  (begin
                                    (if i_0
                                      (call-with-values
                                       (lambda ()
                                         (hash-iterate-key+value
                                          provides_0
                                          i_0))
                                       (case-lambda
                                        ((phase_0 at-phase_0)
                                         (let ((fold-var_1
                                                (let ((id*_0
                                                       (reverse$1
                                                        (begin
                                                          (letrec*
                                                           ((for-loop_1
                                                             (|#%name|
                                                              for-loop
                                                              (lambda (fold-var_1
                                                                       i_1)
                                                                (begin
                                                                  (if i_1
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (hash-iterate-key+value
                                                                        at-phase_0
                                                                        i_1))
                                                                     (case-lambda
                                                                      ((sym_0
                                                                        b/p_0)
                                                                       (let ((fold-var_2
                                                                              (if (|#%app|
                                                                                   ok?_0
                                                                                   b/p_0)
                                                                                (let ((fold-var_2
                                                                                       (cons
                                                                                        (let ((b_0
                                                                                               (provided-as-binding
                                                                                                b/p_0)))
                                                                                          (let ((app_0
                                                                                                 (if (eq?
                                                                                                      self_0
                                                                                                      (module-binding-module
                                                                                                       b_0))
                                                                                                   null
                                                                                                   (reverse$1
                                                                                                    (let ((lst_0
                                                                                                           (cons
                                                                                                            b_0
                                                                                                            (module-binding-extra-nominal-bindings
                                                                                                             b_0))))
                                                                                                      (begin
                                                                                                        (letrec*
                                                                                                         ((for-loop_2
                                                                                                           (|#%name|
                                                                                                            for-loop
                                                                                                            (lambda (fold-var_2
                                                                                                                     lst_1)
                                                                                                              (begin
                                                                                                                (if (pair?
                                                                                                                     lst_1)
                                                                                                                  (let ((b_1
                                                                                                                         (unsafe-car
                                                                                                                          lst_1)))
                                                                                                                    (let ((rest_0
                                                                                                                           (unsafe-cdr
                                                                                                                            lst_1)))
                                                                                                                      (let ((fold-var_3
                                                                                                                             (let ((fold-var_3
                                                                                                                                    (cons
                                                                                                                                     (if (if (eqv?
                                                                                                                                              (module-binding-nominal-phase+space
                                                                                                                                               b_1)
                                                                                                                                              phase_0)
                                                                                                                                           (eq?
                                                                                                                                            (module-binding-nominal-sym
                                                                                                                                             b_1)
                                                                                                                                            sym_0)
                                                                                                                                           #f)
                                                                                                                                       (module-binding-nominal-module
                                                                                                                                        b_1)
                                                                                                                                       (let ((app_0
                                                                                                                                              (module-binding-nominal-module
                                                                                                                                               b_1)))
                                                                                                                                         (let ((app_1
                                                                                                                                                (module-binding-phase
                                                                                                                                                 b_1)))
                                                                                                                                           (let ((app_2
                                                                                                                                                  (module-binding-nominal-sym
                                                                                                                                                   b_1)))
                                                                                                                                             (list
                                                                                                                                              app_0
                                                                                                                                              app_1
                                                                                                                                              app_2
                                                                                                                                              (module-binding-nominal-phase+space
                                                                                                                                               b_1))))))
                                                                                                                                     fold-var_2)))
                                                                                                                               (values
                                                                                                                                fold-var_3))))
                                                                                                                        (for-loop_2
                                                                                                                         fold-var_3
                                                                                                                         rest_0))))
                                                                                                                  fold-var_2))))))
                                                                                                         (for-loop_2
                                                                                                          null
                                                                                                          lst_0))))))))
                                                                                            (list*
                                                                                             sym_0
                                                                                             app_0
                                                                                             (if defined-names?_0
                                                                                               (list
                                                                                                (module-binding-sym
                                                                                                 b_0))
                                                                                               null))))
                                                                                        fold-var_1)))
                                                                                  (values
                                                                                   fold-var_2))
                                                                                fold-var_1)))
                                                                         (for-loop_1
                                                                          fold-var_2
                                                                          (hash-iterate-next
                                                                           at-phase_0
                                                                           i_1))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))
                                                                    fold-var_1))))))
                                                           (for-loop_1
                                                            null
                                                            (hash-iterate-first
                                                             at-phase_0)))))))
                                                  (begin
                                                    #t
                                                    (letrec*
                                                     ((for-loop_1
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (fold-var_1)
                                                          (begin
                                                            (let ((fold-var_2
                                                                   (if (null?
                                                                        id*_0)
                                                                     fold-var_1
                                                                     (let ((fold-var_2
                                                                            (cons
                                                                             (cons
                                                                              phase_0
                                                                              (sort.1
                                                                               #f
                                                                               car
                                                                               id*_0
                                                                               symbol<?))
                                                                             fold-var_1)))
                                                                       (values
                                                                        fold-var_2)))))
                                                              fold-var_2))))))
                                                     (for-loop_1
                                                      fold-var_0))))))
                                           (for-loop_0
                                            fold-var_1
                                            (hash-iterate-next
                                             provides_0
                                             i_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      fold-var_0))))))
                             (for-loop_0
                              null
                              (hash-iterate-first provides_0)))))))
                    (sort.1 #f car result-l_0 phase+space<?)))))))
        (let ((app_0
               (extract_0
                (lambda (b/p_0) (not (provided-as-transformer? b/p_0))))))
          (values app_0 (extract_0 provided-as-transformer?)))))))
(define variables->api-nonprovides
  (lambda (provides_0 all-vars_0)
    (let ((result-l_0
           (reverse$1
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 i_0)
                    (begin
                      (if i_0
                        (call-with-values
                         (lambda () (hash-iterate-key+value all-vars_0 i_0))
                         (case-lambda
                          ((phase_0 vars_0)
                           (let ((fold-var_1
                                  (let ((id*_0
                                         (let ((syms_0
                                                (hash-ref
                                                 provides_0
                                                 phase_0
                                                 hash2610)))
                                           (reverse$1
                                            (begin
                                              (letrec*
                                               ((for-loop_1
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (fold-var_1 lst_0)
                                                    (begin
                                                      (if (pair? lst_0)
                                                        (let ((var-sym_0
                                                               (unsafe-car
                                                                lst_0)))
                                                          (let ((rest_0
                                                                 (unsafe-cdr
                                                                  lst_0)))
                                                            (let ((fold-var_2
                                                                   (if (hash-ref
                                                                        syms_0
                                                                        var-sym_0
                                                                        #f)
                                                                     fold-var_1
                                                                     (let ((fold-var_2
                                                                            (cons
                                                                             var-sym_0
                                                                             fold-var_1)))
                                                                       (values
                                                                        fold-var_2)))))
                                                              (for-loop_1
                                                               fold-var_2
                                                               rest_0))))
                                                        fold-var_1))))))
                                               (for-loop_1 null vars_0)))))))
                                    (begin
                                      #t
                                      (letrec*
                                       ((for-loop_1
                                         (|#%name|
                                          for-loop
                                          (lambda (fold-var_1)
                                            (begin
                                              (let ((fold-var_2
                                                     (if (null? id*_0)
                                                       fold-var_1
                                                       (let ((fold-var_2
                                                              (cons
                                                               (cons
                                                                phase_0
                                                                (sort.1
                                                                 #f
                                                                 #f
                                                                 id*_0
                                                                 symbol<?))
                                                               fold-var_1)))
                                                         (values
                                                          fold-var_2)))))
                                                fold-var_2))))))
                                       (for-loop_1 fold-var_0))))))
                             (for-loop_0
                              fold-var_1
                              (hash-iterate-next all-vars_0 i_0))))
                          (args (raise-binding-result-arity-error 2 args))))
                        fold-var_0))))))
               (for-loop_0 null (hash-iterate-first all-vars_0)))))))
      (sort.1 #f car result-l_0 phase+space<?))))
(define 1/compiled-expression?
  (|#%name|
   compiled-expression?
   (lambda (c_0)
     (begin
       (let ((or-part_0 (compiled-in-memory? c_0)))
         (if or-part_0
           or-part_0
           (let ((or-part_1 (linklet-directory?$1 c_0)))
             (if or-part_1 or-part_1 (1/linklet-bundle? c_0)))))))))
(define 1/compiled-module-expression?
  (|#%name|
   compiled-module-expression?
   (lambda (c_0)
     (begin
       (let ((ld_0 (compiled->linklet-directory-or-bundle c_0)))
         (let ((or-part_0
                (if (linklet-directory?$1 ld_0)
                  (if (let ((b_0
                             (hash-ref
                              (linklet-directory->hash$1 ld_0)
                              #f
                              #f)))
                        (if b_0
                          (hash-ref (1/linklet-bundle->hash b_0) 'decl #f)
                          #f))
                    #t
                    #f)
                  #f)))
           (if or-part_0
             or-part_0
             (if (1/linklet-bundle? ld_0)
               (if (hash-ref (1/linklet-bundle->hash ld_0) 'decl #f) #t #f)
               #f))))))))
(define compiled->linklet-directory-or-bundle
  (lambda (c_0)
    (if (compiled-in-memory? c_0)
      (compiled-in-memory-linklet-directory c_0)
      c_0)))
(define normalize-to-linklet-directory
  (lambda (c_0)
    (if (linklet-directory?$1 (compiled->linklet-directory-or-bundle c_0))
      c_0
      (if (1/linklet-bundle? c_0)
        (1/hash->linklet-directory (hasheq #f c_0))
        (if (compiled-in-memory? c_0)
          (let ((linklet-directory1_0
                 (normalize-to-linklet-directory
                  (compiled-in-memory-linklet-directory c_0))))
            (let ((app_0 (compiled-in-memory-original-self c_0)))
              (let ((app_1 (compiled-in-memory-requires c_0)))
                (let ((app_2 (compiled-in-memory-recur-requires c_0)))
                  (let ((app_3 (compiled-in-memory-provides c_0)))
                    (let ((app_4
                           (compiled-in-memory-phase-to-link-module-uses c_0)))
                      (let ((app_5
                             (compiled-in-memory-compile-time-inspector c_0)))
                        (let ((app_6
                               (compiled-in-memory-phase-to-link-extra-inspectorsss
                                c_0)))
                          (let ((app_7 (compiled-in-memory-portal-stxes c_0)))
                            (let ((app_8 (compiled-in-memory-mpis c_0)))
                              (let ((app_9
                                     (compiled-in-memory-syntax-literals c_0)))
                                (let ((app_10
                                       (compiled-in-memory-pre-compiled-in-memorys
                                        c_0)))
                                  (let ((app_11
                                         (compiled-in-memory-post-compiled-in-memorys
                                          c_0)))
                                    (let ((app_12
                                           (compiled-in-memory-namespace-scopes
                                            c_0)))
                                      (compiled-in-memory1.1
                                       linklet-directory1_0
                                       app_0
                                       app_1
                                       app_2
                                       app_3
                                       app_4
                                       app_5
                                       app_6
                                       app_7
                                       app_8
                                       app_9
                                       app_10
                                       app_11
                                       app_12
                                       (compiled-in-memory-purely-functional?
                                        c_0))))))))))))))))
          (raise-argument-error 'struct-copy "compiled-in-memory?" c_0))))))
(define 1/module-compiled-name
  (|#%name|
   module-compiled-name
   (case-lambda
    ((c_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-name
            "compiled-module-expression?"
            c_0))
         (module-compiled-current-name c_0))))
    ((c_0 name_0)
     (begin
       (if (1/compiled-module-expression? c_0)
         (void)
         (raise-argument-error
          'module-compiled-name
          "compiled-module-expression?"
          c_0))
       (begin
         (if (let ((or-part_0 (symbol? name_0)))
               (if or-part_0
                 or-part_0
                 (if (pair? name_0)
                   (if (list? name_0) (andmap_2344 symbol? name_0) #f)
                   #f)))
           (void)
           (raise-argument-error
            'module-compiled-name
            "(or/c symbol? (cons/c symbol? (non-empty-listof symbol?)))"
            name_0))
         (call-with-values
          (lambda ()
            (if (symbol? name_0)
              (values name_0 null)
              (let ((r_0 (reverse$1 name_0)))
                (let ((app_0 (car r_0)))
                  (values app_0 (reverse$1 (cdr r_0)))))))
          (case-lambda
           ((i-name_0 prefix_0) (change-module-name c_0 i-name_0 prefix_0))
           (args (raise-binding-result-arity-error 2 args))))))))))
(define module-compiled-current-name
  (lambda (c_0)
    (let ((ld_0 (compiled->linklet-directory-or-bundle c_0)))
      (let ((b_0
             (if (1/linklet-bundle? ld_0)
               ld_0
               (hash-ref (linklet-directory->hash$1 ld_0) #f))))
        (hash-ref (1/linklet-bundle->hash b_0) 'name)))))
(define module-compiled-immediate-name
  (lambda (c_0)
    (let ((n_0 (module-compiled-current-name c_0)))
      (if (pair? n_0) (car (reverse$1 n_0)) n_0))))
(define change-module-name
  (lambda (c_0 name_0 prefix_0)
    (let ((full-name_0
           (if (null? prefix_0) name_0 (append prefix_0 (list name_0)))))
      (let ((next-prefix_0 (if (null? prefix_0) (list name_0) full-name_0)))
        (let ((recur_0
               (|#%name|
                recur
                (lambda (sub-c_0 name_1)
                  (begin
                    (if (let ((app_0 (module-compiled-current-name sub-c_0)))
                          (equal? app_0 (append next-prefix_0 (list name_1))))
                      sub-c_0
                      (change-module-name sub-c_0 name_1 next-prefix_0)))))))
          (if (compiled-in-memory? c_0)
            (let ((change-submodule-name_0
                   (|#%name|
                    change-submodule-name
                    (lambda (sub-c_0)
                      (begin
                        (recur_0
                         sub-c_0
                         (module-compiled-immediate-name sub-c_0)))))))
              (let ((pre-compiled-in-memorys_0
                     (map_1346
                      change-submodule-name_0
                      (compiled-in-memory-pre-compiled-in-memorys c_0))))
                (let ((post-compiled-in-memorys_0
                       (map_1346
                        change-submodule-name_0
                        (compiled-in-memory-post-compiled-in-memorys c_0))))
                  (if (compiled-in-memory? c_0)
                    (let ((linklet-directory9_0
                           (let ((temp10_0
                                  (update-one-name
                                   (let ((ld_0
                                          (compiled->linklet-directory-or-bundle
                                           c_0)))
                                     (if (1/linklet-bundle? ld_0)
                                       ld_0
                                       (hash-ref
                                        (linklet-directory->hash$1 ld_0)
                                        #f)))
                                   full-name_0)))
                             (let ((temp11_0 (symbol? full-name_0)))
                               (let ((temp12_0
                                      (append
                                       pre-compiled-in-memorys_0
                                       post-compiled-in-memorys_0)))
                                 (let ((temp11_1 temp11_0) (temp10_1 temp10_0))
                                   (rebuild-linklet-directory.1
                                    temp11_1
                                    temp10_1
                                    temp12_0)))))))
                      (let ((app_0 (compiled-in-memory-original-self c_0)))
                        (let ((app_1 (compiled-in-memory-requires c_0)))
                          (let ((app_2
                                 (compiled-in-memory-recur-requires c_0)))
                            (let ((app_3 (compiled-in-memory-provides c_0)))
                              (let ((app_4
                                     (compiled-in-memory-phase-to-link-module-uses
                                      c_0)))
                                (let ((app_5
                                       (compiled-in-memory-compile-time-inspector
                                        c_0)))
                                  (let ((app_6
                                         (compiled-in-memory-phase-to-link-extra-inspectorsss
                                          c_0)))
                                    (let ((app_7
                                           (compiled-in-memory-portal-stxes
                                            c_0)))
                                      (let ((app_8
                                             (compiled-in-memory-mpis c_0)))
                                        (let ((app_9
                                               (compiled-in-memory-syntax-literals
                                                c_0)))
                                          (let ((app_10
                                                 (compiled-in-memory-namespace-scopes
                                                  c_0)))
                                            (compiled-in-memory1.1
                                             linklet-directory9_0
                                             app_0
                                             app_1
                                             app_2
                                             app_3
                                             app_4
                                             app_5
                                             app_6
                                             app_7
                                             app_8
                                             app_9
                                             pre-compiled-in-memorys_0
                                             post-compiled-in-memorys_0
                                             app_10
                                             (compiled-in-memory-purely-functional?
                                              c_0))))))))))))))
                    (raise-argument-error
                     'struct-copy
                     "compiled-in-memory?"
                     c_0)))))
            (if (linklet-directory?$1 c_0)
              (1/hash->linklet-directory
               (let ((ht_0 (linklet-directory->hash$1 c_0)))
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (table_0 i_0)
                         (begin
                           (if i_0
                             (call-with-values
                              (lambda () (hash-iterate-key+value ht_0 i_0))
                              (case-lambda
                               ((key_0 val_0)
                                (let ((table_1
                                       (let ((table_1
                                              (call-with-values
                                               (lambda ()
                                                 (values
                                                  key_0
                                                  (if (not key_0)
                                                    (update-one-name
                                                     val_0
                                                     full-name_0)
                                                    (recur_0 val_0 key_0))))
                                               (case-lambda
                                                ((key_1 val_1)
                                                 (hash-set
                                                  table_0
                                                  key_1
                                                  val_1))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))
                                         (values table_1))))
                                  (for-loop_0
                                   table_1
                                   (hash-iterate-next ht_0 i_0))))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             table_0))))))
                    (for-loop_0 hash2610 (hash-iterate-first ht_0))))))
              (update-one-name c_0 full-name_0))))))))
(define update-one-name
  (lambda (lb_0 name_0)
    (1/hash->linklet-bundle
     (hash-set (1/linklet-bundle->hash lb_0) 'name name_0))))
(define rebuild-linklet-directory.1
  (|#%name|
   rebuild-linklet-directory
   (lambda (bundle-ok?1_0 main3_0 submods4_0)
     (begin
       (if (if (null? submods4_0) bundle-ok?1_0 #f)
         main3_0
         (1/hash->linklet-directory
          (hash-set
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (ht_0 lst_0)
                   (begin
                     (if (pair? lst_0)
                       (let ((submod_0 (unsafe-car lst_0)))
                         (let ((rest_0 (unsafe-cdr lst_0)))
                           (let ((ht_1
                                  (let ((ht_1
                                         (let ((name_0
                                                (module-compiled-immediate-name
                                                 submod_0)))
                                           (if (hash-ref ht_0 name_0 #f)
                                             (raise-arguments-error
                                              'module-compiled-submodules
                                              "change would result in duplicate submodule name"
                                              "name"
                                              name_0)
                                             (hash-set
                                              ht_0
                                              name_0
                                              (compiled->linklet-directory-or-bundle
                                               submod_0))))))
                                    (values ht_1))))
                             (for-loop_0 ht_1 rest_0))))
                       ht_0))))))
              (for-loop_0 hash2610 submods4_0)))
           #f
           main3_0)))))))
(define 1/module-compiled-submodules
  (|#%name|
   module-compiled-submodules
   (case-lambda
    ((c_0 non-star?_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-submodules
            "compiled-module-expression?"
            c_0))
         (if (compiled-in-memory? c_0)
           (if non-star?_0
             (compiled-in-memory-pre-compiled-in-memorys c_0)
             (compiled-in-memory-post-compiled-in-memorys c_0))
           (if (linklet-directory?$1 c_0)
             (let ((ht_0 (linklet-directory->hash$1 c_0)))
               (let ((bh_0 (1/linklet-bundle->hash (hash-ref ht_0 #f))))
                 (let ((names_0
                        (hash-ref bh_0 (if non-star?_0 'pre 'post) null)))
                   (reverse$1
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_0)
                            (begin
                              (if (pair? lst_0)
                                (let ((name_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (hash-ref ht_0 name_0)
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 rest_0))))
                                fold-var_0))))))
                       (for-loop_0 null names_0)))))))
             null)))))
    ((c_0 non-star?_0 submods_0)
     (begin
       (if (1/compiled-module-expression? c_0)
         (void)
         (raise-argument-error
          'module-compiled-submodules
          "compiled-module-expression?"
          c_0))
       (if (if (list? submods_0)
             (andmap_2344 1/compiled-module-expression? submods_0)
             #f)
         (void)
         (raise-argument-error
          'module-compiled-submodules
          "(listof compiled-module-expression?)"
          submods_0))
       (if (if (null? submods_0)
             (let ((or-part_0
                    (1/linklet-bundle?
                     (compiled->linklet-directory-or-bundle c_0))))
               (if or-part_0
                 or-part_0
                 (if (compiled-in-memory? c_0)
                   (null?
                    (if non-star?_0
                      (compiled-in-memory-pre-compiled-in-memorys c_0)
                      (compiled-in-memory-post-compiled-in-memorys c_0)))
                   #f)))
             #f)
         c_0
         (if (if (compiled-in-memory? c_0)
               (andmap_2344 compiled-in-memory? submods_0)
               #f)
           (let ((pre-compiled-in-memorys_0
                  (if non-star?_0
                    submods_0
                    (compiled-in-memory-pre-compiled-in-memorys c_0))))
             (let ((post-compiled-in-memorys_0
                    (if non-star?_0
                      (compiled-in-memory-post-compiled-in-memorys c_0)
                      submods_0)))
               (let ((n-c_0 (normalize-to-linklet-directory c_0)))
                 (fixup-submodule-names
                  (if (compiled-in-memory? n-c_0)
                    (let ((linklet-directory4_0
                           (let ((temp5_0
                                  (reset-submodule-names
                                   (hash-ref
                                    (linklet-directory->hash$1
                                     (compiled->linklet-directory-or-bundle
                                      n-c_0))
                                    #f)
                                   non-star?_0
                                   submods_0)))
                             (let ((temp6_0
                                    (symbol?
                                     (module-compiled-current-name c_0))))
                               (let ((temp7_0
                                      (append
                                       pre-compiled-in-memorys_0
                                       post-compiled-in-memorys_0)))
                                 (let ((temp6_1 temp6_0) (temp5_1 temp5_0))
                                   (rebuild-linklet-directory.1
                                    temp6_1
                                    temp5_1
                                    temp7_0)))))))
                      (let ((app_0 (compiled-in-memory-original-self n-c_0)))
                        (let ((app_1 (compiled-in-memory-requires n-c_0)))
                          (let ((app_2
                                 (compiled-in-memory-recur-requires n-c_0)))
                            (let ((app_3 (compiled-in-memory-provides n-c_0)))
                              (let ((app_4
                                     (compiled-in-memory-phase-to-link-module-uses
                                      n-c_0)))
                                (let ((app_5
                                       (compiled-in-memory-compile-time-inspector
                                        n-c_0)))
                                  (let ((app_6
                                         (compiled-in-memory-phase-to-link-extra-inspectorsss
                                          n-c_0)))
                                    (let ((app_7
                                           (compiled-in-memory-portal-stxes
                                            n-c_0)))
                                      (let ((app_8
                                             (compiled-in-memory-mpis n-c_0)))
                                        (let ((app_9
                                               (compiled-in-memory-syntax-literals
                                                n-c_0)))
                                          (let ((app_10
                                                 (compiled-in-memory-namespace-scopes
                                                  n-c_0)))
                                            (compiled-in-memory1.1
                                             linklet-directory4_0
                                             app_0
                                             app_1
                                             app_2
                                             app_3
                                             app_4
                                             app_5
                                             app_6
                                             app_7
                                             app_8
                                             app_9
                                             pre-compiled-in-memorys_0
                                             post-compiled-in-memorys_0
                                             app_10
                                             (compiled-in-memory-purely-functional?
                                              n-c_0))))))))))))))
                    (raise-argument-error
                     'struct-copy
                     "compiled-in-memory?"
                     n-c_0))))))
           (let ((n-c_0 (normalize-to-linklet-directory c_0)))
             (fixup-submodule-names
              (let ((temp8_0
                     (reset-submodule-names
                      (hash-ref
                       (linklet-directory->hash$1
                        (compiled->linklet-directory-or-bundle n-c_0))
                       #f)
                      non-star?_0
                      submods_0)))
                (let ((temp9_0
                       (map_1346
                        compiled->linklet-directory-or-bundle
                        (let ((app_0
                               (if non-star?_0
                                 submods_0
                                 (1/module-compiled-submodules c_0 #t))))
                          (append
                           app_0
                           (if non-star?_0
                             (1/module-compiled-submodules c_0 #f)
                             submods_0))))))
                  (let ((temp8_1 temp8_0))
                    (rebuild-linklet-directory.1
                     #f
                     temp8_1
                     temp9_0)))))))))))))
(define fixup-submodule-names
  (lambda (c_0) (1/module-compiled-name c_0 (1/module-compiled-name c_0))))
(define reset-submodule-names
  (lambda (b_0 pre?_0 submods_0)
    (1/hash->linklet-bundle
     (let ((app_0 (1/linklet-bundle->hash b_0)))
       (hash-set
        app_0
        (if pre?_0 'pre 'post)
        (let ((temp10_0 (map_1346 module-compiled-immediate-name submods_0)))
          (sort.1 #f #f temp10_0 symbol<?)))))))
(define 1/module-compiled-language-info
  (|#%name|
   module-compiled-language-info
   (lambda (c_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-language-info
            "compiled-module-expression?"
            c_0))
         (let ((h_0 (compiled-module->h c_0)))
           (hash-ref h_0 'language-info #f)))))))
(define 1/module-compiled-imports
  (|#%name|
   module-compiled-imports
   (lambda (c_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-imports
            "compiled-module-expression?"
            c_0))
         (let ((inst_0 (compiled-module->declaration-instance c_0)))
           (instance-variable-value inst_0 'requires)))))))
(define 1/module-compiled-exports
  (let ((module-compiled-exports_0
         (|#%name|
          module-compiled-exports
          (lambda (c2_0 verbosity1_0)
            (begin
              (begin
                (if (1/compiled-module-expression? c2_0)
                  (void)
                  (raise-argument-error
                   'module-compiled-exports
                   "compiled-module-expression?"
                   c2_0))
                (begin
                  (check-provides-verbosity
                   'module-compiled-exports
                   verbosity1_0)
                  (let ((inst_0 (compiled-module->declaration-instance c2_0)))
                    (let ((app_0 (instance-variable-value inst_0 'provides)))
                      (provides->api-provides
                       app_0
                       (instance-variable-value inst_0 'self-mpi)
                       verbosity1_0))))))))))
    (|#%name|
     module-compiled-exports
     (case-lambda
      ((c_0) (begin (module-compiled-exports_0 c_0 #f)))
      ((c_0 verbosity1_0) (module-compiled-exports_0 c_0 verbosity1_0))))))
(define 1/module-compiled-indirect-exports
  (|#%name|
   module-compiled-indirect-exports
   (lambda (c_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-indirect-exports
            "compiled-module-expression?"
            c_0))
         (call-with-values
          (lambda () (compiled-module->h+declaration-instance c_0))
          (case-lambda
           ((h_0 inst_0)
            (let ((min-phase_0 (hash-ref h_0 'min-phase 0)))
              (let ((max-phase_0 (hash-ref h_0 'max-phase 0)))
                (let ((app_0 (instance-variable-value inst_0 'provides)))
                  (variables->api-nonprovides
                   app_0
                   (let ((end_0 (add1 max-phase_0)))
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (table_0 pos_0)
                             (begin
                               (if (< pos_0 end_0)
                                 (let ((table_1
                                        (let ((table_1
                                               (call-with-values
                                                (lambda ()
                                                  (let ((linklet_0
                                                         (hash-ref
                                                          h_0
                                                          pos_0
                                                          #f)))
                                                    (values
                                                     pos_0
                                                     (if linklet_0
                                                       (linklet-export-variables
                                                        linklet_0)
                                                       null))))
                                                (case-lambda
                                                 ((key_0 val_0)
                                                  (hash-set
                                                   table_0
                                                   key_0
                                                   val_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))))
                                          (values table_1))))
                                   (for-loop_0 table_1 (+ pos_0 1)))
                                 table_0))))))
                        (for-loop_0 hash2725 min-phase_0)))))))))
           (args (raise-binding-result-arity-error 2 args)))))))))
(define 1/module-compiled-cross-phase-persistent?
  (|#%name|
   module-compiled-cross-phase-persistent?
   (lambda (c_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-cross-phase-persistent?
            "compiled-module-expression?"
            c_0))
         (let ((h_0 (compiled-module->h c_0)))
           (hash-ref h_0 'cross-phase-persistent? #f)))))))
(define 1/module-compiled-realm
  (|#%name|
   module-compiled-realm
   (lambda (c_0)
     (begin
       (begin
         (if (1/compiled-module-expression? c_0)
           (void)
           (raise-argument-error
            'module-compiled-realm
            "compiled-module-expression?"
            c_0))
         (let ((h_0 (compiled-module->h c_0)))
           (hash-ref h_0 'realm 'racket)))))))
(define compile-module.1
  (|#%name|
   compile-module
   (lambda (force-linklet-directory?1_0
            modules-being-compiled4_0
            need-compiled-submodule-rename?5_0
            serializable?2_0
            to-correlated-linklet?3_0
            p11_0
            cctx12_0)
     (begin
       (let ((modules-being-compiled_0
              (if (eq? modules-being-compiled4_0 unsafe-undefined)
                (make-hasheq)
                modules-being-compiled4_0)))
         (let ((full-module-name_0
                (let ((parent-full-name_0
                       (compile-context-full-module-name cctx12_0)))
                  (let ((name_0 (syntax-e$1 (parsed-module-name-id p11_0))))
                    (let ((parent-full-name_1 parent-full-name_0))
                      (if parent-full-name_1
                        (append
                         (if (list? parent-full-name_1)
                           parent-full-name_1
                           (list parent-full-name_1))
                         (list name_0))
                        name_0))))))
           (let ((compiled-submodules_0
                  (parsed-module-compiled-submodules p11_0)))
             (let ((get-submodules_0
                    (|#%name|
                     get-submodules
                     (lambda (star?_0)
                       (begin
                         (reverse$1
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (fold-var_0 i_0)
                                  (begin
                                    (if i_0
                                      (call-with-values
                                       (lambda ()
                                         (hash-iterate-key+value
                                          compiled-submodules_0
                                          i_0))
                                       (case-lambda
                                        ((name_0 star?+compiled_0)
                                         (let ((fold-var_1
                                                (if (eq?
                                                     star?_0
                                                     (car star?+compiled_0))
                                                  (let ((fold-var_1
                                                         (cons
                                                          (cons
                                                           name_0
                                                           (if (if need-compiled-submodule-rename?5_0
                                                                 (not
                                                                  (parsed-module-compiled-module
                                                                   p11_0))
                                                                 #f)
                                                             (update-submodule-names
                                                              (cdr
                                                               star?+compiled_0)
                                                              name_0
                                                              full-module-name_0)
                                                             (cdr
                                                              star?+compiled_0)))
                                                          fold-var_0)))
                                                    (values fold-var_1))
                                                  fold-var_0)))
                                           (for-loop_0
                                            fold-var_1
                                            (hash-iterate-next
                                             compiled-submodules_0
                                             i_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      fold-var_0))))))
                             (for-loop_0
                              null
                              (hash-iterate-first
                               compiled-submodules_0))))))))))
               (let ((pre-submodules_0
                      (let ((temp33_0 (get-submodules_0 #f)))
                        (sort.1 #f car temp33_0 symbol<?))))
                 (let ((post-submodules_0
                        (let ((temp36_0 (get-submodules_0 #t)))
                          (sort.1 #f car temp36_0 symbol<?))))
                   (let ((c1_0 (parsed-module-compiled-module p11_0)))
                     (if c1_0
                       (call-with-values
                        (lambda ()
                          (if (symbol? full-module-name_0)
                            (values full-module-name_0 null)
                            (let ((r_0 (reverse$1 full-module-name_0)))
                              (let ((app_0 (car r_0)))
                                (values app_0 (reverse$1 (cdr r_0)))))))
                        (case-lambda
                         ((name_0 prefix_0)
                          (let ((m_0
                                 (change-module-name c1_0 name_0 prefix_0)))
                            (let ((app_0
                                   (1/module-compiled-submodules
                                    m_0
                                    #t
                                    (map_1346 cdr pre-submodules_0))))
                              (1/module-compiled-submodules
                               app_0
                               #f
                               (map_1346 cdr post-submodules_0)))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (compile-module-from-parsed.1
                        force-linklet-directory?1_0
                        full-module-name_0
                        modules-being-compiled_0
                        need-compiled-submodule-rename?5_0
                        post-submodules_0
                        pre-submodules_0
                        serializable?2_0
                        to-correlated-linklet?3_0
                        p11_0
                        cctx12_0)))))))))))))
(define compile-module-from-parsed.1
  (|#%name|
   compile-module-from-parsed
   (lambda (force-linklet-directory?15_0
            full-module-name14_0
            modules-being-compiled18_0
            need-compiled-submodule-rename?21_0
            post-submodules20_0
            pre-submodules19_0
            serializable?16_0
            to-correlated-linklet?17_0
            p30_0
            cctx31_0)
     (begin
       (begin
         (if log-performance?
           (start-performance-region 'compile 'module)
           (void))
         (begin0
           (let ((enclosing-self_0 (compile-context-module-self cctx31_0)))
             (let ((self_0 (parsed-module-self p30_0)))
               (let ((requires_0 (parsed-module-requires p30_0)))
                 (let ((recur-requires_0 (parsed-module-recur-requires p30_0)))
                   (let ((provides_0 (parsed-module-provides p30_0)))
                     (let ((encoded-root-expand-ctx-box_0
                            (box (parsed-module-encoded-root-ctx p30_0))))
                       (let ((body-context-simple?_0
                              (parsed-module-root-ctx-simple? p30_0)))
                         (let ((language-info_0
                                (filter-language-info
                                 (syntax-property$1
                                  (parsed-s p30_0)
                                  'module-language))))
                           (let ((realm_0 (parsed-module-realm p30_0)))
                             (let ((bodys_0 (parsed-module-body p30_0)))
                               (let ((portal-syntaxes_0
                                      (parsed-module-portal-syntaxes p30_0)))
                                 (let ((empty-result-for-module->namespace?_0
                                        #f))
                                   (let ((mpis_0
                                          (make-module-path-index-table)))
                                     (let ((body-cctx_0
                                            (if (compile-context? cctx31_0)
                                              (compile-context1.1
                                               (compile-context-namespace
                                                cctx31_0)
                                               0
                                               self_0
                                               self_0
                                               full-module-name14_0
                                               #t
                                               (compile-context-header
                                                cctx31_0))
                                              (raise-argument-error
                                               'struct-copy
                                               "compile-context?"
                                               cctx31_0))))
                                       (let ((cross-phase-persistent?_0 #f))
                                         (let ((unsafe?-box_0 (box #f)))
                                           (let ((side-effects_0
                                                  (make-hasheqv)))
                                             (let ((check-side-effects!_0
                                                    (|#%name|
                                                     check-side-effects!
                                                     (lambda (e_0
                                                              expected-results_0
                                                              phase_0
                                                              required-reference?_0)
                                                       (begin
                                                         (if (hash-ref
                                                              side-effects_0
                                                              phase_0
                                                              #f)
                                                           (void)
                                                           (if (any-side-effects?.1
                                                                hash2610
                                                                hash2610
                                                                required-reference?_0
                                                                e_0
                                                                expected-results_0)
                                                             (hash-set!
                                                              side-effects_0
                                                              phase_0
                                                              #t)
                                                             (void))))))))
                                               (begin
                                                 (if (if need-compiled-submodule-rename?21_0
                                                       modules-being-compiled18_0
                                                       #f)
                                                   (begin
                                                     (if (null?
                                                          post-submodules20_0)
                                                       (void)
                                                       (error
                                                        "internal error: have post submodules, but not already compiled"))
                                                     (register-compiled-submodules
                                                      modules-being-compiled18_0
                                                      pre-submodules19_0
                                                      self_0))
                                                   (void))
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((temp60_0
                                                           (list
                                                            (list
                                                             get-syntax-literal!-id)
                                                            (list
                                                             set-transformer!-id))))
                                                      (let ((temp61_0
                                                             (list
                                                              empty-syntax-literals-instance
                                                              empty-module-body-instance)))
                                                        (let ((temp62_0
                                                               '((void))))
                                                          (let ((temp63_0
                                                                 '(0)))
                                                            (let ((temp67_0
                                                                   (lambda (body_0
                                                                            cctx_0)
                                                                     (if (|parsed-#%declare?|
                                                                          body_0)
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_0
                                                                                 (parsed-s
                                                                                  body_0)))
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (let ((s_1
                                                                                      (if (syntax?$1
                                                                                           s_0)
                                                                                        (syntax-e$1
                                                                                         s_0)
                                                                                        s_0)))
                                                                                 (if (pair?
                                                                                      s_1)
                                                                                   (let ((_0
                                                                                          (let ((s_2
                                                                                                 (car
                                                                                                  s_1)))
                                                                                            s_2)))
                                                                                     (let ((kw77_0
                                                                                            (let ((s_2
                                                                                                   (cdr
                                                                                                    s_1)))
                                                                                              (let ((s_3
                                                                                                     (if (syntax?$1
                                                                                                          s_2)
                                                                                                       (syntax-e$1
                                                                                                        s_2)
                                                                                                       s_2)))
                                                                                                (let ((flat-s_0
                                                                                                       (to-syntax-list.1
                                                                                                        s_3)))
                                                                                                  (if (not
                                                                                                       flat-s_0)
                                                                                                    (raise-syntax-error$1
                                                                                                     #f
                                                                                                     "bad syntax"
                                                                                                     s_0)
                                                                                                    flat-s_0))))))
                                                                                       (let ((_1
                                                                                              _0))
                                                                                         (values
                                                                                          _1
                                                                                          kw77_0))))
                                                                                   (raise-syntax-error$1
                                                                                    #f
                                                                                    "bad syntax"
                                                                                    s_0))))
                                                                             (case-lambda
                                                                              ((_0
                                                                                kw75_0)
                                                                               (values
                                                                                #t
                                                                                _0
                                                                                kw75_0))
                                                                              (args
                                                                               (raise-binding-result-arity-error
                                                                                2
                                                                                args))))))
                                                                        (case-lambda
                                                                         ((ok?_0
                                                                           _0
                                                                           kw75_0)
                                                                          (begin
                                                                            (begin
                                                                              (letrec*
                                                                               ((for-loop_0
                                                                                 (|#%name|
                                                                                  for-loop
                                                                                  (lambda (lst_0)
                                                                                    (begin
                                                                                      (if (pair?
                                                                                           lst_0)
                                                                                        (let ((kw_0
                                                                                               (unsafe-car
                                                                                                lst_0)))
                                                                                          (let ((rest_0
                                                                                                 (unsafe-cdr
                                                                                                  lst_0)))
                                                                                            (begin
                                                                                              (begin
                                                                                                (if (eq?
                                                                                                     (syntax-e$1
                                                                                                      kw_0)
                                                                                                     kw2208)
                                                                                                  (set! cross-phase-persistent?_0
                                                                                                    #t)
                                                                                                  (void))
                                                                                                (if (eq?
                                                                                                     (syntax-e$1
                                                                                                      kw_0)
                                                                                                     kw2910)
                                                                                                  (begin
                                                                                                    (set! empty-result-for-module->namespace?_0
                                                                                                      #t)
                                                                                                    (set-box!
                                                                                                     encoded-root-expand-ctx-box_0
                                                                                                     #f))
                                                                                                  (void))
                                                                                                (if (eq?
                                                                                                     (syntax-e$1
                                                                                                      kw_0)
                                                                                                     kw2838)
                                                                                                  (set-box!
                                                                                                   unsafe?-box_0
                                                                                                   #t)
                                                                                                  (void)))
                                                                                              (for-loop_0
                                                                                               rest_0))))
                                                                                        (values)))))))
                                                                               (for-loop_0
                                                                                kw75_0)))
                                                                            (void)
                                                                            #f))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           3
                                                                           args))))
                                                                       #f))))
                                                              (let ((temp68_0
                                                                     (lambda (mod-name_0
                                                                              phase_0)
                                                                       (let ((ht_0
                                                                              (if modules-being-compiled18_0
                                                                                (hash-ref
                                                                                 modules-being-compiled18_0
                                                                                 mod-name_0
                                                                                 #f)
                                                                                #f)))
                                                                         (if ht_0
                                                                           (hash-ref
                                                                            ht_0
                                                                            phase_0
                                                                            #f)
                                                                           #f)))))
                                                                (compile-forms.1
                                                                 temp61_0
                                                                 temp60_0
                                                                 temp62_0
                                                                 check-side-effects!_0
                                                                 void
                                                                 encoded-root-expand-ctx-box_0
                                                                 temp63_0
                                                                 temp68_0
                                                                 #t
                                                                 #t
                                                                 temp67_0
                                                                 realm_0
                                                                 body-context-simple?_0
                                                                 serializable?16_0
                                                                 to-correlated-linklet?17_0
                                                                 unsafe?-box_0
                                                                 bodys_0
                                                                 body-cctx_0
                                                                 mpis_0))))))))
                                                  (case-lambda
                                                   ((body-linklets_0
                                                     body-min-phase_0
                                                     body-max-phase_0
                                                     phase-to-link-module-uses_0
                                                     phase-to-link-module-uses-expr_0
                                                     phase-to-link-extra-inspectorsss_0
                                                     syntax-literals_0
                                                     root-ctx-pos_0)
                                                    (call-with-values
                                                     (lambda ()
                                                       (add-portal-syntaxes
                                                        syntax-literals_0
                                                        portal-syntaxes_0
                                                        body-max-phase_0
                                                        body-min-phase_0))
                                                     (case-lambda
                                                      ((portal-stxes_0
                                                        max-phase_0
                                                        min-phase_0)
                                                       (begin
                                                         (if modules-being-compiled18_0
                                                           (let ((app_0
                                                                  (1/module-path-index-resolve
                                                                   self_0)))
                                                             (hash-set!
                                                              modules-being-compiled18_0
                                                              app_0
                                                              (begin
                                                                (letrec*
                                                                 ((for-loop_0
                                                                   (|#%name|
                                                                    for-loop
                                                                    (lambda (table_0
                                                                             i_0)
                                                                      (begin
                                                                        (if i_0
                                                                          (call-with-values
                                                                           (lambda ()
                                                                             (hash-iterate-key+value
                                                                              body-linklets_0
                                                                              i_0))
                                                                           (case-lambda
                                                                            ((phase_0
                                                                              linklet_0)
                                                                             (let ((table_1
                                                                                    (let ((table_1
                                                                                           (call-with-values
                                                                                            (lambda ()
                                                                                              (values
                                                                                               phase_0
                                                                                               (let ((app_1
                                                                                                      (hash-ref
                                                                                                       phase-to-link-module-uses_0
                                                                                                       phase_0
                                                                                                       #f)))
                                                                                                 (module-linklet-info2.1
                                                                                                  linklet_0
                                                                                                  app_1
                                                                                                  self_0
                                                                                                  #f
                                                                                                  #f
                                                                                                  (if phase-to-link-extra-inspectorsss_0
                                                                                                    (hash-ref
                                                                                                     phase-to-link-extra-inspectorsss_0
                                                                                                     phase_0
                                                                                                     #f)
                                                                                                    #f)))))
                                                                                            (case-lambda
                                                                                             ((key_0
                                                                                               val_0)
                                                                                              (hash-set
                                                                                               table_0
                                                                                               key_0
                                                                                               val_0))
                                                                                             (args
                                                                                              (raise-binding-result-arity-error
                                                                                               2
                                                                                               args))))))
                                                                                      (values
                                                                                       table_1))))
                                                                               (for-loop_0
                                                                                table_1
                                                                                (hash-iterate-next
                                                                                 body-linklets_0
                                                                                 i_0))))
                                                                            (args
                                                                             (raise-binding-result-arity-error
                                                                              2
                                                                              args))))
                                                                          table_0))))))
                                                                 (for-loop_0
                                                                  hash2610
                                                                  (hash-iterate-first
                                                                   body-linklets_0))))))
                                                           (void))
                                                         (let ((declaration-linklet_0
                                                                (if serializable?16_0
                                                                  (let ((s_0
                                                                         (generate-module-declaration-linklet
                                                                          mpis_0
                                                                          self_0
                                                                          requires_0
                                                                          recur-requires_0
                                                                          provides_0
                                                                          phase-to-link-module-uses-expr_0
                                                                          portal-stxes_0)))
                                                                    (if to-correlated-linklet?17_0
                                                                      (begin-unsafe
                                                                       (correlated-linklet1.1
                                                                        s_0
                                                                        'decl
                                                                        #f))
                                                                      (begin
                                                                        (if log-performance?
                                                                          (start-performance-region
                                                                           'compile
                                                                           'module
                                                                           'linklet)
                                                                          (void))
                                                                        (begin0
                                                                          (compile-linklet
                                                                           s_0
                                                                           'decl)
                                                                          (if log-performance?
                                                                            (end-performance-region)
                                                                            (void))))))
                                                                  #f)))
                                                           (let ((syntax-literals-linklet_0
                                                                  (if (not
                                                                       (begin-unsafe
                                                                        (null?
                                                                         (syntax-literals-stxes
                                                                          syntax-literals_0))))
                                                                    (let ((app_0
                                                                           (list
                                                                            deserialize-imports
                                                                            (list
                                                                             mpi-vector-id)
                                                                            (list*
                                                                             deserialized-syntax-vector-id
                                                                             (if serializable?16_0
                                                                               (list
                                                                                deserialize-syntax-id)
                                                                               '()))
                                                                            instance-imports)))
                                                                      (let ((s_0
                                                                             (let ((app_1
                                                                                    (list*
                                                                                     get-syntax-literal!-id
                                                                                     '(get-encoded-root-expand-ctx))))
                                                                               (list*
                                                                                'linklet
                                                                                app_0
                                                                                app_1
                                                                                (let ((app_2
                                                                                       (let ((temp81_0
                                                                                              (not
                                                                                               serializable?16_0)))
                                                                                         (generate-lazy-syntax-literals!.1
                                                                                          temp81_0
                                                                                          syntax-literals_0
                                                                                          mpis_0
                                                                                          self_0))))
                                                                                  (qq-append
                                                                                   app_2
                                                                                   (list
                                                                                    (list
                                                                                     'define-values
                                                                                     '(get-encoded-root-expand-ctx)
                                                                                     (if root-ctx-pos_0
                                                                                       (list
                                                                                        'lambda
                                                                                        '()
                                                                                        (begin-unsafe
                                                                                         (list
                                                                                          get-syntax-literal!-id
                                                                                          root-ctx-pos_0)))
                                                                                       (if empty-result-for-module->namespace?_0
                                                                                         ''empty
                                                                                         ''#f))))))))))
                                                                        (if to-correlated-linklet?17_0
                                                                          (begin-unsafe
                                                                           (correlated-linklet1.1
                                                                            s_0
                                                                            'syntax-literals
                                                                            #f))
                                                                          (begin
                                                                            (if log-performance?
                                                                              (start-performance-region
                                                                               'compile
                                                                               'module
                                                                               'linklet)
                                                                              (void))
                                                                            (begin0
                                                                              (call-with-values
                                                                               (lambda ()
                                                                                 (compile-linklet
                                                                                  s_0
                                                                                  'syntax-literals
                                                                                  (vector
                                                                                   deserialize-instance
                                                                                   empty-top-syntax-literal-instance
                                                                                   empty-syntax-literals-data-instance
                                                                                   empty-instance-instance)
                                                                                  (lambda (inst_0)
                                                                                    (values
                                                                                     inst_0
                                                                                     #f))
                                                                                  (if serializable?16_0
                                                                                    '(serializable)
                                                                                    '())))
                                                                               (case-lambda
                                                                                ((linklet_0
                                                                                  new-keys_0)
                                                                                 linklet_0)
                                                                                (args
                                                                                 (raise-binding-result-arity-error
                                                                                  2
                                                                                  args))))
                                                                              (if log-performance?
                                                                                (end-performance-region)
                                                                                (void)))))))
                                                                    #f)))
                                                             (let ((syntax-literals-data-linklet_0
                                                                    (if serializable?16_0
                                                                      (if (not
                                                                           (begin-unsafe
                                                                            (null?
                                                                             (syntax-literals-stxes
                                                                              syntax-literals_0))))
                                                                        (let ((app_0
                                                                               (list
                                                                                deserialize-imports
                                                                                (list
                                                                                 mpi-vector-id))))
                                                                          (let ((s_0
                                                                                 (let ((app_1
                                                                                        (list
                                                                                         deserialized-syntax-vector-id
                                                                                         deserialize-syntax-id)))
                                                                                   (let ((app_2
                                                                                          (let ((app_2
                                                                                                 (list
                                                                                                  deserialized-syntax-vector-id)))
                                                                                            (list
                                                                                             'define-values
                                                                                             app_2
                                                                                             (list*
                                                                                              'make-vector
                                                                                              (syntax-literals-count
                                                                                               syntax-literals_0)
                                                                                              '(#f))))))
                                                                                     (list*
                                                                                      'linklet
                                                                                      app_0
                                                                                      app_1
                                                                                      app_2
                                                                                      (begin
                                                                                        (if log-performance?
                                                                                          (start-performance-region
                                                                                           'compile
                                                                                           'module
                                                                                           'serialize)
                                                                                          (void))
                                                                                        (begin0
                                                                                          (generate-lazy-syntax-literals-data!
                                                                                           syntax-literals_0
                                                                                           mpis_0)
                                                                                          (if log-performance?
                                                                                            (end-performance-region)
                                                                                            (void)))))))))
                                                                            (if to-correlated-linklet?17_0
                                                                              (begin-unsafe
                                                                               (correlated-linklet1.1
                                                                                s_0
                                                                                'syntax-literals-data
                                                                                #f))
                                                                              (begin
                                                                                (if log-performance?
                                                                                  (start-performance-region
                                                                                   'compile
                                                                                   'module
                                                                                   'linklet)
                                                                                  (void))
                                                                                (begin0
                                                                                  (compile-linklet
                                                                                   s_0
                                                                                   'syntax-literals-data
                                                                                   #f
                                                                                   #f
                                                                                   '(serializable))
                                                                                  (if log-performance?
                                                                                    (end-performance-region)
                                                                                    (void)))))))
                                                                        #f)
                                                                      #f)))
                                                               (let ((data-linklet_0
                                                                      (if serializable?16_0
                                                                        (let ((s_0
                                                                               (generate-module-data-linklet
                                                                                mpis_0)))
                                                                          (if to-correlated-linklet?17_0
                                                                            (begin-unsafe
                                                                             (correlated-linklet1.1
                                                                              s_0
                                                                              'data
                                                                              #f))
                                                                            (begin
                                                                              (if log-performance?
                                                                                (start-performance-region
                                                                                 'compile
                                                                                 'module
                                                                                 'linklet)
                                                                                (void))
                                                                              (begin0
                                                                                (compile-linklet
                                                                                 s_0
                                                                                 'data)
                                                                                (if log-performance?
                                                                                  (end-performance-region)
                                                                                  (void))))))
                                                                        #f)))
                                                                 (let ((bundle_0
                                                                        (let ((bundle_0
                                                                               (hash-set
                                                                                body-linklets_0
                                                                                'name
                                                                                full-module-name14_0)))
                                                                          (let ((bundle_1
                                                                                 (hash-set
                                                                                  bundle_0
                                                                                  'decl
                                                                                  (if declaration-linklet_0
                                                                                    declaration-linklet_0
                                                                                    'in-memory))))
                                                                            (let ((bundle_2
                                                                                   (if data-linklet_0
                                                                                     (hash-set
                                                                                      bundle_1
                                                                                      'data
                                                                                      data-linklet_0)
                                                                                     bundle_1)))
                                                                              (let ((bundle_3
                                                                                     (if syntax-literals-linklet_0
                                                                                       (hash-set
                                                                                        bundle_2
                                                                                        'stx
                                                                                        syntax-literals-linklet_0)
                                                                                       bundle_2)))
                                                                                (let ((bundle_4
                                                                                       (if syntax-literals-data-linklet_0
                                                                                         (hash-set
                                                                                          bundle_3
                                                                                          'stx-data
                                                                                          syntax-literals-data-linklet_0)
                                                                                         bundle_3)))
                                                                                  (let ((bundle_5
                                                                                         (if (null?
                                                                                              pre-submodules19_0)
                                                                                           bundle_4
                                                                                           (hash-set
                                                                                            bundle_4
                                                                                            'pre
                                                                                            (map_1346
                                                                                             car
                                                                                             pre-submodules19_0)))))
                                                                                    (let ((bundle_6
                                                                                           (if (null?
                                                                                                post-submodules20_0)
                                                                                             bundle_5
                                                                                             (hash-set
                                                                                              bundle_5
                                                                                              'post
                                                                                              (map_1346
                                                                                               car
                                                                                               post-submodules20_0)))))
                                                                                      (let ((bundle_7
                                                                                             (if cross-phase-persistent?_0
                                                                                               (hash-set
                                                                                                bundle_6
                                                                                                'cross-phase-persistent?
                                                                                                #t)
                                                                                               bundle_6)))
                                                                                        (let ((bundle_8
                                                                                               (if language-info_0
                                                                                                 (hash-set
                                                                                                  bundle_7
                                                                                                  'language-info
                                                                                                  language-info_0)
                                                                                                 bundle_7)))
                                                                                          (let ((bundle_9
                                                                                                 (if (not
                                                                                                      (eq?
                                                                                                       realm_0
                                                                                                       'racket))
                                                                                                   (hash-set
                                                                                                    bundle_8
                                                                                                    'realm
                                                                                                    realm_0)
                                                                                                   bundle_8)))
                                                                                            (let ((bundle_10
                                                                                                   (if (zero?
                                                                                                        min-phase_0)
                                                                                                     bundle_9
                                                                                                     (hash-set
                                                                                                      bundle_9
                                                                                                      'min-phase
                                                                                                      min-phase_0))))
                                                                                              (let ((bundle_11
                                                                                                     (if (zero?
                                                                                                          max-phase_0)
                                                                                                       bundle_10
                                                                                                       (hash-set
                                                                                                        bundle_10
                                                                                                        'max-phase
                                                                                                        max-phase_0))))
                                                                                                (let ((bundle_12
                                                                                                       (if (hash-count
                                                                                                            side-effects_0)
                                                                                                         (hash-set
                                                                                                          bundle_11
                                                                                                          'side-effects
                                                                                                          (let ((temp82_0
                                                                                                                 (hash-keys
                                                                                                                  side-effects_0)))
                                                                                                            (sort.1
                                                                                                             #f
                                                                                                             #f
                                                                                                             temp82_0
                                                                                                             <)))
                                                                                                         bundle_11)))
                                                                                                  (let ((bundle_13
                                                                                                         (if empty-result-for-module->namespace?_0
                                                                                                           (hash-set
                                                                                                            bundle_12
                                                                                                            'module->namespace
                                                                                                            'empty)
                                                                                                           bundle_12)))
                                                                                                    (let ((bundle_14
                                                                                                           (if (unbox
                                                                                                                unsafe?-box_0)
                                                                                                             (hash-set
                                                                                                              bundle_13
                                                                                                              'unsafe?
                                                                                                              #t)
                                                                                                             bundle_13)))
                                                                                                      (1/hash->linklet-bundle
                                                                                                       bundle_14))))))))))))))))))
                                                                   (let ((ld_0
                                                                          (if (if (null?
                                                                                   pre-submodules19_0)
                                                                                (if (null?
                                                                                     post-submodules20_0)
                                                                                  (not
                                                                                   force-linklet-directory?15_0)
                                                                                  #f)
                                                                                #f)
                                                                            bundle_0
                                                                            (let ((ht_0
                                                                                   (let ((lst_0
                                                                                          (append
                                                                                           pre-submodules19_0
                                                                                           post-submodules20_0)))
                                                                                     (begin
                                                                                       (letrec*
                                                                                        ((for-loop_0
                                                                                          (|#%name|
                                                                                           for-loop
                                                                                           (lambda (ht_0
                                                                                                    lst_1)
                                                                                             (begin
                                                                                               (if (pair?
                                                                                                    lst_1)
                                                                                                 (let ((sm_0
                                                                                                        (unsafe-car
                                                                                                         lst_1)))
                                                                                                   (let ((rest_0
                                                                                                          (unsafe-cdr
                                                                                                           lst_1)))
                                                                                                     (let ((ht_1
                                                                                                            (let ((ht_1
                                                                                                                   (let ((app_0
                                                                                                                          (car
                                                                                                                           sm_0)))
                                                                                                                     (hash-set
                                                                                                                      ht_0
                                                                                                                      app_0
                                                                                                                      (compiled-in-memory-linklet-directory
                                                                                                                       (cdr
                                                                                                                        sm_0))))))
                                                                                                              (values
                                                                                                               ht_1))))
                                                                                                       (for-loop_0
                                                                                                        ht_1
                                                                                                        rest_0))))
                                                                                                 ht_0))))))
                                                                                        (for-loop_0
                                                                                         (hasheq
                                                                                          #f
                                                                                          bundle_0)
                                                                                         lst_0))))))
                                                                              (1/hash->linklet-directory
                                                                               ht_0)))))
                                                                     (let ((app_0
                                                                            (current-code-inspector)))
                                                                       (let ((app_1
                                                                              (mpis-as-vector
                                                                               mpis_0)))
                                                                         (let ((app_2
                                                                                (syntax-literals-as-vector
                                                                                 syntax-literals_0)))
                                                                           (let ((app_3
                                                                                  (map_1346
                                                                                   cdr
                                                                                   pre-submodules19_0)))
                                                                             (compiled-in-memory1.1
                                                                              ld_0
                                                                              self_0
                                                                              requires_0
                                                                              recur-requires_0
                                                                              provides_0
                                                                              phase-to-link-module-uses_0
                                                                              app_0
                                                                              phase-to-link-extra-inspectorsss_0
                                                                              portal-stxes_0
                                                                              app_1
                                                                              app_2
                                                                              app_3
                                                                              (map_1346
                                                                               cdr
                                                                               post-submodules20_0)
                                                                              #f
                                                                              #f)))))))))))))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        3
                                                        args)))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     8
                                                     args)))))))))))))))))))))))
           (if log-performance? (end-performance-region) (void))))))))
(define update-submodule-names
  (lambda (cim_0 name_0 full-module-name_0)
    (change-module-name
     cim_0
     name_0
     (if (symbol? full-module-name_0)
       (list full-module-name_0)
       (reverse$1 (cdr (reverse$1 full-module-name_0)))))))
(define register-compiled-submodules
  (lambda (modules-being-compiled_0 pre-submodules_0 self_0)
    (begin
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (lst_0)
              (begin
                (if (pair? lst_0)
                  (let ((s_0 (unsafe-car lst_0)))
                    (let ((rest_0 (unsafe-cdr lst_0)))
                      (begin
                        (let ((name_0 (car s_0)))
                          (let ((cim_0 (cdr s_0)))
                            (let ((phase-to-link-module-uses_0
                                   (compiled-in-memory-phase-to-link-module-uses
                                    cim_0)))
                              (let ((ld_0
                                     (compiled-in-memory-linklet-directory
                                      cim_0)))
                                (let ((sm-self_0
                                       (1/module-path-index-join
                                        (list 'submod "." name_0)
                                        self_0)))
                                  (let ((phase-to-extra-inspectorsss_0
                                         (compiled-in-memory-phase-to-link-extra-inspectorsss
                                          cim_0)))
                                    (let ((app_0
                                           (1/module-path-index-resolve
                                            sm-self_0)))
                                      (hash-set!
                                       modules-being-compiled_0
                                       app_0
                                       (let ((ht_0
                                              (1/linklet-bundle->hash
                                               (if (linklet-directory?$1 ld_0)
                                                 (hash-ref
                                                  (linklet-directory->hash$1
                                                   ld_0)
                                                  #f)
                                                 ld_0))))
                                         (begin
                                           (letrec*
                                            ((for-loop_1
                                              (|#%name|
                                               for-loop
                                               (lambda (table_0 i_0)
                                                 (begin
                                                   (if i_0
                                                     (call-with-values
                                                      (lambda ()
                                                        (hash-iterate-key+value
                                                         ht_0
                                                         i_0))
                                                      (case-lambda
                                                       ((phase_0 linklet_0)
                                                        (let ((table_1
                                                               (if (number?
                                                                    phase_0)
                                                                 (let ((table_1
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (values
                                                                            phase_0
                                                                            (let ((app_1
                                                                                   (hash-ref
                                                                                    phase-to-link-module-uses_0
                                                                                    phase_0
                                                                                    #f)))
                                                                              (let ((app_2
                                                                                     (compiled-in-memory-original-self
                                                                                      cim_0)))
                                                                                (let ((app_3
                                                                                       (compiled-in-memory-compile-time-inspector
                                                                                        cim_0)))
                                                                                  (module-linklet-info2.1
                                                                                   linklet_0
                                                                                   app_1
                                                                                   app_2
                                                                                   #f
                                                                                   app_3
                                                                                   (if phase-to-extra-inspectorsss_0
                                                                                     (hash-ref
                                                                                      phase-to-extra-inspectorsss_0
                                                                                      phase_0
                                                                                      #f)
                                                                                     #f)))))))
                                                                         (case-lambda
                                                                          ((key_0
                                                                            val_0)
                                                                           (hash-set
                                                                            table_0
                                                                            key_0
                                                                            val_0))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args))))))
                                                                   (values
                                                                    table_1))
                                                                 table_0)))
                                                          (for-loop_1
                                                           table_1
                                                           (hash-iterate-next
                                                            ht_0
                                                            i_0))))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))
                                                     table_0))))))
                                            (for-loop_1
                                             hash2610
                                             (hash-iterate-first
                                              ht_0)))))))))))))
                        (for-loop_0 rest_0))))
                  (values)))))))
         (for-loop_0 pre-submodules_0)))
      (void))))
(define add-portal-syntaxes
  (lambda (syntax-literals_0
           portal-syntaxes_0
           body-max-phase_0
           body-min-phase_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (portal-stxes_0 max-phase_0 min-phase_0 i_0)
            (begin
              (if i_0
                (call-with-values
                 (lambda () (hash-iterate-key+value portal-syntaxes_0 i_0))
                 (case-lambda
                  ((phase_0 ht_0)
                   (call-with-values
                    (lambda ()
                      (call-with-values
                       (lambda ()
                         (let ((new-portal-stxes_0
                                (hash-set
                                 portal-stxes_0
                                 phase_0
                                 (begin
                                   (letrec*
                                    ((for-loop_1
                                      (|#%name|
                                       for-loop
                                       (lambda (table_0 i_1)
                                         (begin
                                           (if i_1
                                             (call-with-values
                                              (lambda ()
                                                (hash-iterate-key+value
                                                 ht_0
                                                 i_1))
                                              (case-lambda
                                               ((sym_0 stx_0)
                                                (let ((table_1
                                                       (let ((table_1
                                                              (call-with-values
                                                               (lambda ()
                                                                 (values
                                                                  sym_0
                                                                  (add-syntax-literal!
                                                                   syntax-literals_0
                                                                   stx_0)))
                                                               (case-lambda
                                                                ((key_0 val_0)
                                                                 (hash-set
                                                                  table_0
                                                                  key_0
                                                                  val_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args))))))
                                                         (values table_1))))
                                                  (for-loop_1
                                                   table_1
                                                   (hash-iterate-next
                                                    ht_0
                                                    i_1))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             table_0))))))
                                    (for-loop_1
                                     hash2610
                                     (hash-iterate-first ht_0)))))))
                           (if (integer? phase_0)
                             (let ((app_0 (max (add1 phase_0) max-phase_0)))
                               (values
                                new-portal-stxes_0
                                app_0
                                (min (add1 phase_0) min-phase_0)))
                             (values
                              new-portal-stxes_0
                              max-phase_0
                              min-phase_0))))
                       (case-lambda
                        ((portal-stxes_1 max-phase_1 min-phase_1)
                         (values portal-stxes_1 max-phase_1 min-phase_1))
                        (args (raise-binding-result-arity-error 3 args)))))
                    (case-lambda
                     ((portal-stxes_1 max-phase_1 min-phase_1)
                      (for-loop_0
                       portal-stxes_1
                       max-phase_1
                       min-phase_1
                       (hash-iterate-next portal-syntaxes_0 i_0)))
                     (args (raise-binding-result-arity-error 3 args)))))
                  (args (raise-binding-result-arity-error 2 args))))
                (values portal-stxes_0 max-phase_0 min-phase_0)))))))
       (for-loop_0
        hash2610
        body-max-phase_0
        body-min-phase_0
        (hash-iterate-first portal-syntaxes_0))))))
(define filter-language-info
  (lambda (li_0)
    (if (vector? li_0)
      (if (= 3 (vector-length li_0))
        (if (1/module-path? (vector-ref li_0 0))
          (if (symbol? (vector-ref li_0 1)) li_0 #f)
          #f)
        #f)
      #f)))
(define 1/compiled-expression-recompile
  (|#%name|
   compiled-expression-recompile
   (lambda (c_0)
     (begin
       (begin
         (if (1/compiled-expression? c_0)
           (void)
           (raise-argument-error
            'compiled-expression-recompile
            "compiled-expression?"
            c_0))
         (let ((target-machine_0 (current-compile-target-machine)))
           (if (not target-machine_0)
             c_0
             (if (let ((or-part_0 (1/linklet-bundle? c_0)))
                   (if or-part_0 or-part_0 (linklet-directory?$1 c_0)))
               (let ((ns_0 (1/current-namespace)))
                 (let ((bundles_0
                        (extract-linklet-bundles c_0 '() hash2725)))
                   (let ((recompileds_0 (make-hash)))
                     (letrec*
                      ((force-recompile-bundle_0
                        (|#%name|
                         force-recompile-bundle
                         (lambda (k_0)
                           (begin
                             (begin
                               (if (hash-ref recompileds_0 k_0 #f)
                                 (void)
                                 (begin
                                   (hash-set! recompileds_0 k_0 'in-process)
                                   (let ((b_0 (hash-ref bundles_0 k_0 #f)))
                                     (begin
                                       (if b_0
                                         (void)
                                         (raise-arguments-error
                                          'compiled-expression-recompile
                                          "cannot find submodule"
                                          "submodule path"
                                          k_0))
                                       (hash-set!
                                        recompileds_0
                                        k_0
                                        (recompile-bundle
                                         b_0
                                         force-recompile-bundle_0
                                         ns_0
                                         target-machine_0))))))
                               (hash-ref recompileds_0 k_0)))))))
                      (begin
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (i_0)
                                (begin
                                  (if i_0
                                    (let ((k_0
                                           (hash-iterate-key bundles_0 i_0)))
                                      (begin
                                        (force-recompile-bundle_0 k_0)
                                        (for-loop_0
                                         (hash-iterate-next bundles_0 i_0))))
                                    (values)))))))
                           (for-loop_0 (hash-iterate-first bundles_0))))
                        (void)
                        (replace-linklet-bundles c_0 '() recompileds_0))))))
               (1/compiled-expression-recompile
                (compiled-in-memory-linklet-directory c_0))))))))))
(define extract-linklet-bundles
  (lambda (c_0 rev-path_0 accum_0)
    (if (1/linklet-bundle? c_0)
      (hash-set accum_0 (reverse$1 rev-path_0) c_0)
      (if (linklet-directory?$1 c_0)
        (let ((ht_0 (linklet-directory->hash$1 c_0)))
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (accum_1 i_0)
                  (begin
                    (if i_0
                      (call-with-values
                       (lambda () (hash-iterate-key+value ht_0 i_0))
                       (case-lambda
                        ((k_0 v_0)
                         (let ((accum_2
                                (let ((accum_2
                                       (if (symbol? k_0)
                                         (extract-linklet-bundles
                                          v_0
                                          (cons k_0 rev-path_0)
                                          accum_1)
                                         (if (not k_0)
                                           (extract-linklet-bundles
                                            v_0
                                            rev-path_0
                                            accum_1)
                                           accum_1))))
                                  (values accum_2))))
                           (for-loop_0 accum_2 (hash-iterate-next ht_0 i_0))))
                        (args (raise-binding-result-arity-error 2 args))))
                      accum_1))))))
             (for-loop_0 accum_0 (hash-iterate-first ht_0)))))
        accum_0))))
(define replace-linklet-bundles
  (lambda (c_0 rev-path_0 recompileds_0)
    (if (1/linklet-bundle? c_0)
      (recompiled-bundle (hash-ref recompileds_0 (reverse$1 rev-path_0)))
      (if (linklet-directory?$1 c_0)
        (1/hash->linklet-directory
         (let ((ht_0 (linklet-directory->hash$1 c_0)))
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (table_0 i_0)
                   (begin
                     (if i_0
                       (call-with-values
                        (lambda () (hash-iterate-key+value ht_0 i_0))
                        (case-lambda
                         ((k_0 v_0)
                          (let ((table_1
                                 (let ((table_1
                                        (call-with-values
                                         (lambda ()
                                           (values
                                            k_0
                                            (if (symbol? k_0)
                                              (replace-linklet-bundles
                                               v_0
                                               (cons k_0 rev-path_0)
                                               recompileds_0)
                                              (if (not k_0)
                                                (replace-linklet-bundles
                                                 v_0
                                                 rev-path_0
                                                 recompileds_0)
                                                (void)))))
                                         (case-lambda
                                          ((key_0 val_0)
                                           (hash-set table_0 key_0 val_0))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))))
                                   (values table_1))))
                            (for-loop_0 table_1 (hash-iterate-next ht_0 i_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       table_0))))))
              (for-loop_0 hash2610 (hash-iterate-first ht_0))))))
        c_0))))
(define finish_2360
  (make-struct-type-install-properties
   '(recompiled)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'recompiled))
(define struct:recompiled
  (make-record-type-descriptor
   'recompiled
   #f
   (|#%nongenerative-uid| recompiled)
   #f
   #f
   '(3 . 0)))
(define effect_1973 (finish_2360 struct:recompiled))
(define recompiled1.1
  (|#%name|
   recompiled
   (record-constructor
    (make-record-constructor-descriptor struct:recompiled #f #f))))
(define recompiled?
  (|#%name| recompiled? (record-predicate struct:recompiled)))
(define recompiled-bundle
  (|#%name| recompiled-bundle (record-accessor struct:recompiled 0)))
(define recompiled-phase-to-link-module-uses
  (|#%name|
   recompiled-phase-to-link-module-uses
   (record-accessor struct:recompiled 1)))
(define recompiled-self
  (|#%name| recompiled-self (record-accessor struct:recompiled 2)))
(define recompile-bundle
  (lambda (b_0 get-submodule-recompiled_0 ns_0 target-machine_0)
    (let ((orig-h_0 (1/linklet-bundle->hash b_0)))
      (let ((h_0
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (table_0 i_0)
                     (begin
                       (if i_0
                         (call-with-values
                          (lambda () (hash-iterate-key+value orig-h_0 i_0))
                          (case-lambda
                           ((k_0 v_0)
                            (let ((table_1
                                   (let ((table_1
                                          (call-with-values
                                           (lambda ()
                                             (if (if (not (exact-integer? k_0))
                                                   (correlated-linklet? v_0)
                                                   #f)
                                               (values
                                                k_0
                                                (force-compile-linklet v_0))
                                               (values k_0 v_0)))
                                           (case-lambda
                                            ((key_0 val_0)
                                             (hash-set table_0 key_0 val_0))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))
                                     (values table_1))))
                              (for-loop_0
                               table_1
                               (hash-iterate-next orig-h_0 i_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         table_0))))))
                (for-loop_0 hash2610 (hash-iterate-first orig-h_0))))))
        (let ((can-eval-compiled?_0
               (eq? target-machine_0 (system-type 'target-machine))))
          (let ((eval-metadata-linklet_0
                 (|#%name|
                  eval-metadata-linklet
                  (lambda (key_0)
                    (begin
                      (if can-eval-compiled?_0
                        (eval-linklet (hash-ref h_0 key_0))
                        (eval-correlated-linklet
                         (hash-ref orig-h_0 key_0))))))))
            (let ((data-instance_0
                   (let ((app_0 (eval-metadata-linklet_0 'data)))
                     (instantiate-linklet app_0 (list deserialize-instance)))))
              (let ((declaration-instance_0
                     (let ((app_0 (eval-metadata-linklet_0 'decl)))
                       (instantiate-linklet
                        app_0
                        (list deserialize-instance data-instance_0)))))
                (let ((decl_0
                       (|#%name|
                        decl
                        (lambda (key_0)
                          (begin
                            (instance-variable-value
                             declaration-instance_0
                             key_0))))))
                  (let ((mpis_0 (make-module-path-index-table)))
                    (begin
                      (call-with-values
                       (lambda ()
                         (let ((vec_0
                                (instance-variable-value
                                 data-instance_0
                                 mpi-vector-id)))
                           (begin
                             (check-vector vec_0)
                             (values vec_0 (unsafe-vector-length vec_0)))))
                       (case-lambda
                        ((vec_0 len_0)
                         (begin
                           #f
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (pos_0)
                                 (begin
                                   (if (unsafe-fx< pos_0 len_0)
                                     (let ((mpi_0
                                            (unsafe-vector-ref vec_0 pos_0)))
                                       (begin
                                         (add-module-path-index! mpis_0 mpi_0)
                                         (for-loop_0 (unsafe-fx+ 1 pos_0))))
                                     (values)))))))
                            (for-loop_0 0))))
                        (args (raise-binding-result-arity-error 2 args))))
                      (let ((self_0
                             (begin-unsafe
                              (begin
                                (instance-variable-value
                                 declaration-instance_0
                                 'self-mpi)))))
                        (let ((phase-to-link-modules_0
                               (begin-unsafe
                                (begin
                                  (instance-variable-value
                                   declaration-instance_0
                                   'phase-to-link-modules)))))
                          (let ((portal-stxes_0
                                 (begin-unsafe
                                  (begin
                                    (instance-variable-value
                                     declaration-instance_0
                                     'portal-stxes)))))
                            (let ((unsafe?_0 (hash-ref orig-h_0 'unsafe? #f)))
                              (let ((realm_0
                                     (hash-ref orig-h_0 'realm 'racket)))
                                (let ((find-submodule_0
                                       (|#%name|
                                        find-submodule
                                        (lambda (mod-name_0 phase_0)
                                          (begin
                                            (let ((find-l_0
                                                   (1/resolved-module-path-name
                                                    mod-name_0)))
                                              (let ((self-l_0
                                                     (1/resolved-module-path-name
                                                      (1/module-path-index-resolve
                                                       self_0))))
                                                (let ((root-of_0
                                                       (|#%name|
                                                        root-of
                                                        (lambda (l_0)
                                                          (begin
                                                            (if (pair? l_0)
                                                              (car l_0)
                                                              l_0))))))
                                                  (if (let ((app_0
                                                             (root-of_0
                                                              find-l_0)))
                                                        (equal?
                                                         app_0
                                                         (root-of_0 self-l_0)))
                                                    (let ((r_0
                                                           (|#%app|
                                                            get-submodule-recompiled_0
                                                            (if (pair?
                                                                 find-l_0)
                                                              (cdr find-l_0)
                                                              '()))))
                                                      (begin
                                                        (if (eq?
                                                             r_0
                                                             'in-process)
                                                          (raise-arguments-error
                                                           'compiled-expression-recompile
                                                           "cycle in linklet imports")
                                                          (void))
                                                        (let ((b_1
                                                               (recompiled-bundle
                                                                r_0)))
                                                          (let ((linklet_0
                                                                 (let ((or-part_0
                                                                        (hash-ref
                                                                         (1/linklet-bundle->hash
                                                                          b_1)
                                                                         phase_0
                                                                         #f)))
                                                                   (if or-part_0
                                                                     or-part_0
                                                                     (raise-arguments-error
                                                                      'compiled-expression-recompile
                                                                      "cannot find submodule at phase"
                                                                      "submodule"
                                                                      mod-name_0
                                                                      "phase"
                                                                      phase_0)))))
                                                            (let ((app_0
                                                                   (hash-ref
                                                                    (recompiled-phase-to-link-module-uses
                                                                     r_0)
                                                                    phase_0
                                                                    #f)))
                                                              (let ((app_1
                                                                     (recompiled-self
                                                                      r_0)))
                                                                (module-linklet-info2.1
                                                                 linklet_0
                                                                 app_0
                                                                 app_1
                                                                 #f
                                                                 (current-code-inspector)
                                                                 #f)))))))
                                                    #f)))))))))
                                  (let ((body-linklets+module-use*s_0
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (table_0 i_0)
                                                 (begin
                                                   (if i_0
                                                     (call-with-values
                                                      (lambda ()
                                                        (hash-iterate-key+value
                                                         h_0
                                                         i_0))
                                                      (case-lambda
                                                       ((phase_0
                                                         body-linklet_0)
                                                        (let ((table_1
                                                               (if (exact-integer?
                                                                    phase_0)
                                                                 (let ((table_1
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (let ((module-use*s_0
                                                                                  (module-uses-add-extra-inspectorsss
                                                                                   (hash-ref
                                                                                    phase-to-link-modules_0
                                                                                    phase_0)
                                                                                   #f)))
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (let ((temp3_0
                                                                                       (if (correlated-linklet?
                                                                                            body-linklet_0)
                                                                                         (correlated-linklet-expr
                                                                                          body-linklet_0)
                                                                                         body-linklet_0)))
                                                                                  (let ((temp4_0
                                                                                         (if (correlated-linklet?
                                                                                              body-linklet_0)
                                                                                           compile-linklet
                                                                                           recompile-linklet)))
                                                                                    (let ((temp5_0
                                                                                           (list
                                                                                            (list
                                                                                             get-syntax-literal!-id)
                                                                                            (list
                                                                                             set-transformer!-id))))
                                                                                      (let ((temp6_0
                                                                                             (list
                                                                                              empty-syntax-literals-instance
                                                                                              empty-module-body-instance)))
                                                                                        (compile-module-linklet.1
                                                                                         temp6_0
                                                                                         temp5_0
                                                                                         temp4_0
                                                                                         find-submodule_0
                                                                                         #t
                                                                                         #t
                                                                                         module-use*s_0
                                                                                         ns_0
                                                                                         #t
                                                                                         realm_0
                                                                                         #t
                                                                                         unsafe?_0
                                                                                         temp3_0))))))
                                                                              (case-lambda
                                                                               ((linklet_0
                                                                                 new-module-use*s_0)
                                                                                (values
                                                                                 phase_0
                                                                                 (cons
                                                                                  linklet_0
                                                                                  new-module-use*s_0)))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 2
                                                                                 args))))))
                                                                         (case-lambda
                                                                          ((key_0
                                                                            val_0)
                                                                           (hash-set
                                                                            table_0
                                                                            key_0
                                                                            val_0))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args))))))
                                                                   (values
                                                                    table_1))
                                                                 table_0)))
                                                          (for-loop_0
                                                           table_1
                                                           (hash-iterate-next
                                                            h_0
                                                            i_0))))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))
                                                     table_0))))))
                                            (for-loop_0
                                             hash2725
                                             (hash-iterate-first h_0))))))
                                    (let ((h/new-body-linklets_0
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (h_1 i_0)
                                                   (begin
                                                     (if i_0
                                                       (call-with-values
                                                        (lambda ()
                                                          (hash-iterate-key+value
                                                           body-linklets+module-use*s_0
                                                           i_0))
                                                        (case-lambda
                                                         ((phase_0 l+mu*s_0)
                                                          (let ((h_2
                                                                 (let ((h_2
                                                                        (hash-set
                                                                         h_1
                                                                         phase_0
                                                                         (car
                                                                          l+mu*s_0))))
                                                                   (values
                                                                    h_2))))
                                                            (for-loop_0
                                                             h_2
                                                             (hash-iterate-next
                                                              body-linklets+module-use*s_0
                                                              i_0))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))
                                                       h_1))))))
                                              (for-loop_0
                                               h_0
                                               (hash-iterate-first
                                                body-linklets+module-use*s_0))))))
                                      (let ((phase-to-link-module-uses_0
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (table_0 i_0)
                                                     (begin
                                                       (if i_0
                                                         (call-with-values
                                                          (lambda ()
                                                            (hash-iterate-key+value
                                                             body-linklets+module-use*s_0
                                                             i_0))
                                                          (case-lambda
                                                           ((phase_0 l+mu*s_0)
                                                            (let ((table_1
                                                                   (let ((table_1
                                                                          (call-with-values
                                                                           (lambda ()
                                                                             (values
                                                                              phase_0
                                                                              (module-uses-strip-extra-inspectorsss
                                                                               (cdr
                                                                                l+mu*s_0))))
                                                                           (case-lambda
                                                                            ((key_0
                                                                              val_0)
                                                                             (hash-set
                                                                              table_0
                                                                              key_0
                                                                              val_0))
                                                                            (args
                                                                             (raise-binding-result-arity-error
                                                                              2
                                                                              args))))))
                                                                     (values
                                                                      table_1))))
                                                              (for-loop_0
                                                               table_1
                                                               (hash-iterate-next
                                                                body-linklets+module-use*s_0
                                                                i_0))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))
                                                         table_0))))))
                                                (for-loop_0
                                                 hash2610
                                                 (hash-iterate-first
                                                  body-linklets+module-use*s_0))))))
                                        (let ((phase-to-link-module-uses-expr_0
                                               (serialize-phase-to-link-module-uses
                                                phase-to-link-module-uses_0
                                                mpis_0)))
                                          (let ((data-linklet_0
                                                 (compile-linklet
                                                  (generate-module-data-linklet
                                                   mpis_0)
                                                  'data)))
                                            (let ((declaration-linklet_0
                                                   (compile-linklet
                                                    (let ((app_0
                                                           (begin-unsafe
                                                            (begin
                                                              (instance-variable-value
                                                               declaration-instance_0
                                                               'requires)))))
                                                      (let ((app_1
                                                             (begin-unsafe
                                                              (begin
                                                                (instance-variable-value
                                                                 declaration-instance_0
                                                                 'recur-requires)))))
                                                        (generate-module-declaration-linklet
                                                         mpis_0
                                                         self_0
                                                         app_0
                                                         app_1
                                                         (begin-unsafe
                                                          (begin
                                                            (instance-variable-value
                                                             declaration-instance_0
                                                             'provides)))
                                                         phase-to-link-module-uses-expr_0
                                                         portal-stxes_0)))
                                                    'decl)))
                                              (let ((new-bundle_0
                                                     (1/hash->linklet-bundle
                                                      (let ((h_1
                                                             (hash-set
                                                              h/new-body-linklets_0
                                                              'data
                                                              data-linklet_0)))
                                                        (let ((h_2
                                                               (hash-set
                                                                h_1
                                                                'decl
                                                                declaration-linklet_0)))
                                                          h_2)))))
                                                (recompiled1.1
                                                 new-bundle_0
                                                 phase-to-link-module-uses_0
                                                 self_0)))))))))))))))))))))))))
(define create-compiled-in-memorys-using-shared-data
  (lambda (tops_0 data-linklet_0 ns_0)
    (let ((data-instance_0
           (let ((app_0 (force-compile-linklet data-linklet_0)))
             (instantiate-linklet
              app_0
              (list
               deserialize-instance
               (let ((temp2_0 (namespace-phase ns_0)))
                 (let ((temp3_0 (namespace-mpi ns_0)))
                   (let ((temp4_0 (namespace-bulk-binding-registry ns_0)))
                     (let ((temp5_0 (current-code-inspector)))
                       (let ((temp4_1 temp4_0)
                             (temp3_1 temp3_0)
                             (temp2_1 temp2_0))
                         (make-eager-instance-instance.1
                          temp4_1
                          temp2_1
                          temp5_0
                          ns_0
                          temp3_1)))))))))))
      (let ((data_0
             (|#%name|
              data
              (lambda (key_0)
                (begin (instance-variable-value data-instance_0 key_0))))))
        (let ((mpi-vector_0
               (begin-unsafe
                (begin
                  (instance-variable-value data-instance_0 mpi-vector-id)))))
          (let ((mpi-vector-trees_0
                 (begin-unsafe
                  (begin
                    (instance-variable-value
                     data-instance_0
                     'mpi-vector-trees)))))
            (let ((phase-to-link-modules-vector_0
                   (begin-unsafe
                    (begin
                      (instance-variable-value
                       data-instance_0
                       'phase-to-link-modules-vector)))))
              (let ((phase-to-link-modules-trees_0
                     (begin-unsafe
                      (begin
                        (instance-variable-value
                         data-instance_0
                         'phase-to-link-modules-trees)))))
                (let ((syntax-literals_0
                       (begin-unsafe
                        (begin
                          (instance-variable-value
                           data-instance_0
                           'syntax-literals)))))
                  (let ((syntax-literals-trees_0
                         (begin-unsafe
                          (begin
                            (instance-variable-value
                             data-instance_0
                             'syntax-literals-trees)))))
                    (let ((namespace-scopes_0 (extract-namespace-scopes ns_0)))
                      (letrec*
                       ((construct-compiled-in-memory_0
                         (|#%name|
                          construct-compiled-in-memory
                          (lambda (ld_0
                                   mpi-vector-tree_0
                                   phase-to-link-modules-tree_0
                                   syntax-literals-tree_0)
                            (begin
                              (let ((or-part_0 (1/linklet-bundle? ld_0)))
                                (let ((is-module?_0
                                       (if or-part_0
                                         or-part_0
                                         (let ((b_0
                                                (hash-ref
                                                 (linklet-directory->hash$1
                                                  ld_0)
                                                 #f
                                                 #f)))
                                           (if b_0
                                             (hash-ref
                                              (1/linklet-bundle->hash b_0)
                                              'decl
                                              #f)
                                             #f)))))
                                  (let ((mpi-pos-vec_0
                                         (vector-ref mpi-vector-tree_0 0)))
                                    (let ((syntax-literals-spec_0
                                           (vector-ref
                                            syntax-literals-tree_0
                                            0)))
                                      (let ((pres_0
                                             (if is-module?_0
                                               (extract-submodules ld_0 'pre)
                                               (compiled-top->compiled-tops
                                                ld_0))))
                                        (let ((posts_0
                                               (if is-module?_0
                                                 (extract-submodules
                                                  ld_0
                                                  'post)
                                                 null)))
                                          (let ((map-construct-compiled-in-memory_0
                                                 (|#%name|
                                                  map-construct-compiled-in-memory
                                                  (lambda (l_0 vec-pos_0)
                                                    (begin
                                                      (reverse$1
                                                       (let ((lst_0
                                                              (vector-ref
                                                               mpi-vector-tree_0
                                                               vec-pos_0)))
                                                         (let ((lst_1
                                                                (vector-ref
                                                                 phase-to-link-modules-tree_0
                                                                 vec-pos_0)))
                                                           (let ((lst_2
                                                                  (vector-ref
                                                                   syntax-literals-tree_0
                                                                   vec-pos_0)))
                                                             (let ((lst_3
                                                                    lst_1)
                                                                   (lst_4
                                                                    lst_0))
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (fold-var_0
                                                                              lst_5
                                                                              lst_6
                                                                              lst_7
                                                                              lst_8)
                                                                       (begin
                                                                         (if (if (pair?
                                                                                  lst_5)
                                                                               (if (pair?
                                                                                    lst_6)
                                                                                 (if (pair?
                                                                                      lst_7)
                                                                                   (pair?
                                                                                    lst_8)
                                                                                   #f)
                                                                                 #f)
                                                                               #f)
                                                                           (let ((sub-ld_0
                                                                                  (unsafe-car
                                                                                   lst_5)))
                                                                             (let ((rest_0
                                                                                    (unsafe-cdr
                                                                                     lst_5)))
                                                                               (let ((mpi-vector-tree_1
                                                                                      (unsafe-car
                                                                                       lst_6)))
                                                                                 (let ((rest_1
                                                                                        (unsafe-cdr
                                                                                         lst_6)))
                                                                                   (let ((phase-to-link-modules-tree_1
                                                                                          (unsafe-car
                                                                                           lst_7)))
                                                                                     (let ((rest_2
                                                                                            (unsafe-cdr
                                                                                             lst_7)))
                                                                                       (let ((syntax-literals-tree_1
                                                                                              (unsafe-car
                                                                                               lst_8)))
                                                                                         (let ((rest_3
                                                                                                (unsafe-cdr
                                                                                                 lst_8)))
                                                                                           (let ((fold-var_1
                                                                                                  (let ((fold-var_1
                                                                                                         (cons
                                                                                                          (construct-compiled-in-memory_0
                                                                                                           sub-ld_0
                                                                                                           mpi-vector-tree_1
                                                                                                           phase-to-link-modules-tree_1
                                                                                                           syntax-literals-tree_1)
                                                                                                          fold-var_0)))
                                                                                                    (values
                                                                                                     fold-var_1))))
                                                                                             (for-loop_0
                                                                                              fold-var_1
                                                                                              rest_0
                                                                                              rest_1
                                                                                              rest_2
                                                                                              rest_3))))))))))
                                                                           fold-var_0))))))
                                                                  (for-loop_0
                                                                   null
                                                                   l_0
                                                                   lst_4
                                                                   lst_3
                                                                   lst_2)))))))))))))
                                            (let ((app_0
                                                   (vector-ref
                                                    phase-to-link-modules-vector_0
                                                    (vector-ref
                                                     phase-to-link-modules-tree_0
                                                     0))))
                                              (let ((app_1
                                                     (let ((len_0
                                                            (vector-length
                                                             mpi-pos-vec_0)))
                                                       (begin
                                                         (if (exact-nonnegative-integer?
                                                              len_0)
                                                           (void)
                                                           (raise-argument-error
                                                            'for/vector
                                                            "exact-nonnegative-integer?"
                                                            len_0))
                                                         (let ((v_0
                                                                (make-vector
                                                                 len_0
                                                                 0)))
                                                           (begin
                                                             (if (zero? len_0)
                                                               (void)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (begin
                                                                    (check-vector
                                                                     mpi-pos-vec_0)
                                                                    (values
                                                                     mpi-pos-vec_0
                                                                     (unsafe-vector-length
                                                                      mpi-pos-vec_0))))
                                                                (case-lambda
                                                                 ((vec_0 len_1)
                                                                  (begin
                                                                    #f
                                                                    (letrec*
                                                                     ((for-loop_0
                                                                       (|#%name|
                                                                        for-loop
                                                                        (lambda (i_0
                                                                                 pos_0)
                                                                          (begin
                                                                            (if (unsafe-fx<
                                                                                 pos_0
                                                                                 len_1)
                                                                              (let ((pos_1
                                                                                     (unsafe-vector-ref
                                                                                      vec_0
                                                                                      pos_0)))
                                                                                (let ((i_1
                                                                                       (let ((i_1
                                                                                              (begin
                                                                                                (unsafe-vector*-set!
                                                                                                 v_0
                                                                                                 i_0
                                                                                                 (vector-ref
                                                                                                  mpi-vector_0
                                                                                                  pos_1))
                                                                                                (unsafe-fx+
                                                                                                 1
                                                                                                 i_0))))
                                                                                         (values
                                                                                          i_1))))
                                                                                  (if (if (not
                                                                                           (let ((x_0
                                                                                                  (list
                                                                                                   pos_1)))
                                                                                             (unsafe-fx=
                                                                                              i_1
                                                                                              len_0)))
                                                                                        #t
                                                                                        #f)
                                                                                    (for-loop_0
                                                                                     i_1
                                                                                     (unsafe-fx+
                                                                                      1
                                                                                      pos_0))
                                                                                    i_1)))
                                                                              i_0))))))
                                                                     (for-loop_0
                                                                      0
                                                                      0))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))
                                                             v_0))))))
                                                (let ((app_2
                                                       (let ((len_0
                                                              (cdr
                                                               syntax-literals-spec_0)))
                                                         (begin
                                                           (if (exact-nonnegative-integer?
                                                                len_0)
                                                             (void)
                                                             (raise-argument-error
                                                              'for/vector
                                                              "exact-nonnegative-integer?"
                                                              len_0))
                                                           (let ((v_0
                                                                  (make-vector
                                                                   len_0
                                                                   0)))
                                                             (begin
                                                               (if (zero?
                                                                    len_0)
                                                                 (void)
                                                                 (let ((end_0
                                                                        (cdr
                                                                         syntax-literals-spec_0)))
                                                                   (begin
                                                                     (letrec*
                                                                      ((for-loop_0
                                                                        (|#%name|
                                                                         for-loop
                                                                         (lambda (i_0
                                                                                  pos_0)
                                                                           (begin
                                                                             (if (<
                                                                                  pos_0
                                                                                  end_0)
                                                                               (let ((i_1
                                                                                      (let ((i_1
                                                                                             (begin
                                                                                               (unsafe-vector*-set!
                                                                                                v_0
                                                                                                i_0
                                                                                                (if syntax-literals_0
                                                                                                  (vector-ref
                                                                                                   syntax-literals_0
                                                                                                   (+
                                                                                                    (car
                                                                                                     syntax-literals-spec_0)
                                                                                                    pos_0))
                                                                                                  #f))
                                                                                               (unsafe-fx+
                                                                                                1
                                                                                                i_0))))
                                                                                        (values
                                                                                         i_1))))
                                                                                 (if (if (not
                                                                                          (let ((x_0
                                                                                                 (list
                                                                                                  pos_0)))
                                                                                            (unsafe-fx=
                                                                                             i_1
                                                                                             len_0)))
                                                                                       #t
                                                                                       #f)
                                                                                   (for-loop_0
                                                                                    i_1
                                                                                    (+
                                                                                     pos_0
                                                                                     1))
                                                                                   i_1))
                                                                               i_0))))))
                                                                      (for-loop_0
                                                                       0
                                                                       0)))))
                                                               v_0))))))
                                                  (let ((app_3
                                                         (map-construct-compiled-in-memory_0
                                                          pres_0
                                                          1)))
                                                    (compiled-in-memory1.1
                                                     ld_0
                                                     #f
                                                     #f
                                                     #f
                                                     #f
                                                     app_0
                                                     #f
                                                     hash2589
                                                     hash2589
                                                     app_1
                                                     app_2
                                                     app_3
                                                     (map-construct-compiled-in-memory_0
                                                      posts_0
                                                      2)
                                                     namespace-scopes_0
                                                     #f)))))))))))))))))
                       (map_1346
                        construct-compiled-in-memory_0
                        tops_0
                        mpi-vector-trees_0
                        phase-to-link-modules-trees_0
                        syntax-literals-trees_0)))))))))))))
(define extract-submodules
  (lambda (ld_0 names-key_0)
    (if (1/linklet-bundle? ld_0)
      null
      (let ((h_0 (linklet-directory->hash$1 ld_0)))
        (let ((mod_0 (hash-ref h_0 #f #f)))
          (begin
            (if mod_0 (void) (error "missing main module"))
            (let ((mh_0 (1/linklet-bundle->hash mod_0)))
              (let ((names_0 (hash-ref mh_0 names-key_0 null)))
                (reverse$1
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (fold-var_0 lst_0)
                         (begin
                           (if (pair? lst_0)
                             (let ((name_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((fold-var_1
                                        (let ((fold-var_1
                                               (cons
                                                (hash-ref
                                                 h_0
                                                 name_0
                                                 (lambda ()
                                                   (error
                                                    "missing submodule declaration:"
                                                    name_0)))
                                                fold-var_0)))
                                          (values fold-var_1))))
                                   (for-loop_0 fold-var_1 rest_0))))
                             fold-var_0))))))
                    (for-loop_0 null names_0))))))))))))
(define eval-single-top (lambda (c_0 ns_0) (eval-one-top.1 #t c_0 ns_0 #t)))
(define compiled-multiple-top?
  (lambda (c_0)
    (let ((ld_0
           (if (compiled-in-memory? c_0)
             (compiled-in-memory-linklet-directory c_0)
             c_0)))
      (if (linklet-directory?$1 ld_0)
        (not (hash-ref (linklet-directory->hash$1 ld_0) #f #f))
        #f))))
(define eval-top
  (let ((eval-top_0
         (|#%name|
          eval-top
          (lambda (c3_0 ns4_0 eval-compiled1_0 as-tail?2_0)
            (begin
              (let ((eval-compiled_0
                     (if (eq? eval-compiled1_0 unsafe-undefined)
                       eval-top
                       eval-compiled1_0)))
                (if (compiled-multiple-top? c3_0)
                  (eval-multiple-tops c3_0 ns4_0 eval-compiled_0 as-tail?2_0)
                  (eval-one-top.1 #f c3_0 ns4_0 as-tail?2_0))))))))
    (case-lambda
     ((c_0 ns_0) (eval-top_0 c_0 ns_0 unsafe-undefined #t))
     ((c_0 ns_0 eval-compiled_0 as-tail?2_0)
      (eval-top_0 c_0 ns_0 eval-compiled_0 as-tail?2_0))
     ((c_0 ns_0 eval-compiled1_0) (eval-top_0 c_0 ns_0 eval-compiled1_0 #t)))))
(define eval-multiple-tops
  (lambda (c_0 ns_0 eval-compiled_0 as-tail?_0)
    (let ((eval-compiled-parts_0
           (|#%name|
            eval-compiled-parts
            (lambda (l_0)
              (begin
                (letrec*
                 ((loop_0
                   (|#%name|
                    loop
                    (lambda (l_1)
                      (begin
                        (if (null? l_1)
                          void
                          (if (null? (cdr l_1))
                            (|#%app| eval-compiled_0 (car l_1) ns_0 as-tail?_0)
                            (begin
                              (|#%app| eval-compiled_0 (car l_1) ns_0 #f)
                              (loop_0 (cdr l_1))))))))))
                 (loop_0 l_0)))))))
      (if (compiled-in-memory? c_0)
        (eval-compiled-parts_0
         (compiled-in-memory-pre-compiled-in-memorys c_0))
        (let ((c1_0 (hash-ref (linklet-directory->hash$1 c_0) 'data #f)))
          (if c1_0
            (eval-compiled-parts_0
             (let ((app_0 (compiled-top->compiled-tops c_0)))
               (create-compiled-in-memorys-using-shared-data
                app_0
                (hash-ref
                 (1/linklet-bundle->hash
                  (hash-ref (linklet-directory->hash$1 c1_0) #f))
                 0)
                ns_0)))
            (eval-compiled-parts_0 (compiled-top->compiled-tops c_0))))))))
(define eval-one-top.1
  (|#%name|
   eval-one-top
   (lambda (single-expression?5_0 c8_0 ns9_0 as-tail?7_0)
     (begin
       (begin
         (if log-performance?
           (start-performance-region
            'eval
            (if single-expression?5_0 'transformer 'top))
           (void))
         (begin0
           (let ((ld_0
                  (if (compiled-in-memory? c8_0)
                    (compiled-in-memory-linklet-directory c8_0)
                    c8_0)))
             (let ((h_0
                    (1/linklet-bundle->hash
                     (hash-ref (linklet-directory->hash$1 ld_0) #f))))
               (let ((link-instance_0
                      (if (compiled-in-memory? c8_0)
                        (link-instance-from-compiled-in-memory
                         c8_0
                         (if (not single-expression?5_0) ns9_0 #f))
                        (let ((app_0
                               (force-compile-linklet (hash-ref h_0 'link))))
                          (instantiate-linklet
                           app_0
                           (list
                            deserialize-instance
                            (let ((temp18_0 (namespace-phase ns9_0)))
                              (let ((temp19_0 (namespace-mpi ns9_0)))
                                (let ((temp20_0
                                       (namespace-bulk-binding-registry
                                        ns9_0)))
                                  (let ((temp21_0 (current-code-inspector)))
                                    (let ((temp20_1 temp20_0)
                                          (temp19_1 temp19_0)
                                          (temp18_1 temp18_0))
                                      (make-eager-instance-instance.1
                                       temp20_1
                                       temp18_1
                                       temp21_0
                                       ns9_0
                                       temp19_1))))))))))))
                 (let ((orig-phase_0 (hash-ref h_0 'original-phase)))
                   (let ((max-phase_0 (hash-ref h_0 'max-phase)))
                     (let ((phase-shift_0
                            (phase- (namespace-phase ns9_0) orig-phase_0)))
                       (let ((extra-inspector_0
                              (if (compiled-in-memory? c8_0)
                                (compiled-in-memory-compile-time-inspector
                                 c8_0)
                                #f)))
                         (let ((phase-to-link-extra-inspectorsss_0
                                (if (compiled-in-memory? c8_0)
                                  (compiled-in-memory-phase-to-link-extra-inspectorsss
                                   c8_0)
                                  hash2589)))
                           (let ((phase-to-link-modules_0
                                  (if (compiled-in-memory? c8_0)
                                    (compiled-in-memory-phase-to-link-module-uses
                                     c8_0)
                                    (instance-variable-value
                                     link-instance_0
                                     'phase-to-link-modules))))
                             (let ((thunk_0
                                    (let ((end_0 (sub1 orig-phase_0)))
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (prev-thunk_0 pos_0)
                                              (begin
                                                (if (> pos_0 end_0)
                                                  (let ((prev-thunk_1
                                                         (let ((prev-thunk_1
                                                                (begin
                                                                  (|#%app|
                                                                   prev-thunk_0
                                                                   #f)
                                                                  (let ((module-uses_0
                                                                         (hash-ref
                                                                          phase-to-link-modules_0
                                                                          pos_0
                                                                          null)))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_1
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (mis_0
                                                                                         is_0
                                                                                         lst_0)
                                                                                  (begin
                                                                                    (if (pair?
                                                                                         lst_0)
                                                                                      (let ((mu_0
                                                                                             (unsafe-car
                                                                                              lst_0)))
                                                                                        (let ((rest_0
                                                                                               (unsafe-cdr
                                                                                                lst_0)))
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (call-with-values
                                                                                              (lambda ()
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (let ((temp26_0
                                                                                                          (let ((app_0
                                                                                                                 (phase+
                                                                                                                  pos_0
                                                                                                                  phase-shift_0)))
                                                                                                            (phase-
                                                                                                             app_0
                                                                                                             (module-use-phase
                                                                                                              mu_0)))))
                                                                                                     (namespace-module-use->module+linklet-instances.1
                                                                                                      temp26_0
                                                                                                      #f
                                                                                                      #f
                                                                                                      ns9_0
                                                                                                      mu_0)))
                                                                                                 (case-lambda
                                                                                                  ((mis22_0
                                                                                                    is23_0)
                                                                                                   (values
                                                                                                    (cons
                                                                                                     mis22_0
                                                                                                     mis_0)
                                                                                                    (cons
                                                                                                     is23_0
                                                                                                     is_0)))
                                                                                                  (args
                                                                                                   (raise-binding-result-arity-error
                                                                                                    2
                                                                                                    args)))))
                                                                                              (case-lambda
                                                                                               ((mis_1
                                                                                                 is_1)
                                                                                                (values
                                                                                                 mis_1
                                                                                                 is_1))
                                                                                               (args
                                                                                                (raise-binding-result-arity-error
                                                                                                 2
                                                                                                 args)))))
                                                                                           (case-lambda
                                                                                            ((mis_1
                                                                                              is_1)
                                                                                             (for-loop_1
                                                                                              mis_1
                                                                                              is_1
                                                                                              rest_0))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args))))))
                                                                                      (values
                                                                                       mis_0
                                                                                       is_0)))))))
                                                                             (for-loop_1
                                                                              null
                                                                              null
                                                                              module-uses_0))))
                                                                        (case-lambda
                                                                         ((mis_0
                                                                           is_0)
                                                                          (let ((app_0
                                                                                 (reverse$1
                                                                                  mis_0)))
                                                                            (values
                                                                             app_0
                                                                             (reverse$1
                                                                              is_0))))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args)))))
                                                                     (case-lambda
                                                                      ((import-module-instances_0
                                                                        import-instances_0)
                                                                       (let ((phase-ns_0
                                                                              (namespace->namespace-at-phase
                                                                               ns9_0
                                                                               (phase+
                                                                                pos_0
                                                                                phase-shift_0))))
                                                                         (let ((inst_0
                                                                                (if single-expression?5_0
                                                                                  link-instance_0
                                                                                  (let ((temp29_0
                                                                                         (namespace-mpi
                                                                                          ns9_0)))
                                                                                    (let ((temp30_0
                                                                                           (namespace-inspector
                                                                                            ns9_0)))
                                                                                      (let ((temp31_0
                                                                                             (namespace-bulk-binding-registry
                                                                                              ns9_0)))
                                                                                        (let ((temp32_0
                                                                                               (lambda (name_0
                                                                                                        val_0)
                                                                                                 (namespace-set-transformer!
                                                                                                  ns9_0
                                                                                                  (phase+
                                                                                                   (sub1
                                                                                                    pos_0)
                                                                                                   phase-shift_0)
                                                                                                  name_0
                                                                                                  val_0))))
                                                                                          (let ((temp31_1
                                                                                                 temp31_0)
                                                                                                (temp30_1
                                                                                                 temp30_0)
                                                                                                (temp29_1
                                                                                                 temp29_0))
                                                                                            (make-instance-instance.1
                                                                                             temp31_1
                                                                                             temp30_1
                                                                                             phase-ns_0
                                                                                             phase-shift_0
                                                                                             temp29_1
                                                                                             temp32_0)))))))))
                                                                           (let ((linklet_0
                                                                                  (force-compile-linklet
                                                                                   (hash-ref
                                                                                    h_0
                                                                                    pos_0
                                                                                    #f))))
                                                                             (if linklet_0
                                                                               (begin
                                                                                 (let ((temp37_0
                                                                                        (current-code-inspector)))
                                                                                   (let ((temp39_0
                                                                                          (hash-ref
                                                                                           phase-to-link-extra-inspectorsss_0
                                                                                           pos_0
                                                                                           #f)))
                                                                                     (let ((temp37_1
                                                                                            temp37_0))
                                                                                       (check-require-access.1
                                                                                        3
                                                                                        linklet_0
                                                                                        module-uses_0
                                                                                        import-module-instances_0
                                                                                        temp37_1
                                                                                        extra-inspector_0
                                                                                        temp39_0))))
                                                                                 (let ((instantiate_0
                                                                                        (|#%name|
                                                                                         instantiate
                                                                                         (lambda (tail?_0)
                                                                                           (begin
                                                                                             (let ((app_0
                                                                                                    (list*
                                                                                                     top-level-instance
                                                                                                     link-instance_0
                                                                                                     inst_0
                                                                                                     import-instances_0)))
                                                                                               (instantiate-linklet
                                                                                                linklet_0
                                                                                                app_0
                                                                                                (let ((phase-shift_1
                                                                                                       (let ((app_1
                                                                                                              (phase+
                                                                                                               pos_0
                                                                                                               phase-shift_0)))
                                                                                                         (phase-
                                                                                                          app_1
                                                                                                          (namespace-0-phase
                                                                                                           ns9_0)))))
                                                                                                  (begin-unsafe
                                                                                                   (definitions-variables
                                                                                                    (namespace->definitions
                                                                                                     ns9_0
                                                                                                     phase-shift_1))))
                                                                                                (not
                                                                                                 tail?_0))))))))
                                                                                   (if (begin-unsafe
                                                                                        (eq?
                                                                                         pos_0
                                                                                         0))
                                                                                     instantiate_0
                                                                                     (if single-expression?5_0
                                                                                       (|#%name|
                                                                                        prev-thunk
                                                                                        (lambda (tail?_0)
                                                                                          (begin
                                                                                            (with-continuation-mark*
                                                                                             authentic
                                                                                             parameterization-key
                                                                                             (extend-parameterization
                                                                                              (continuation-mark-set-first
                                                                                               #f
                                                                                               parameterization-key)
                                                                                              1/current-namespace
                                                                                              phase-ns_0)
                                                                                             (instantiate_0
                                                                                              tail?_0)))))
                                                                                       (let ((ns-1_0
                                                                                              (namespace->namespace-at-phase
                                                                                               phase-ns_0
                                                                                               (sub1
                                                                                                pos_0))))
                                                                                         (|#%name|
                                                                                          prev-thunk
                                                                                          (lambda (tail?_0)
                                                                                            (begin
                                                                                              (with-continuation-mark*
                                                                                               authentic
                                                                                               parameterization-key
                                                                                               (extend-parameterization
                                                                                                (continuation-mark-set-first
                                                                                                 #f
                                                                                                 parameterization-key)
                                                                                                1/current-namespace
                                                                                                phase-ns_0)
                                                                                               (with-continuation-mark*
                                                                                                authentic
                                                                                                current-expand-context
                                                                                                (make-expand-context.1
                                                                                                 #f
                                                                                                 #f
                                                                                                 #f
                                                                                                 #f
                                                                                                 #f
                                                                                                 ns-1_0)
                                                                                                (instantiate_0
                                                                                                 tail?_0)))))))))))
                                                                               void)))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))))))
                                                           (values
                                                            prev-thunk_1))))
                                                    (for-loop_0
                                                     prev-thunk_1
                                                     (+ pos_0 -1)))
                                                  prev-thunk_0))))))
                                         (for-loop_0 void max-phase_0))))))
                               (|#%app| thunk_0 as-tail?7_0)))))))))))
           (if log-performance? (end-performance-region) (void))))))))
(define link-instance-from-compiled-in-memory
  (lambda (cim_0 to-ns_0)
    (let ((orig-syntax-literals_0 (compiled-in-memory-syntax-literals cim_0)))
      (let ((syntax-literals_0
             (if (not to-ns_0)
               orig-syntax-literals_0
               (if (let ((app_0 (compiled-in-memory-namespace-scopes cim_0)))
                     (namespace-scopes=?
                      app_0
                      (extract-namespace-scopes to-ns_0)))
                 orig-syntax-literals_0
                 (let ((len_0 (vector-length orig-syntax-literals_0)))
                   (begin
                     (if (exact-nonnegative-integer? len_0)
                       (void)
                       (raise-argument-error
                        'for/vector
                        "exact-nonnegative-integer?"
                        len_0))
                     (let ((v_0 (make-vector len_0 0)))
                       (begin
                         (if (zero? len_0)
                           (void)
                           (call-with-values
                            (lambda ()
                              (begin
                                (check-vector orig-syntax-literals_0)
                                (values
                                 orig-syntax-literals_0
                                 (unsafe-vector-length
                                  orig-syntax-literals_0))))
                            (case-lambda
                             ((vec_0 len_1)
                              (begin
                                #f
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (i_0 pos_0)
                                      (begin
                                        (if (unsafe-fx< pos_0 len_1)
                                          (let ((s_0
                                                 (unsafe-vector-ref
                                                  vec_0
                                                  pos_0)))
                                            (let ((i_1
                                                   (let ((i_1
                                                          (begin
                                                            (unsafe-vector*-set!
                                                             v_0
                                                             i_0
                                                             (swap-top-level-scopes
                                                              s_0
                                                              (compiled-in-memory-namespace-scopes
                                                               cim_0)
                                                              to-ns_0))
                                                            (unsafe-fx+
                                                             1
                                                             i_0))))
                                                     (values i_1))))
                                              (if (if (not
                                                       (let ((x_0 (list s_0)))
                                                         (unsafe-fx=
                                                          i_1
                                                          len_0)))
                                                    #t
                                                    #f)
                                                (for-loop_0
                                                 i_1
                                                 (unsafe-fx+ 1 pos_0))
                                                i_1)))
                                          i_0))))))
                                 (for-loop_0 0 0))))
                             (args
                              (raise-binding-result-arity-error 2 args)))))
                         v_0))))))))
        (make-instance
         'link
         #f
         'constant
         mpi-vector-id
         (compiled-in-memory-mpis cim_0)
         syntax-literals-id
         syntax-literals_0)))))
(define not-available (gensym 'not-available))
(define get-not-available (lambda () not-available))
(define can-direct-eval?
  (lambda (p_0 ns_0 self-mpi_0)
    (if (parsed-app? p_0)
      (if (can-direct-eval? (parsed-app-rator p_0) ns_0 self-mpi_0)
        (let ((lst_0 (parsed-app-rands p_0)))
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (result_0 lst_1)
                  (begin
                    (if (pair? lst_1)
                      (let ((r_0 (unsafe-car lst_1)))
                        (let ((rest_0 (unsafe-cdr lst_1)))
                          (let ((result_1
                                 (let ((result_1
                                        (can-direct-eval?
                                         r_0
                                         ns_0
                                         self-mpi_0)))
                                   (values result_1))))
                            (if (if (not
                                     (let ((x_0 (list r_0))) (not result_1)))
                                  #t
                                  #f)
                              (for-loop_0 result_1 rest_0)
                              result_1))))
                      result_0))))))
             (for-loop_0 #t lst_0))))
        #f)
      (if (parsed-id? p_0)
        (not (eq? (get-id-value p_0 ns_0 self-mpi_0) not-available))
        (if (parsed-quote? p_0) #t (if (parsed-quote-syntax? p_0) #t #f))))))
(define direct-eval
  (lambda (p_0 ns_0 self-mpi_0)
    (if (parsed-app? p_0)
      (let ((app_0 (direct-eval (parsed-app-rator p_0) ns_0 self-mpi_0)))
        (apply
         app_0
         (reverse$1
          (let ((lst_0 (parsed-app-rands p_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((r_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (let ((fold-var_1
                                   (let ((fold-var_1
                                          (cons
                                           (direct-eval r_0 ns_0 self-mpi_0)
                                           fold-var_0)))
                                     (values fold-var_1))))
                              (for-loop_0 fold-var_1 rest_0))))
                        fold-var_0))))))
               (for-loop_0 null lst_0)))))))
      (if (parsed-id? p_0)
        (get-id-value p_0 ns_0 self-mpi_0)
        (if (parsed-quote? p_0)
          (parsed-quote-datum p_0)
          (if (parsed-quote-syntax? p_0)
            (parsed-quote-syntax-datum p_0)
            #f))))))
(define get-id-value
  (lambda (p_0 ns_0 self-mpi_0)
    (let ((b_0 (parsed-id-binding p_0)))
      (if (parsed-primitive-id? p_0)
        (let ((app_0 (primitive-table '|#%kernel|)))
          (hash-ref app_0 (module-binding-sym b_0) get-not-available))
        (if (let ((or-part_0 (parsed-top-id? p_0)))
              (if or-part_0
                or-part_0
                (let ((or-part_1 (not b_0)))
                  (if or-part_1
                    or-part_1
                    (eq? self-mpi_0 (module-binding-module b_0))))))
          (let ((app_0
                 (if b_0 (module-binding-phase b_0) (namespace-phase ns_0))))
            (namespace-get-variable
             ns_0
             app_0
             (if b_0 (module-binding-sym b_0) (syntax-e$1 (parsed-s p_0)))
             get-not-available))
          (let ((mi_0
                 (let ((temp2_0
                        (1/module-path-index-resolve
                         (module-binding-module b_0))))
                   (let ((temp3_0
                          (phase-
                           (namespace-phase ns_0)
                           (module-binding-phase b_0))))
                     (let ((temp2_1 temp2_0))
                       (namespace->module-instance.1
                        #f
                        #f
                        void
                        ns_0
                        temp2_1
                        temp3_0))))))
            (if (not mi_0)
              not-available
              (if (let ((app_0 (module-binding-phase b_0)))
                    (let ((app_1 (module-binding-sym b_0)))
                      (check-single-require-access
                       mi_0
                       app_0
                       app_1
                       (module-binding-extra-inspector b_0))))
                (let ((app_0 (module-binding-phase b_0)))
                  (namespace-get-variable
                   (module-instance-namespace mi_0)
                   app_0
                   (module-binding-sym b_0)
                   get-not-available))
                not-available))))))))
(define runtime-scope (new-multi-scope))
(define runtime-stx (add-scope empty-syntax runtime-scope))
(define runtime-module-name (1/make-resolved-module-path '|#%runtime|))
(define runtime-mpi (1/module-path-index-join ''|#%runtime| #f))
(define add-runtime-primitive!
  (lambda (sym_0)
    (let ((temp1_0 (syntax-scope-set runtime-stx 0)))
      (let ((temp3_0
             (make-module-binding.1
              #f
              null
              #f
              #f
              unsafe-undefined
              unsafe-undefined
              0
              unsafe-undefined
              runtime-mpi
              0
              sym_0)))
        (let ((temp1_1 temp1_0))
          (add-binding-in-scopes!.1 #f temp1_1 sym_0 temp3_0))))))
(define effect_2793
  (begin
    (void
     (begin
       (add-runtime-primitive! 'values)
       (add-runtime-primitive! 'cons)
       (add-runtime-primitive! 'list)
       (add-runtime-primitive! 'make-struct-type)
       (add-runtime-primitive! 'make-struct-type-property)
       (add-runtime-primitive! 'gensym)
       (add-runtime-primitive! 'string->uninterned-symbol)))
    (void)))
(define runtime-instances
  '(|#%kernel|
    |#%paramz|
    |#%foreign|
    |#%unsafe|
    |#%flfxnum|
    |#%extfl|
    |#%network|
    |#%place|
    |#%futures|
    |#%terminal|))
(define box-cons! (lambda (b_0 v_0) (set-box! b_0 (cons v_0 (unbox b_0)))))
(define box-clear!
  (lambda (b_0) (begin0 (reverse$1 (unbox b_0)) (set-box! b_0 null))))
(define finish_2589
  (make-struct-type-install-properties
   '(lift-context)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'lift-context))
(define struct:lift-context
  (make-record-type-descriptor
   'lift-context
   #f
   (|#%nongenerative-uid| lift-context)
   #f
   #f
   '(3 . 0)))
(define effect_1545 (finish_2589 struct:lift-context))
(define lift-context1.1
  (|#%name|
   lift-context
   (record-constructor
    (make-record-constructor-descriptor struct:lift-context #f #f))))
(define lift-context?
  (|#%name| lift-context? (record-predicate struct:lift-context)))
(define lift-context-convert
  (|#%name| lift-context-convert (record-accessor struct:lift-context 0)))
(define lift-context-lifts
  (|#%name| lift-context-lifts (record-accessor struct:lift-context 1)))
(define lift-context-module*-ok?
  (|#%name| lift-context-module*-ok? (record-accessor struct:lift-context 2)))
(define finish_2698
  (make-struct-type-install-properties
   '(lifted-bind)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'lifted-bind))
(define struct:lifted-bind
  (make-record-type-descriptor
   'lifted-bind
   #f
   (|#%nongenerative-uid| lifted-bind)
   #f
   #f
   '(3 . 0)))
(define effect_1767 (finish_2698 struct:lifted-bind))
(define lifted-bind2.1
  (|#%name|
   lifted-bind
   (record-constructor
    (make-record-constructor-descriptor struct:lifted-bind #f #f))))
(define lifted-bind?
  (|#%name| lifted-bind? (record-predicate struct:lifted-bind)))
(define lifted-bind-ids
  (|#%name| lifted-bind-ids (record-accessor struct:lifted-bind 0)))
(define lifted-bind-keys
  (|#%name| lifted-bind-keys (record-accessor struct:lifted-bind 1)))
(define lifted-bind-rhs
  (|#%name| lifted-bind-rhs (record-accessor struct:lifted-bind 2)))
(define make-lift-context.1
  (|#%name|
   make-lift-context
   (lambda (module*-ok?3_0 convert5_0)
     (begin (lift-context1.1 convert5_0 (box null) module*-ok?3_0)))))
(define add-lifted!
  (lambda (lifts_0 ids_0 rhs_0 phase_0)
    (call-with-values
     (lambda () (|#%app| (lift-context-convert lifts_0) ids_0 rhs_0 phase_0))
     (case-lambda
      ((lifted-ids_0 lifted_0)
       (begin (box-cons! (lift-context-lifts lifts_0) lifted_0) lifted-ids_0))
      (args (raise-binding-result-arity-error 2 args))))))
(define get-and-clear-lifts!
  (lambda (lifts_0) (box-clear! (lift-context-lifts lifts_0))))
(define make-local-lift
  (lambda (lift-env_0 counter_0 local-sym_0)
    (lambda (ids_0 rhs_0 phase_0)
      (let ((keys_0
             (reverse$1
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (fold-var_0 lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((id_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (let ((fold-var_1
                                     (let ((fold-var_1
                                            (cons
                                             (let ((key_0
                                                    (add-local-binding!.1
                                                     #f
                                                     #f
                                                     local-sym_0
                                                     id_0
                                                     phase_0
                                                     counter_0)))
                                               (begin
                                                 (set-box!
                                                  lift-env_0
                                                  (let ((env_0
                                                         (unbox lift-env_0)))
                                                    (begin-unsafe
                                                     (hash-set
                                                      env_0
                                                      key_0
                                                      variable))))
                                                 key_0))
                                             fold-var_0)))
                                       (values fold-var_1))))
                                (for-loop_0 fold-var_1 rest_0))))
                          fold-var_0))))))
                 (for-loop_0 null ids_0))))))
        (values ids_0 (lifted-bind2.1 ids_0 keys_0 rhs_0))))))
(define make-top-level-lift
  (lambda (ctx_0)
    (lambda (ids_0 rhs_0 phase_0)
      (let ((post-scope_0
             (post-expansion-scope
              (let ((v_0
                     (namespace-get-root-expand-ctx
                      (begin-unsafe
                       (expand-context/inner-namespace
                        (root-expand-context/outer-inner ctx_0))))))
                (begin-unsafe
                 (root-expand-context/outer-post-expansion v_0))))))
        (let ((tl-ids_0
               (reverse$1
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (fold-var_0 lst_0)
                        (begin
                          (if (pair? lst_0)
                            (let ((id_0 (unsafe-car lst_0)))
                              (let ((rest_0 (unsafe-cdr lst_0)))
                                (let ((fold-var_1
                                       (let ((fold-var_1
                                              (cons
                                               (add-scope id_0 post-scope_0)
                                               fold-var_0)))
                                         (values fold-var_1))))
                                  (for-loop_0 fold-var_1 rest_0))))
                            fold-var_0))))))
                   (for-loop_0 null ids_0))))))
          (let ((syms_0 (select-defined-syms-and-bind!/ctx tl-ids_0 ctx_0)))
            (values tl-ids_0 (lifted-bind2.1 tl-ids_0 syms_0 rhs_0))))))))
(define wrap-lifts-as-let
  (lambda (lifts_0 body_0 phase_0)
    (datum->syntax$1
     #f
     (let ((lst_0 (reverse$1 lifts_0)))
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (body_1 lst_1)
               (begin
                 (if (pair? lst_1)
                   (let ((lift_0 (unsafe-car lst_1)))
                     (let ((rest_0 (unsafe-cdr lst_1)))
                       (let ((body_2
                              (let ((body_2
                                     (begin
                                       (if (lifted-bind? lift_0)
                                         (void)
                                         (error
                                          "non-bindings in `lift-context`"))
                                       (let ((app_0
                                              (datum->syntax$1
                                               (syntax-shift-phase-level$1
                                                core-stx
                                                phase_0)
                                               'let-values)))
                                         (list
                                          app_0
                                          (list
                                           (list
                                            (lifted-bind-ids lift_0)
                                            (lifted-bind-rhs lift_0)))
                                          body_1)))))
                                (values body_2))))
                         (for-loop_0 body_2 rest_0))))
                   body_1))))))
          (for-loop_0 body_0 lst_0)))))))
(define wrap-lifts-as-begin.1
  (|#%name|
   wrap-lifts-as-begin
   (lambda (adjust-body8_0 adjust-form7_0 lifts11_0 body12_0 phase13_0)
     (begin
       (let ((adjust-form_0
              (if (eq? adjust-form7_0 unsafe-undefined)
                values
                adjust-form7_0)))
         (let ((adjust-body_0
                (if (eq? adjust-body8_0 unsafe-undefined)
                  values
                  adjust-body8_0)))
           (datum->syntax$1
            #f
            (let ((app_0
                   (datum->syntax$1
                    (syntax-shift-phase-level$1 core-stx phase13_0)
                    'begin)))
              (cons
               app_0
               (let ((app_1
                      (reverse$1
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (fold-var_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((lift_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((fold-var_1
                                              (let ((fold-var_1
                                                     (cons
                                                      (|#%app|
                                                       adjust-form_0
                                                       (if (lifted-bind?
                                                            lift_0)
                                                         (datum->syntax$1
                                                          #f
                                                          (let ((app_1
                                                                 (datum->syntax$1
                                                                  (syntax-shift-phase-level$1
                                                                   core-stx
                                                                   phase13_0)
                                                                  'define-values)))
                                                            (let ((app_2
                                                                   (lifted-bind-ids
                                                                    lift_0)))
                                                              (list
                                                               app_1
                                                               app_2
                                                               (lifted-bind-rhs
                                                                lift_0)))))
                                                         lift_0))
                                                      fold-var_0)))
                                                (values fold-var_1))))
                                         (for-loop_0 fold-var_1 rest_0))))
                                   fold-var_0))))))
                          (for-loop_0 null lifts11_0))))))
                 (append
                  app_1
                  (list (|#%app| adjust-body_0 body12_0)))))))))))))
(define get-lifts-as-lists
  (lambda (lifts_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((lift_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (let ((fold-var_1
                                   (cons
                                    (list
                                     (lifted-bind-ids lift_0)
                                     (lifted-bind-keys lift_0)
                                     (lifted-bind-rhs lift_0))
                                    fold-var_0)))
                              (values fold-var_1))))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null lifts_0))))))
(define finish_3138
  (make-struct-type-install-properties
   '(module-lift-context)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'module-lift-context))
(define struct:module-lift-context
  (make-record-type-descriptor
   'module-lift-context
   #f
   (|#%nongenerative-uid| module-lift-context)
   #f
   #f
   '(3 . 0)))
(define effect_2649 (finish_3138 struct:module-lift-context))
(define module-lift-context15.1
  (|#%name|
   module-lift-context
   (record-constructor
    (make-record-constructor-descriptor struct:module-lift-context #f #f))))
(define module-lift-context?
  (|#%name|
   module-lift-context?
   (record-predicate struct:module-lift-context)))
(define module-lift-context-wrt-phase
  (|#%name|
   module-lift-context-wrt-phase
   (record-accessor struct:module-lift-context 0)))
(define module-lift-context-lifts
  (|#%name|
   module-lift-context-lifts
   (record-accessor struct:module-lift-context 1)))
(define module-lift-context-module*-ok?
  (|#%name|
   module-lift-context-module*-ok?
   (record-accessor struct:module-lift-context 2)))
(define make-module-lift-context
  (lambda (phase_0 module*-ok?_0)
    (module-lift-context15.1 phase_0 (box null) module*-ok?_0)))
(define get-and-clear-module-lifts!
  (lambda (module-lifts_0)
    (box-clear! (module-lift-context-lifts module-lifts_0))))
(define add-lifted-module!
  (lambda (module-lifts_0 s_0 phase_0)
    (begin
      (if (let ((or-part_0
                 (if (module-lift-context? module-lifts_0)
                   (module-lift-context-module*-ok? module-lifts_0)
                   #f)))
            (if or-part_0
              or-part_0
              (if (lift-context? module-lifts_0)
                (lift-context-module*-ok? module-lifts_0)
                #f)))
        (void)
        (let ((tmp_0 (core-form-sym s_0 phase_0)))
          (if (eq? tmp_0 'module)
            (void)
            (if (eq? tmp_0 'module*)
              (raise-arguments-error
               'syntax-local-lift-module
               "cannot lift `module*' to a top-level context"
               "syntax"
               s_0)
              (raise-arguments-error
               'syntax-local-lift-module
               "not a `module' declaration"
               "syntax"
               s_0)))))
      (if (module-lift-context? module-lifts_0)
        (box-cons! (module-lift-context-lifts module-lifts_0) s_0)
        (if (lift-context? module-lifts_0)
          (box-cons! (lift-context-lifts module-lifts_0) s_0)
          (error
           "internal error: unrecognized lift-context type for module lift"))))))
(define finish_2859
  (make-struct-type-install-properties
   '(require-lift-context)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'require-lift-context))
(define struct:require-lift-context
  (make-record-type-descriptor
   'require-lift-context
   #f
   (|#%nongenerative-uid| require-lift-context)
   #f
   #f
   '(3 . 0)))
(define effect_3057 (finish_2859 struct:require-lift-context))
(define require-lift-context16.1
  (|#%name|
   require-lift-context
   (record-constructor
    (make-record-constructor-descriptor struct:require-lift-context #f #f))))
(define require-lift-context?
  (|#%name|
   require-lift-context?
   (record-predicate struct:require-lift-context)))
(define require-lift-context-do-require
  (|#%name|
   require-lift-context-do-require
   (record-accessor struct:require-lift-context 0)))
(define require-lift-context-wrt-phase
  (|#%name|
   require-lift-context-wrt-phase
   (record-accessor struct:require-lift-context 1)))
(define require-lift-context-requires
  (|#%name|
   require-lift-context-requires
   (record-accessor struct:require-lift-context 2)))
(define make-require-lift-context
  (let ((make-require-lift-context_0
         (|#%name|
          make-require-lift-context
          (lambda (wrt-phase18_0 do-require19_0 initial-lifts17_0)
            (begin
              (require-lift-context16.1
               do-require19_0
               wrt-phase18_0
               (box initial-lifts17_0)))))))
    (case-lambda
     ((wrt-phase_0 do-require_0)
      (make-require-lift-context_0 wrt-phase_0 do-require_0 null))
     ((wrt-phase_0 do-require_0 initial-lifts17_0)
      (make-require-lift-context_0
       wrt-phase_0
       do-require_0
       initial-lifts17_0)))))
(define get-require-lifts
  (lambda (require-lifts_0)
    (unbox (require-lift-context-requires require-lifts_0))))
(define get-and-clear-require-lifts!
  (lambda (require-lifts_0)
    (box-clear! (require-lift-context-requires require-lifts_0))))
(define add-lifted-require!
  (lambda (require-lifts_0 s_0 phase_0)
    (let ((r_0
           (|#%app|
            (require-lift-context-do-require require-lifts_0)
            s_0
            phase_0)))
      (box-cons! (require-lift-context-requires require-lifts_0) r_0))))
(define finish_2755
  (make-struct-type-install-properties
   '(to-module-lift-context)
   4
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'to-module-lift-context))
(define struct:to-module-lift-context
  (make-record-type-descriptor
   'to-module-lift-context
   #f
   (|#%nongenerative-uid| to-module-lift-context)
   #f
   #f
   '(4 . 0)))
(define effect_3069 (finish_2755 struct:to-module-lift-context))
(define to-module-lift-context20.1
  (|#%name|
   to-module-lift-context
   (record-constructor
    (make-record-constructor-descriptor struct:to-module-lift-context #f #f))))
(define to-module-lift-context?
  (|#%name|
   to-module-lift-context?
   (record-predicate struct:to-module-lift-context)))
(define to-module-lift-context-wrt-phase
  (|#%name|
   to-module-lift-context-wrt-phase
   (record-accessor struct:to-module-lift-context 0)))
(define to-module-lift-context-provides
  (|#%name|
   to-module-lift-context-provides
   (record-accessor struct:to-module-lift-context 1)))
(define to-module-lift-context-end-as-expressions?
  (|#%name|
   to-module-lift-context-end-as-expressions?
   (record-accessor struct:to-module-lift-context 2)))
(define to-module-lift-context-ends
  (|#%name|
   to-module-lift-context-ends
   (record-accessor struct:to-module-lift-context 3)))
(define make-to-module-lift-context.1
  (|#%name|
   make-to-module-lift-context
   (lambda (end-as-expressions?22_0 shared-module-ends21_0 phase25_0)
     (begin
       (to-module-lift-context20.1
        phase25_0
        (box null)
        end-as-expressions?22_0
        shared-module-ends21_0)))))
(define make-shared-module-ends (lambda () (box null)))
(define get-and-clear-end-lifts!
  (lambda (to-module-lifts_0)
    (box-clear! (to-module-lift-context-ends to-module-lifts_0))))
(define get-and-clear-provide-lifts!
  (lambda (to-module-lifts_0)
    (box-clear! (to-module-lift-context-provides to-module-lifts_0))))
(define add-lifted-to-module-provide!
  (lambda (to-module-lifts_0 s_0 phase_0)
    (box-cons! (to-module-lift-context-provides to-module-lifts_0) s_0)))
(define add-lifted-to-module-end!
  (lambda (to-module-lifts_0 s_0 phase_0)
    (box-cons! (to-module-lift-context-ends to-module-lifts_0) s_0)))
(define finish_2433
  (make-struct-type-install-properties
   '(expanded-syntax)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'already-expanded))
(define struct:already-expanded
  (make-record-type-descriptor
   'expanded-syntax
   #f
   (|#%nongenerative-uid| expanded-syntax)
   #f
   #f
   '(2 . 0)))
(define effect_2568 (finish_2433 struct:already-expanded))
(define already-expanded1.1
  (|#%name|
   already-expanded
   (record-constructor
    (make-record-constructor-descriptor struct:already-expanded #f #f))))
(define already-expanded?_1849
  (|#%name| expanded-syntax? (record-predicate struct:already-expanded)))
(define already-expanded?
  (|#%name|
   expanded-syntax?
   (lambda (v)
     (if (already-expanded?_1849 v)
       #t
       ($value
        (if (impersonator? v)
          (already-expanded?_1849 (impersonator-val v))
          #f))))))
(define already-expanded-s_2877
  (|#%name| expanded-syntax-s (record-accessor struct:already-expanded 0)))
(define already-expanded-s
  (|#%name|
   expanded-syntax-s
   (lambda (s)
     (if (already-expanded?_1849 s)
       (already-expanded-s_2877 s)
       ($value
        (impersonate-ref
         already-expanded-s_2877
         struct:already-expanded
         0
         s
         's))))))
(define already-expanded-binding-layer_2482
  (|#%name|
   expanded-syntax-binding-layer
   (record-accessor struct:already-expanded 1)))
(define already-expanded-binding-layer
  (|#%name|
   expanded-syntax-binding-layer
   (lambda (s)
     (if (already-expanded?_1849 s)
       (already-expanded-binding-layer_2482 s)
       ($value
        (impersonate-ref
         already-expanded-binding-layer_2482
         struct:already-expanded
         1
         s
         'binding-layer))))))
(define-values
 (1/prop:liberal-define-context
  has-liberal-define-context-property?
  liberal-define-context-value)
 (make-struct-type-property 'liberal-define-context))
(define finish_2095
  (make-struct-type-install-properties
   '(liberal-define-context)
   0
   0
   #f
   (list (cons 1/prop:liberal-define-context #t))
   (current-inspector)
   #f
   '()
   #f
   'make-liberal-define-context))
(define struct:liberal-define-context
  (make-record-type-descriptor
   'liberal-define-context
   #f
   (|#%nongenerative-uid| liberal-define-context)
   #f
   #f
   '(0 . 0)))
(define effect_2849 (finish_2095 struct:liberal-define-context))
(define make-liberal-define-context
  (|#%name|
   make-liberal-define-context
   (record-constructor
    (make-record-constructor-descriptor struct:liberal-define-context #f #f))))
(define 1/liberal-define-context?_2641
  (|#%name|
   liberal-define-context?
   (record-predicate struct:liberal-define-context)))
(define 1/liberal-define-context?
  (|#%name|
   liberal-define-context?
   (lambda (v)
     (if (1/liberal-define-context?_2641 v)
       #t
       ($value
        (if (impersonator? v)
          (1/liberal-define-context?_2641 (impersonator-val v))
          #f))))))
(define-values
 (1/prop:expansion-contexts expansion-contexts? expansion-contexts-ref)
 (make-struct-type-property
  'expansion-contexts
  (lambda (v_0 info_0)
    (begin
      (if (if (list? v_0)
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (result_0 lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((s_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (let ((result_1
                                   (let ((result_1
                                          (memq
                                           s_0
                                           '(expression
                                             top-level
                                             module
                                             module-begin
                                             definition-context))))
                                     (values result_1))))
                              (if (if (not
                                       (let ((x_0 (list s_0))) (not result_1)))
                                    #t
                                    #f)
                                (for-loop_0 result_1 rest_0)
                                result_1))))
                        result_0))))))
               (for-loop_0 #t v_0)))
            #f)
        (void)
        (raise-argument-error
         'guard-for-prop:expansion-contexts
         "(listof (or/c 'expression 'top-level 'module 'module-begin 'definition-context))"
         v_0))
      v_0))))
(define not-in-this-expand-context?
  (lambda (t_0 ctx_0)
    (if (expansion-contexts? t_0)
      (not
       (let ((app_0
              (context->symbol
               (begin-unsafe (expand-context/outer-context ctx_0)))))
         (memq app_0 (expansion-contexts-ref t_0))))
      #f)))
(define context->symbol
  (lambda (context_0) (if (symbol? context_0) context_0 'definition-context)))
(define avoid-current-expand-context
  (lambda (s_0 t_0 ctx_0)
    (let ((wrap_0
           (|#%name|
            wrap
            (lambda (sym_0)
              (begin
                (datum->syntax$1
                 #f
                 (list
                  (let ((app_0 (datum->syntax$1 core-stx sym_0)))
                    (syntax-shift-phase-level$1
                     app_0
                     (begin-unsafe
                      (expand-context/inner-phase
                       (root-expand-context/outer-inner ctx_0)))))
                  s_0)))))))
      (let ((fail_0
             (|#%name|
              fail
              (lambda ()
                (begin
                  (raise-syntax-error$1
                   #f
                   (format
                    "not allowed in context\n  expansion context: ~a"
                    (context->symbol
                     (begin-unsafe (expand-context/outer-context ctx_0))))
                   s_0))))))
        (let ((tmp_0
               (context->symbol
                (begin-unsafe (expand-context/outer-context ctx_0)))))
          (if (eq? tmp_0 'module-begin)
            (wrap_0 'begin)
            (if (if (eq? tmp_0 'module)
                  #t
                  (if (eq? tmp_0 'top-level)
                    #t
                    (eq? tmp_0 'definition-context)))
              (if (memq 'expression (expansion-contexts-ref t_0))
                (wrap_0 '|#%expression|)
                (fail_0))
              (fail_0))))))))
(define finish_2318
  (make-struct-type-install-properties
   '(reference-record)
   3
   0
   #f
   (list (cons prop:authentic #t))
   #f
   #f
   '()
   #f
   'reference-record))
(define struct:reference-record
  (make-record-type-descriptor
   'reference-record
   #f
   (|#%nongenerative-uid| reference-record)
   #f
   #f
   '(3 . 7)))
(define effect_2371 (finish_2318 struct:reference-record))
(define reference-record1.1
  (|#%name|
   reference-record
   (record-constructor
    (make-record-constructor-descriptor struct:reference-record #f #f))))
(define reference-record?
  (|#%name| reference-record? (record-predicate struct:reference-record)))
(define reference-record-already-bound
  (|#%name|
   reference-record-already-bound
   (record-accessor struct:reference-record 0)))
(define reference-record-reference-before-bound
  (|#%name|
   reference-record-reference-before-bound
   (record-accessor struct:reference-record 1)))
(define reference-record-all-referenced?
  (|#%name|
   reference-record-all-referenced?
   (record-accessor struct:reference-record 2)))
(define set-reference-record-already-bound!
  (|#%name|
   set-reference-record-already-bound!
   (record-mutator struct:reference-record 0)))
(define set-reference-record-reference-before-bound!
  (|#%name|
   set-reference-record-reference-before-bound!
   (record-mutator struct:reference-record 1)))
(define set-reference-record-all-referenced?!
  (|#%name|
   set-reference-record-all-referenced?!
   (record-mutator struct:reference-record 2)))
(define make-reference-record
  (lambda () (let ((app_0 (seteq))) (reference-record1.1 app_0 (seteq) #f))))
(define reference-record-used!
  (lambda (rr_0 key_0)
    (if (let ((s_0 (reference-record-already-bound rr_0)))
          (begin-unsafe (hash-ref s_0 key_0 #f)))
      (void)
      (set-reference-record-reference-before-bound!
       rr_0
       (let ((s_0 (reference-record-reference-before-bound rr_0)))
         (begin-unsafe (hash-set s_0 key_0 #t)))))))
(define reference-records-all-used!
  (lambda (rrs_0)
    (begin
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (lst_0)
              (begin
                (if (pair? lst_0)
                  (let ((rr_0 (unsafe-car lst_0)))
                    (let ((rest_0 (unsafe-cdr lst_0)))
                      (let ((next-k-proc_0
                             (|#%name|
                              next-k-proc
                              (lambda () (begin (for-loop_0 rest_0))))))
                        (if (reference-record-all-referenced? rr_0)
                          (values)
                          (begin
                            (set-reference-record-all-referenced?! rr_0 #t)
                            (next-k-proc_0))))))
                  (values)))))))
         (for-loop_0 rrs_0)))
      (void))))
(define reference-record-bound!
  (lambda (rr_0 keys_0)
    (begin
      (set-reference-record-already-bound!
       rr_0
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (ab_0 lst_0)
               (begin
                 (if (pair? lst_0)
                   (let ((key_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((ab_1
                              (let ((ab_1
                                     (begin-unsafe (hash-set ab_0 key_0 #t))))
                                (values ab_1))))
                         (for-loop_0 ab_1 rest_0))))
                   ab_0))))))
          (for-loop_0 (reference-record-already-bound rr_0) keys_0))))
      (set-reference-record-reference-before-bound!
       rr_0
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (rbb_0 lst_0)
               (begin
                 (if (pair? lst_0)
                   (let ((key_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((rbb_1
                              (let ((rbb_1
                                     (begin-unsafe (hash-remove rbb_0 key_0))))
                                (values rbb_1))))
                         (for-loop_0 rbb_1 rest_0))))
                   rbb_0))))))
          (for-loop_0
           (reference-record-reference-before-bound rr_0)
           keys_0)))))))
(define reference-record-forward-references?
  (lambda (rr_0)
    (let ((or-part_0 (reference-record-all-referenced? rr_0)))
      (if or-part_0
        or-part_0
        (positive?
         (let ((s_0 (reference-record-reference-before-bound rr_0)))
           (begin-unsafe (hash-count s_0))))))))
(define reference-record-clear!
  (lambda (rr_0)
    (begin
      (set-reference-record-already-bound! rr_0 #f)
      (set-reference-record-reference-before-bound! rr_0 #f))))
(define call-expand-observe
  (lambda (obs_0 key_0 . args_0)
    (begin
      (let ((c1_0 (hash-ref key->arity key_0 #f)))
        (if c1_0
          (if (let ((or-part_0 (eq? c1_0 'any)))
                (if or-part_0 or-part_0 (eqv? (length args_0) c1_0)))
            (void)
            (error 'call-expand-observe "wrong arity for ~s: ~e" key_0 args_0))
          (error 'call-expand-observe "bad key: ~s" key_0)))
      (|#%app| obs_0 key_0 (if (null? args_0) #f (apply list* args_0))))))
(define key->arity hash3012)
(define rebuild.1
  (|#%name|
   rebuild
   (lambda (track?1_0 orig-s3_0 new4_0)
     (begin
       (datum->syntax$1
        orig-s3_0
        new4_0
        orig-s3_0
        (if track?1_0 orig-s3_0 #f))))))
(define finish_2886
  (make-struct-type-install-properties
   '(expanded+parsed)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'expanded+parsed))
(define struct:expanded+parsed
  (make-record-type-descriptor
   'expanded+parsed
   #f
   (|#%nongenerative-uid| expanded+parsed)
   #f
   #f
   '(2 . 0)))
(define effect_2270 (finish_2886 struct:expanded+parsed))
(define expanded+parsed1.1
  (|#%name|
   expanded+parsed
   (record-constructor
    (make-record-constructor-descriptor struct:expanded+parsed #f #f))))
(define expanded+parsed?
  (|#%name| expanded+parsed? (record-predicate struct:expanded+parsed)))
(define expanded+parsed-s
  (|#%name| expanded+parsed-s (record-accessor struct:expanded+parsed 0)))
(define expanded+parsed-parsed
  (|#%name| expanded+parsed-parsed (record-accessor struct:expanded+parsed 1)))
(define finish_2856
  (make-struct-type-install-properties
   '(semi-parsed-define-values)
   4
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'semi-parsed-define-values))
(define struct:semi-parsed-define-values
  (make-record-type-descriptor
   'semi-parsed-define-values
   #f
   (|#%nongenerative-uid| semi-parsed-define-values)
   #f
   #f
   '(4 . 0)))
(define effect_2353 (finish_2856 struct:semi-parsed-define-values))
(define semi-parsed-define-values2.1
  (|#%name|
   semi-parsed-define-values
   (record-constructor
    (make-record-constructor-descriptor
     struct:semi-parsed-define-values
     #f
     #f))))
(define semi-parsed-define-values?
  (|#%name|
   semi-parsed-define-values?
   (record-predicate struct:semi-parsed-define-values)))
(define semi-parsed-define-values-s
  (|#%name|
   semi-parsed-define-values-s
   (record-accessor struct:semi-parsed-define-values 0)))
(define semi-parsed-define-values-syms
  (|#%name|
   semi-parsed-define-values-syms
   (record-accessor struct:semi-parsed-define-values 1)))
(define semi-parsed-define-values-ids
  (|#%name|
   semi-parsed-define-values-ids
   (record-accessor struct:semi-parsed-define-values 2)))
(define semi-parsed-define-values-rhs
  (|#%name|
   semi-parsed-define-values-rhs
   (record-accessor struct:semi-parsed-define-values 3)))
(define finish_2970
  (make-struct-type-install-properties
   '(semi-parsed-begin-for-syntax)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'semi-parsed-begin-for-syntax))
(define struct:semi-parsed-begin-for-syntax
  (make-record-type-descriptor
   'semi-parsed-begin-for-syntax
   #f
   (|#%nongenerative-uid| semi-parsed-begin-for-syntax)
   #f
   #f
   '(2 . 0)))
(define effect_2815 (finish_2970 struct:semi-parsed-begin-for-syntax))
(define semi-parsed-begin-for-syntax3.1
  (|#%name|
   semi-parsed-begin-for-syntax
   (record-constructor
    (make-record-constructor-descriptor
     struct:semi-parsed-begin-for-syntax
     #f
     #f))))
(define semi-parsed-begin-for-syntax?
  (|#%name|
   semi-parsed-begin-for-syntax?
   (record-predicate struct:semi-parsed-begin-for-syntax)))
(define semi-parsed-begin-for-syntax-s
  (|#%name|
   semi-parsed-begin-for-syntax-s
   (record-accessor struct:semi-parsed-begin-for-syntax 0)))
(define semi-parsed-begin-for-syntax-body
  (|#%name|
   semi-parsed-begin-for-syntax-body
   (record-accessor struct:semi-parsed-begin-for-syntax 1)))
(define extract-syntax
  (lambda (s_0) (if (expanded+parsed? s_0) (expanded+parsed-s s_0) s_0)))
(define parsed-only
  (lambda (l_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((i_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (if (let ((or-part_0 (parsed? i_0)))
                                  (if or-part_0
                                    or-part_0
                                    (let ((or-part_1 (expanded+parsed? i_0)))
                                      (if or-part_1
                                        or-part_1
                                        (semi-parsed-begin-for-syntax? i_0)))))
                              (let ((fold-var_1
                                     (cons
                                      (if (expanded+parsed? i_0)
                                        (expanded+parsed-parsed i_0)
                                        (if (semi-parsed-begin-for-syntax? i_0)
                                          (parsed-begin-for-syntax21.1
                                           (semi-parsed-begin-for-syntax-s i_0)
                                           (parsed-only
                                            (semi-parsed-begin-for-syntax-body
                                             i_0)))
                                          i_0))
                                      fold-var_0)))
                                (values fold-var_1))
                              fold-var_0)))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null l_0))))))
(define syntax-only
  (lambda (l_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((i_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (if (let ((or-part_0 (syntax?$1 i_0)))
                                  (if or-part_0
                                    or-part_0
                                    (let ((or-part_1 (expanded+parsed? i_0)))
                                      (if or-part_1
                                        or-part_1
                                        (semi-parsed-begin-for-syntax? i_0)))))
                              (let ((fold-var_1
                                     (cons
                                      (if (expanded+parsed? i_0)
                                        (expanded+parsed-s i_0)
                                        (if (semi-parsed-begin-for-syntax? i_0)
                                          (let ((s_0
                                                 (semi-parsed-begin-for-syntax-s
                                                  i_0)))
                                            (let ((nested-bodys_0
                                                   (semi-parsed-begin-for-syntax-body
                                                    i_0)))
                                              (call-with-values
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((s_1
                                                           (if (syntax?$1 s_0)
                                                             (syntax-e$1 s_0)
                                                             s_0)))
                                                      (if (pair? s_1)
                                                        (let ((begin-for-syntax9_0
                                                               (let ((s_2
                                                                      (car
                                                                       s_1)))
                                                                 s_2)))
                                                          (let ((_0
                                                                 (let ((s_2
                                                                        (cdr
                                                                         s_1)))
                                                                   (let ((s_3
                                                                          (if (syntax?$1
                                                                               s_2)
                                                                            (syntax-e$1
                                                                             s_2)
                                                                            s_2)))
                                                                     (let ((flat-s_0
                                                                            (to-syntax-list.1
                                                                             s_3)))
                                                                       (if (not
                                                                            flat-s_0)
                                                                         (raise-syntax-error$1
                                                                          #f
                                                                          "bad syntax"
                                                                          s_0)
                                                                         flat-s_0))))))
                                                            (let ((begin-for-syntax9_1
                                                                   begin-for-syntax9_0))
                                                              (values
                                                               begin-for-syntax9_1
                                                               _0))))
                                                        (raise-syntax-error$1
                                                         #f
                                                         "bad syntax"
                                                         s_0))))
                                                  (case-lambda
                                                   ((begin-for-syntax7_0 _0)
                                                    (values
                                                     #t
                                                     begin-for-syntax7_0
                                                     _0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))
                                               (case-lambda
                                                ((ok?_0 begin-for-syntax7_0 _0)
                                                 (let ((temp12_0
                                                        (list*
                                                         begin-for-syntax7_0
                                                         (syntax-only
                                                          nested-bodys_0))))
                                                   (rebuild.1
                                                    #t
                                                    s_0
                                                    temp12_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  3
                                                  args))))))
                                          i_0))
                                      fold-var_0)))
                                (values fold-var_1))
                              fold-var_0)))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null l_0))))))
(define implicit-made-explicit-properties (hasheq 'implicit-made-explicit #t))
(define original-implicit-made-explicit-properties
  (hash-set implicit-made-explicit-properties original-property-sym #t))
(define raise-bindings-arity-error
  (lambda (who_0 ids_0 vals_0)
    (let ((app_0 (length ids_0)))
      (apply
       raise-result-arity-error
       who_0
       app_0
       (if (null? ids_0)
         ""
         (let ((app_1 (syntax-e$1 (car ids_0))))
           (format
            "\n  in: definition of ~a~a"
            app_1
            (if (pair? (cdr ids_0)) " ..." ""))))
       vals_0))))
(define expand.1
  (|#%name|
   expand
   (lambda (alternate-id1_0 fail-non-transformer2_0 s5_0 ctx6_0)
     (begin
       (begin
         (let ((obs_0
                (begin-unsafe
                 (expand-context/inner-observer
                  (root-expand-context/outer-inner ctx6_0)))))
           (if obs_0 (call-expand-observe obs_0 'visit s5_0) (void)))
         (let ((content_0 (syntax-content s5_0)))
           (if (symbol? content_0)
             (expand-identifier s5_0 ctx6_0 alternate-id1_0)
             (if (if (pair? content_0)
                   (let ((s_0 (car content_0)))
                     (begin-unsafe (symbol? (syntax-content s_0))))
                   #f)
               (expand-id-application-form.1
                fail-non-transformer2_0
                s5_0
                ctx6_0
                alternate-id1_0)
               (if (let ((or-part_0 (pair? content_0)))
                     (if or-part_0 or-part_0 (null? content_0)))
                 (expand-implicit '|#%app| s5_0 ctx6_0 #f)
                 (if (already-expanded? content_0)
                   (expand-already-expanded s5_0 ctx6_0)
                   (expand-implicit '|#%datum| s5_0 ctx6_0 #f)))))))))))
(define expand-identifier
  (lambda (s_0 ctx_0 alternate-id_0)
    (let ((id_0 (if alternate-id_0 alternate-id_0 s_0)))
      (if (if (not
               (let ((fs_0
                      (begin-unsafe
                       (expand-context/inner-stops
                        (root-expand-context/outer-inner ctx_0)))))
                 (begin-unsafe (eq? fs_0 empty-free-id-set))))
            (free-id-set-member?
             (begin-unsafe
              (expand-context/inner-stops
               (root-expand-context/outer-inner ctx_0)))
             (begin-unsafe
              (expand-context/inner-phase
               (root-expand-context/outer-inner ctx_0)))
             id_0)
            #f)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (begin
                (call-expand-observe obs_0 'resolve id_0)
                (call-expand-observe obs_0 'stop/return s_0))
              (void)))
          s_0)
        (let ((binding_0
               (let ((temp114_0
                      (begin-unsafe
                       (expand-context/inner-phase
                        (root-expand-context/outer-inner ctx_0)))))
                 (resolve+shift.1 'ambiguous #f null #t #f id_0 temp114_0))))
          (begin
            (let ((obs_0
                   (begin-unsafe
                    (expand-context/inner-observer
                     (root-expand-context/outer-inner ctx_0)))))
              (if obs_0 (call-expand-observe obs_0 'resolve id_0) (void)))
            (if (eq? binding_0 'ambiguous)
              (raise-ambiguous-error id_0 ctx_0)
              (if (not binding_0)
                (expand-implicit
                 '|#%top|
                 (substitute-alternate-id s_0 alternate-id_0)
                 ctx_0
                 s_0)
                (call-with-values
                 (lambda ()
                   (let ((temp128_0 (if alternate-id_0 s_0 #f)))
                     (let ((temp129_0
                            (begin-unsafe
                             (expand-context/inner-in-local-expand?
                              (root-expand-context/outer-inner ctx_0)))))
                       (lookup.1 temp128_0 temp129_0 binding_0 ctx_0 id_0))))
                 (case-lambda
                  ((t_0 primitive?_0 insp-of-t_0 protected?_0)
                   (dispatch.1
                    #f
                    t_0
                    insp-of-t_0
                    s_0
                    id_0
                    ctx_0
                    binding_0
                    primitive?_0
                    protected?_0))
                  (args (raise-binding-result-arity-error 4 args))))))))))))
(define expand-id-application-form.1
  (|#%name|
   expand-id-application-form
   (lambda (fail-non-transformer8_0 s10_0 ctx11_0 alternate-id12_0)
     (begin
       (let ((id_0
              (if alternate-id12_0 alternate-id12_0 (car (syntax-e$1 s10_0)))))
         (if (if (not
                  (let ((fs_0
                         (begin-unsafe
                          (expand-context/inner-stops
                           (root-expand-context/outer-inner ctx11_0)))))
                    (begin-unsafe (eq? fs_0 empty-free-id-set))))
               (free-id-set-member?
                (begin-unsafe
                 (expand-context/inner-stops
                  (root-expand-context/outer-inner ctx11_0)))
                (begin-unsafe
                 (expand-context/inner-phase
                  (root-expand-context/outer-inner ctx11_0)))
                id_0)
               #f)
           (begin
             (let ((obs_0
                    (begin-unsafe
                     (expand-context/inner-observer
                      (root-expand-context/outer-inner ctx11_0)))))
               (if obs_0
                 (begin
                   (call-expand-observe obs_0 'resolve id_0)
                   (call-expand-observe obs_0 'stop/return s10_0))
                 (void)))
             s10_0)
           (let ((binding_0
                  (let ((temp131_0
                         (begin-unsafe
                          (expand-context/inner-phase
                           (root-expand-context/outer-inner ctx11_0)))))
                    (resolve+shift.1
                     'ambiguous
                     #f
                     null
                     #t
                     #f
                     id_0
                     temp131_0))))
             (begin
               (let ((obs_0
                      (begin-unsafe
                       (expand-context/inner-observer
                        (root-expand-context/outer-inner ctx11_0)))))
                 (if obs_0 (call-expand-observe obs_0 'resolve id_0) (void)))
               (if (eq? binding_0 'ambiguous)
                 (begin
                   (if fail-non-transformer8_0
                     (|#%app| fail-non-transformer8_0)
                     (void))
                   (raise-ambiguous-error id_0 ctx11_0))
                 (if (not binding_0)
                   (begin
                     (if fail-non-transformer8_0
                       (|#%app| fail-non-transformer8_0)
                       (void))
                     (expand-implicit
                      '|#%app|
                      (substitute-alternate-id s10_0 alternate-id12_0)
                      ctx11_0
                      id_0))
                   (call-with-values
                    (lambda ()
                      (let ((temp137_0
                             (if alternate-id12_0
                               (car (syntax-e$1 s10_0))
                               #f)))
                        (let ((temp138_0
                               (begin-unsafe
                                (expand-context/inner-in-local-expand?
                                 (root-expand-context/outer-inner ctx11_0)))))
                          (let ((temp137_1 temp137_0))
                            (lookup.1
                             temp137_1
                             temp138_0
                             binding_0
                             ctx11_0
                             id_0)))))
                    (case-lambda
                     ((t_0 primitive?_0 insp-of-t_0 protected?_0)
                      (if (variable? t_0)
                        (begin
                          (if fail-non-transformer8_0
                            (|#%app| fail-non-transformer8_0)
                            (void))
                          (expand-implicit
                           '|#%app|
                           (substitute-alternate-id s10_0 alternate-id12_0)
                           ctx11_0
                           id_0))
                        (dispatch.1
                         fail-non-transformer8_0
                         t_0
                         insp-of-t_0
                         s10_0
                         id_0
                         ctx11_0
                         binding_0
                         primitive?_0
                         protected?_0)))
                     (args
                      (raise-binding-result-arity-error 4 args))))))))))))))
(define expand-implicit
  (lambda (sym_0 s_0 ctx_0 trigger-id_0)
    (if (begin-unsafe (expand-context/outer-only-immediate? ctx_0))
      (begin
        (let ((obs_0
               (begin-unsafe
                (expand-context/inner-observer
                 (root-expand-context/outer-inner ctx_0)))))
          (if obs_0 (call-expand-observe obs_0 'stop/return s_0) (void)))
        s_0)
      (let ((id_0 (datum->syntax$1 s_0 sym_0)))
        (if (if (not
                 (let ((fs_0
                        (begin-unsafe
                         (expand-context/inner-stops
                          (root-expand-context/outer-inner ctx_0)))))
                   (begin-unsafe (eq? fs_0 empty-free-id-set))))
              (free-id-set-member?
               (begin-unsafe
                (expand-context/inner-stops
                 (root-expand-context/outer-inner ctx_0)))
               (begin-unsafe
                (expand-context/inner-phase
                 (root-expand-context/outer-inner ctx_0)))
               id_0)
              #f)
          (begin
            (let ((obs_0
                   (begin-unsafe
                    (expand-context/inner-observer
                     (root-expand-context/outer-inner ctx_0)))))
              (if obs_0
                (begin
                  (call-expand-observe obs_0 'resolve id_0)
                  (call-expand-observe obs_0 'stop/return s_0))
                (void)))
            s_0)
          (let ((b_0
                 (let ((temp149_0
                        (begin-unsafe
                         (expand-context/inner-phase
                          (root-expand-context/outer-inner ctx_0)))))
                   (resolve+shift.1 'ambiguous #f null #t #f id_0 temp149_0))))
            (begin
              (let ((obs_0
                     (begin-unsafe
                      (expand-context/inner-observer
                       (root-expand-context/outer-inner ctx_0)))))
                (if obs_0 (call-expand-observe obs_0 'resolve id_0) (void)))
              (if (eq? b_0 'ambiguous)
                (raise-ambiguous-error id_0 ctx_0)
                (call-with-values
                 (lambda ()
                   (if b_0
                     (lookup.1 #f #f b_0 ctx_0 id_0)
                     (values #f #f #f #f)))
                 (case-lambda
                  ((t_0 primitive?_0 insp-of-t_0 protected?_0)
                   (if (transformer? t_0)
                     (let ((fail-non-transformer_0
                            (if (1/rename-transformer? t_0)
                              (|#%name|
                               fail-non-transformer
                               (lambda ()
                                 (begin
                                   (raise-syntax-implicit-error
                                    s_0
                                    sym_0
                                    trigger-id_0
                                    ctx_0))))
                              #f)))
                       (let ((temp157_0 (make-explicit ctx_0 sym_0 s_0)))
                         (dispatch-transformer.1
                          fail-non-transformer_0
                          t_0
                          insp-of-t_0
                          temp157_0
                          id_0
                          ctx_0
                          b_0)))
                     (if (core-form? t_0)
                       (if (if (eq? sym_0 '|#%top|)
                             (if (eq? (core-form-name t_0) '|#%top|)
                               (begin-unsafe
                                (expand-context/inner-in-local-expand?
                                 (root-expand-context/outer-inner ctx_0)))
                               #f)
                             #f)
                         (|dispatch-implicit-#%top-core-form| t_0 s_0 ctx_0)
                         (dispatch-core-form
                          t_0
                          (make-explicit ctx_0 sym_0 s_0)
                          ctx_0))
                       (let ((tl-id_0
                              (if (eq? sym_0 '|#%top|)
                                (if (begin-unsafe
                                     (root-expand-context/inner-top-level-bind-scope
                                      (root-expand-context/outer-inner ctx_0)))
                                  (add-scope
                                   s_0
                                   (begin-unsafe
                                    (root-expand-context/inner-top-level-bind-scope
                                     (root-expand-context/outer-inner ctx_0))))
                                  #f)
                                #f)))
                         (let ((tl-b_0
                                (if tl-id_0
                                  (let ((temp163_0
                                         (begin-unsafe
                                          (expand-context/inner-phase
                                           (root-expand-context/outer-inner
                                            ctx_0)))))
                                    (resolve.1
                                     #f
                                     #f
                                     null
                                     #f
                                     tl-id_0
                                     temp163_0))
                                  #f)))
                           (if tl-b_0
                             (if (if (begin-unsafe
                                      (expand-context/inner-to-parsed?
                                       (root-expand-context/outer-inner
                                        ctx_0)))
                                   (let ((fs_0
                                          (begin-unsafe
                                           (expand-context/inner-stops
                                            (root-expand-context/outer-inner
                                             ctx_0)))))
                                     (begin-unsafe
                                      (eq? fs_0 empty-free-id-set)))
                                   #f)
                               (parsed-id2.1 tl-id_0 tl-b_0 #f)
                               (begin
                                 (let ((obs_0
                                        (begin-unsafe
                                         (expand-context/inner-observer
                                          (root-expand-context/outer-inner
                                           ctx_0)))))
                                   (if obs_0
                                     (begin
                                       (call-expand-observe
                                        obs_0
                                        'variable
                                        tl-id_0)
                                       (call-expand-observe
                                        obs_0
                                        'return
                                        tl-id_0))
                                     (void)))
                                 tl-id_0))
                             (raise-syntax-implicit-error
                              s_0
                              sym_0
                              trigger-id_0
                              ctx_0)))))))
                  (args (raise-binding-result-arity-error 4 args))))))))))))
(define expand-already-expanded
  (lambda (s_0 ctx_0)
    (let ((ae_0 (syntax-e$1 s_0)))
      (let ((exp-s_0 (already-expanded-s ae_0)))
        (begin
          (if (let ((or-part_0 (syntax-any-macro-scopes? s_0)))
                (if or-part_0
                  or-part_0
                  (let ((or-part_1
                         (not
                          (eq?
                           (begin-unsafe
                            (expand-context/outer-binding-layer ctx_0))
                           (already-expanded-binding-layer ae_0)))))
                    (if or-part_1
                      or-part_1
                      (if (parsed? exp-s_0)
                        (not
                         (if (begin-unsafe
                              (expand-context/inner-to-parsed?
                               (root-expand-context/outer-inner ctx_0)))
                           (let ((fs_0
                                  (begin-unsafe
                                   (expand-context/inner-stops
                                    (root-expand-context/outer-inner ctx_0)))))
                             (begin-unsafe (eq? fs_0 empty-free-id-set)))
                           #f))
                        #f)))))
            (raise-syntax-error$1
             #f
             (string-append
              "expanded syntax not in its original lexical context;\n"
              " extra bindings or scopes in the current context")
             (if (not (parsed? exp-s_0)) exp-s_0 #f))
            (void))
          (if (begin-unsafe (expand-context/outer-only-immediate? ctx_0))
            (begin
              (let ((obs_0
                     (begin-unsafe
                      (expand-context/inner-observer
                       (root-expand-context/outer-inner ctx_0)))))
                (if obs_0 (call-expand-observe obs_0 'stop/return s_0) (void)))
              s_0)
            (if (parsed? exp-s_0)
              exp-s_0
              (let ((result-s_0 (syntax-track-origin$1 exp-s_0 s_0)))
                (begin
                  (let ((obs_0
                         (begin-unsafe
                          (expand-context/inner-observer
                           (root-expand-context/outer-inner ctx_0)))))
                    (if obs_0
                      (call-expand-observe obs_0 'opaque-expr result-s_0)
                      (void)))
                  (if (if (begin-unsafe
                           (expand-context/inner-to-parsed?
                            (root-expand-context/outer-inner ctx_0)))
                        (let ((fs_0
                               (begin-unsafe
                                (expand-context/inner-stops
                                 (root-expand-context/outer-inner ctx_0)))))
                          (begin-unsafe (eq? fs_0 empty-free-id-set)))
                        #f)
                    (expand.1 #f #f result-s_0 ctx_0)
                    result-s_0))))))))))
(define make-explicit
  (lambda (ctx_0 sym_0 s_0)
    (let ((insp_0 (current-module-code-inspector)))
      (let ((sym-s_0
             (immediate-datum->syntax
              s_0
              sym_0
              s_0
              (if (begin-unsafe
                   (hash-ref (syntax-props s_0) original-property-sym #f))
                original-implicit-made-explicit-properties
                implicit-made-explicit-properties)
              insp_0)))
        (let ((new-s_0
               (immediate-datum->syntax
                s_0
                (cons sym-s_0 s_0)
                s_0
                (syntax-props s_0)
                insp_0)))
          (begin
            (let ((obs_0
                   (begin-unsafe
                    (expand-context/inner-observer
                     (root-expand-context/outer-inner ctx_0)))))
              (if obs_0 (call-expand-observe obs_0 'tag2 new-s_0 s_0) (void)))
            new-s_0))))))
(define dispatch.1
  (|#%name|
   dispatch
   (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
       (if (core-form? t16_0)
         (dispatch-core-form t16_0 s18_0 ctx20_0)
         (if (transformer? t16_0)
           (dispatch-transformer.1
            fail-non-transformer14_0
            t16_0
            insp-of-t17_0
            s18_0
            id19_0
            ctx20_0
            binding21_0)
           (if (variable? t16_0)
             (dispatch-variable
              t16_0
              s18_0
              id19_0
              ctx20_0
              binding21_0
              primitive?22_0
              protected?23_0)
             (raise-syntax-error$1
              #f
              "illegal use of syntax"
              s18_0
              #f
              null
              (format
               "\n  value at phase ~s: ~e"
               (add1
                (begin-unsafe
                 (expand-context/inner-phase
                  (root-expand-context/outer-inner ctx20_0))))
               t16_0)))))))))
(define dispatch-core-form
  (lambda (t_0 s_0 ctx_0)
    (if (begin-unsafe (expand-context/outer-only-immediate? ctx_0))
      (begin
        (let ((obs_0
               (begin-unsafe
                (expand-context/inner-observer
                 (root-expand-context/outer-inner ctx_0)))))
          (if obs_0 (call-expand-observe obs_0 'stop/return s_0) (void)))
        s_0)
      (if (begin-unsafe
           (expand-context/inner-observer
            (root-expand-context/outer-inner ctx_0)))
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'enter-prim s_0) (void)))
          (let ((result-s_0 (|#%app| (core-form-expander t_0) s_0 ctx_0)))
            (begin
              (let ((obs_0
                     (begin-unsafe
                      (expand-context/inner-observer
                       (root-expand-context/outer-inner ctx_0)))))
                (if obs_0
                  (call-expand-observe
                   obs_0
                   'exit-prim/return
                   (extract-syntax result-s_0))
                  (void)))
              result-s_0)))
        (|#%app| (core-form-expander t_0) s_0 ctx_0)))))
(define |dispatch-implicit-#%top-core-form|
  (lambda (t_0 s_0 ctx_0)
    (begin
      (let ((obs_0
             (begin-unsafe
              (expand-context/inner-observer
               (root-expand-context/outer-inner ctx_0)))))
        (if obs_0 (call-expand-observe obs_0 'enter-prim s_0) (void)))
      (let ((result-s_0 (|#%app| (core-form-expander t_0) s_0 ctx_0 #t)))
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'exit-prim/return result-s_0)
              (void)))
          result-s_0)))))
(define dispatch-transformer.1
  (|#%name|
   dispatch-transformer
   (lambda (fail-non-transformer25_0
            t27_0
            insp-of-t28_0
            s29_0
            id30_0
            ctx31_0
            binding32_0)
     (begin
       (if (not-in-this-expand-context? t27_0 ctx31_0)
         (let ((adj-s_0
                (avoid-current-expand-context
                 (substitute-alternate-id s29_0 id30_0)
                 t27_0
                 ctx31_0)))
           (begin
             (let ((obs_0
                    (begin-unsafe
                     (expand-context/inner-observer
                      (root-expand-context/outer-inner ctx31_0)))))
               (if obs_0
                 (call-expand-observe obs_0 'tag/context adj-s_0)
                 (void)))
             (expand.1 #f #f adj-s_0 ctx31_0)))
         (if (if (begin-unsafe
                  (expand-context/inner-parsing-expanded?
                   (root-expand-context/outer-inner ctx31_0)))
               (not (1/rename-transformer? t27_0))
               #f)
           (raise-syntax-error$1
            #f
            "encountered a macro binding in form that should be fully expanded"
            s29_0)
           (if (1/rename-transformer? t27_0)
             (if (begin-unsafe
                  (expand-context/inner-just-once?
                   (root-expand-context/outer-inner ctx31_0)))
               s29_0
               (let ((alt-id_0
                      (apply-rename-transformer t27_0 id30_0 ctx31_0)))
                 (begin
                   (let ((obs_0
                          (begin-unsafe
                           (expand-context/inner-observer
                            (root-expand-context/outer-inner ctx31_0)))))
                     (if obs_0
                       (call-expand-observe obs_0 'rename-transformer alt-id_0)
                       (void)))
                   (expand.1
                    alt-id_0
                    fail-non-transformer25_0
                    s29_0
                    ctx31_0))))
             (call-with-values
              (lambda ()
                (apply-transformer.1
                 #f
                 t27_0
                 insp-of-t28_0
                 s29_0
                 id30_0
                 ctx31_0
                 binding32_0))
              (case-lambda
               ((exp-s_0 re-ctx_0)
                (if (begin-unsafe
                     (expand-context/inner-just-once?
                      (root-expand-context/outer-inner ctx31_0)))
                  exp-s_0
                  (expand.1 #f #f exp-s_0 re-ctx_0)))
               (args (raise-binding-result-arity-error 2 args)))))))))))
(define dispatch-variable
  (lambda (t_0 s_0 id_0 ctx_0 binding_0 primitive?_0 protected?_0)
    (if (begin-unsafe (expand-context/outer-only-immediate? ctx_0))
      (begin
        (let ((obs_0
               (begin-unsafe
                (expand-context/inner-observer
                 (root-expand-context/outer-inner ctx_0)))))
          (if obs_0 (call-expand-observe obs_0 'stop/return id_0) (void)))
        id_0)
      (begin
        (let ((obs_0
               (begin-unsafe
                (expand-context/inner-observer
                 (root-expand-context/outer-inner ctx_0)))))
          (if obs_0 (call-expand-observe obs_0 'variable s_0 id_0) (void)))
        (begin
          (register-variable-referenced-if-local! binding_0 ctx_0)
          (let ((result-s_0
                 (let ((temp189_0
                        (free-id-set-empty-or-just-module*?
                         (begin-unsafe
                          (expand-context/inner-stops
                           (root-expand-context/outer-inner ctx_0))))))
                   (substitute-variable.1 temp189_0 id_0 t_0))))
            (if (if (begin-unsafe
                     (expand-context/inner-to-parsed?
                      (root-expand-context/outer-inner ctx_0)))
                  (let ((fs_0
                         (begin-unsafe
                          (expand-context/inner-stops
                           (root-expand-context/outer-inner ctx_0)))))
                    (begin-unsafe (eq? fs_0 empty-free-id-set)))
                  #f)
              (let ((prop-s_0 (begin-unsafe #f)))
                (let ((insp_0 (syntax-inspector result-s_0)))
                  (if primitive?_0
                    (parsed-primitive-id3.1 prop-s_0 binding_0 insp_0)
                    (parsed-id2.1 prop-s_0 binding_0 insp_0))))
              (let ((protected-result-s_0
                     (if protected?_0
                       (syntax-property$1 result-s_0 'protected #t)
                       result-s_0)))
                (begin
                  (let ((obs_0
                         (begin-unsafe
                          (expand-context/inner-observer
                           (root-expand-context/outer-inner ctx_0)))))
                    (if obs_0
                      (call-expand-observe obs_0 'return protected-result-s_0)
                      (void)))
                  protected-result-s_0)))))))))
(define apply-transformer.1
  (|#%name|
   apply-transformer
   (lambda (origin-id34_0 t36_0 insp-of-t37_0 s38_0 id39_0 ctx40_0 binding41_0)
     (begin
       (begin
         (if log-performance?
           (start-performance-region 'expand '_ 'macro)
           (void))
         (begin0
           (begin
             (let ((obs_0
                    (begin-unsafe
                     (expand-context/inner-observer
                      (root-expand-context/outer-inner ctx40_0)))))
               (if obs_0
                 (call-expand-observe obs_0 'enter-macro s38_0 s38_0)
                 (void)))
             (let ((intro-scope_0 (new-scope 'macro)))
               (let ((intro-s_0 (flip-scope s38_0 intro-scope_0)))
                 (let ((use-scopes_0
                        (maybe-create-use-site-scope ctx40_0 binding41_0)))
                   (let ((use-s_0 (add-scopes intro-s_0 use-scopes_0)))
                     (let ((def-ctx-scopes_0 (box null)))
                       (let ((transformed-s_0
                              (apply-transformer-in-context$1
                               t36_0
                               use-s_0
                               ctx40_0
                               insp-of-t37_0
                               intro-scope_0
                               use-scopes_0
                               def-ctx-scopes_0
                               id39_0)))
                         (let ((result-s_0
                                (flip-scope transformed-s_0 intro-scope_0)))
                           (let ((post-s_0
                                  (begin-unsafe
                                   (apply-post-expansion
                                    (begin-unsafe
                                     (root-expand-context/outer-post-expansion
                                      ctx40_0))
                                    result-s_0))))
                             (let ((tracked-s_0
                                    (syntax-track-origin$1
                                     post-s_0
                                     use-s_0
                                     (if origin-id34_0
                                       origin-id34_0
                                       (if (begin-unsafe
                                            (symbol? (syntax-content s38_0)))
                                         s38_0
                                         (car (syntax-e$1 s38_0)))))))
                               (begin
                                 (let ((obs_0
                                        (begin-unsafe
                                         (expand-context/inner-observer
                                          (root-expand-context/outer-inner
                                           ctx40_0)))))
                                   (if obs_0
                                     (call-expand-observe
                                      obs_0
                                      'exit-macro
                                      tracked-s_0
                                      post-s_0)
                                     (void)))
                                 (values
                                  tracked-s_0
                                  (accumulate-def-ctx-scopes
                                   ctx40_0
                                   def-ctx-scopes_0)))))))))))))
           (if log-performance? (end-performance-region) (void))))))))
(define apply-transformer-in-context$1
  (|#%name|
   apply-transformer-in-context
   (lambda (t_0
            use-s_0
            ctx_0
            insp-of-t_0
            intro-scope_0
            use-scopes_0
            def-ctx-scopes_0
            id_0)
     (begin
       (begin
         (let ((obs_0
                (begin-unsafe
                 (expand-context/inner-observer
                  (root-expand-context/outer-inner ctx_0)))))
           (if obs_0 (call-expand-observe obs_0 'macro-pre-x use-s_0) (void)))
         (let ((confine-def-ctx-scopes?_0
                (not
                 (let ((or-part_0
                        (begin-unsafe
                         (expand-context/outer-only-immediate? ctx_0))))
                   (if or-part_0
                     or-part_0
                     (not
                      (free-id-set-empty-or-just-module*?
                       (begin-unsafe
                        (expand-context/inner-stops
                         (root-expand-context/outer-inner ctx_0))))))))))
           (let ((accum-ctx_0
                  (if (if confine-def-ctx-scopes?_0
                        (if (begin-unsafe
                             (expand-context/outer-def-ctx-scopes ctx_0))
                          (not
                           (null?
                            (unbox
                             (begin-unsafe
                              (expand-context/outer-def-ctx-scopes ctx_0)))))
                          #f)
                        #f)
                    (accumulate-def-ctx-scopes
                     ctx_0
                     (begin-unsafe
                      (expand-context/outer-def-ctx-scopes ctx_0)))
                    ctx_0)))
             (let ((m-ctx_0
                    (if (expand-context/outer? accum-ctx_0)
                      (let ((current-introduction-scopes190_0
                             (list intro-scope_0)))
                        (let ((def-ctx-scopes192_0
                               (if confine-def-ctx-scopes?_0
                                 def-ctx-scopes_0
                                 (begin-unsafe
                                  (expand-context/outer-def-ctx-scopes
                                   ctx_0)))))
                          (let ((inner193_0
                                 (root-expand-context/outer-inner
                                  accum-ctx_0)))
                            (expand-context/outer1.1
                             inner193_0
                             (root-expand-context/outer-post-expansion
                              accum-ctx_0)
                             (root-expand-context/outer-use-site-scopes
                              accum-ctx_0)
                             (root-expand-context/outer-frame-id accum-ctx_0)
                             (expand-context/outer-context accum-ctx_0)
                             (expand-context/outer-env accum-ctx_0)
                             (expand-context/outer-scopes accum-ctx_0)
                             def-ctx-scopes192_0
                             (expand-context/outer-binding-layer accum-ctx_0)
                             (expand-context/outer-reference-records
                              accum-ctx_0)
                             (expand-context/outer-only-immediate? accum-ctx_0)
                             (expand-context/outer-need-eventually-defined
                              accum-ctx_0)
                             current-introduction-scopes190_0
                             use-scopes_0
                             (expand-context/outer-name accum-ctx_0)))))
                      (raise-argument-error
                       'struct-copy
                       "expand-context/outer?"
                       accum-ctx_0))))
               (let ((transformed-s_0
                      (with-continuation-mark*
                       push-authentic
                       parameterization-key
                       (let ((app_0
                              (continuation-mark-set-first
                               #f
                               parameterization-key)))
                         (extend-parameterization
                          app_0
                          1/current-namespace
                          (namespace->namespace-at-phase
                           (begin-unsafe
                            (expand-context/inner-namespace
                             (root-expand-context/outer-inner ctx_0)))
                           (add1
                            (begin-unsafe
                             (expand-context/inner-phase
                              (root-expand-context/outer-inner ctx_0)))))))
                       (with-continuation-mark*
                        authentic
                        current-expand-context
                        m-ctx_0
                        (with-continuation-mark*
                         authentic
                         current-module-code-inspector
                         insp-of-t_0
                         (call-with-continuation-barrier
                          (lambda ()
                            (|#%app|
                             (transformer->procedure t_0)
                             use-s_0))))))))
                 (begin
                   (let ((obs_0
                          (begin-unsafe
                           (expand-context/inner-observer
                            (root-expand-context/outer-inner ctx_0)))))
                     (if obs_0
                       (call-expand-observe
                        obs_0
                        'macro-post-x
                        transformed-s_0
                        use-s_0)
                       (void)))
                   (if (syntax?$1 transformed-s_0)
                     (void)
                     (raise-arguments-error
                      (syntax-e$1 id_0)
                      "received value from syntax expander was not syntax"
                      "received"
                      transformed-s_0))
                   transformed-s_0))))))))))
(define maybe-create-use-site-scope
  (lambda (ctx_0 binding_0)
    (if (if (begin-unsafe (root-expand-context/outer-use-site-scopes ctx_0))
          (let ((or-part_0 (not binding_0)))
            (if or-part_0
              or-part_0
              (matching-frame?
               (begin-unsafe (root-expand-context/outer-frame-id ctx_0))
               (binding-frame-id binding_0))))
          #f)
      (let ((sc_0 (new-scope 'use-site)))
        (let ((b_0
               (begin-unsafe
                (root-expand-context/outer-use-site-scopes ctx_0))))
          (begin
            (set-box! b_0 (cons sc_0 (unbox b_0)))
            (let ((def-ctx-b_0
                   (begin-unsafe (expand-context/outer-def-ctx-scopes ctx_0))))
              (begin
                (if def-ctx-b_0
                  (set-box! def-ctx-b_0 (cons sc_0 (unbox def-ctx-b_0)))
                  (void))
                (list sc_0))))))
      null)))
(define matching-frame?
  (lambda (current-frame-id_0 bind-frame-id_0)
    (if current-frame-id_0
      (let ((or-part_0 (eq? current-frame-id_0 bind-frame-id_0)))
        (if or-part_0 or-part_0 (eq? current-frame-id_0 'all)))
      #f)))
(define maybe-add-post-expansion
  (lambda (s_0 ctx_0)
    (apply-post-expansion
     (begin-unsafe (root-expand-context/outer-post-expansion ctx_0))
     s_0)))
(define accumulate-def-ctx-scopes
  (lambda (ctx_0 def-ctx-scopes_0)
    (if (null? (unbox def-ctx-scopes_0))
      ctx_0
      (if (expand-context/outer? ctx_0)
        (let ((scopes194_0
               (let ((app_0 (unbox def-ctx-scopes_0)))
                 (append
                  app_0
                  (begin-unsafe (expand-context/outer-scopes ctx_0))))))
          (let ((inner195_0 (root-expand-context/outer-inner ctx_0)))
            (let ((scopes194_1 scopes194_0))
              (expand-context/outer1.1
               inner195_0
               (root-expand-context/outer-post-expansion ctx_0)
               (root-expand-context/outer-use-site-scopes ctx_0)
               (root-expand-context/outer-frame-id ctx_0)
               (expand-context/outer-context ctx_0)
               (expand-context/outer-env ctx_0)
               scopes194_1
               (expand-context/outer-def-ctx-scopes ctx_0)
               (expand-context/outer-binding-layer ctx_0)
               (expand-context/outer-reference-records ctx_0)
               (expand-context/outer-only-immediate? ctx_0)
               (expand-context/outer-need-eventually-defined ctx_0)
               (expand-context/outer-current-introduction-scopes ctx_0)
               (expand-context/outer-current-use-scopes ctx_0)
               (expand-context/outer-name ctx_0)))))
        (raise-argument-error 'struct-copy "expand-context/outer?" ctx_0)))))
(define apply-rename-transformer
  (lambda (t_0 id_0 ctx_0)
    (let ((target-id_0 (rename-transformer-target-in-context t_0 ctx_0)))
      (let ((intro-scope_0 (new-scope 'macro)))
        (let ((intro-id_0 (add-scope target-id_0 intro-scope_0)))
          (syntax-track-origin$1
           (transfer-srcloc intro-id_0 id_0)
           id_0
           id_0))))))
(define lookup.1
  (|#%name|
   lookup
   (lambda (in43_0 out-of-context-as-variable?44_0 b47_0 ctx48_0 id49_0)
     (begin
       (let ((temp197_0 (begin-unsafe (expand-context/outer-env ctx48_0))))
         (let ((temp198_0
                (begin-unsafe
                 (expand-context/inner-lift-envs
                  (root-expand-context/outer-inner ctx48_0)))))
           (let ((temp199_0
                  (begin-unsafe
                   (expand-context/inner-namespace
                    (root-expand-context/outer-inner ctx48_0)))))
             (let ((temp200_0
                    (begin-unsafe
                     (expand-context/inner-phase
                      (root-expand-context/outer-inner ctx48_0)))))
               (binding-lookup.1
                #t
                in43_0
                out-of-context-as-variable?44_0
                b47_0
                temp197_0
                temp198_0
                temp199_0
                temp200_0
                id49_0)))))))))
(define substitute-alternate-id
  (lambda (s_0 alternate-id_0)
    (if (not alternate-id_0)
      s_0
      (if (begin-unsafe (symbol? (syntax-content s_0)))
        (syntax-track-origin$1 alternate-id_0 s_0)
        (syntax-track-origin$1
         (datum->syntax$1 s_0 (cons alternate-id_0 (cdr (syntax-e$1 s_0))) s_0)
         s_0)))))
(define register-variable-referenced-if-local!
  (lambda (binding_0 ctx_0)
    (if (if (local-binding? binding_0)
          (if (reference-record? (binding-frame-id binding_0))
            (not
             (begin-unsafe
              (expand-context/inner-parsing-expanded?
               (root-expand-context/outer-inner ctx_0))))
            #f)
          #f)
      (let ((app_0 (binding-frame-id binding_0)))
        (reference-record-used! app_0 (local-binding-key binding_0)))
      (void))))
(define expand/capture-lifts.1
  (|#%name|
   expand/capture-lifts
   (lambda (always-wrap?54_0
            begin-form?52_0
            expand-lifts?51_0
            lift-key53_0
            s59_0
            ctx60_0)
     (begin
       (let ((lift-key_0
              (if (eq? lift-key53_0 unsafe-undefined)
                (generate-lift-key)
                lift-key53_0)))
         (let ((context_0
                (begin-unsafe (expand-context/outer-context ctx60_0))))
           (let ((phase_0
                  (begin-unsafe
                   (expand-context/inner-phase
                    (root-expand-context/outer-inner ctx60_0)))))
             (let ((local?_0 (not begin-form?52_0)))
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (s_0 always-wrap?_0 ctx_0)
                     (begin
                       (let ((lift-env_0 (if local?_0 (box empty-env) #f)))
                         (let ((lift-ctx_0
                                (let ((temp204_0
                                       (if local?_0
                                         (make-local-lift
                                          lift-env_0
                                          (begin-unsafe
                                           (root-expand-context/inner-counter
                                            (root-expand-context/outer-inner
                                             ctx_0)))
                                          (if (begin-unsafe
                                               (expand-context/inner-normalize-locals?
                                                (root-expand-context/outer-inner
                                                 ctx_0)))
                                            'lift
                                            #f))
                                         (make-top-level-lift ctx_0))))
                                  (let ((temp205_0
                                         (if (not local?_0)
                                           (eq? context_0 'module)
                                           #f)))
                                    (let ((temp204_1 temp204_0))
                                      (make-lift-context.1
                                       temp205_0
                                       temp204_1))))))
                           (let ((capture-ctx_0
                                  (if (expand-context/outer? ctx_0)
                                    (let ((inner206_0
                                           (let ((the-struct_0
                                                  (root-expand-context/outer-inner
                                                   ctx_0)))
                                             (if (expand-context/inner?
                                                  the-struct_0)
                                               (let ((lift-envs209_0
                                                      (if local?_0
                                                        (cons
                                                         lift-env_0
                                                         (begin-unsafe
                                                          (expand-context/inner-lift-envs
                                                           (root-expand-context/outer-inner
                                                            ctx_0))))
                                                        (begin-unsafe
                                                         (expand-context/inner-lift-envs
                                                          (root-expand-context/outer-inner
                                                           ctx_0))))))
                                                 (let ((module-lifts210_0
                                                        (if (if local?_0
                                                              local?_0
                                                              (not
                                                               (memq
                                                                context_0
                                                                '(top-level
                                                                  module))))
                                                          (begin-unsafe
                                                           (expand-context/inner-module-lifts
                                                            (root-expand-context/outer-inner
                                                             ctx_0)))
                                                          lift-ctx_0)))
                                                   (let ((lift-envs209_1
                                                          lift-envs209_0))
                                                     (expand-context/inner2.1
                                                      (root-expand-context/inner-self-mpi
                                                       the-struct_0)
                                                      (root-expand-context/inner-module-scopes
                                                       the-struct_0)
                                                      (root-expand-context/inner-top-level-bind-scope
                                                       the-struct_0)
                                                      (root-expand-context/inner-all-scopes-stx
                                                       the-struct_0)
                                                      (root-expand-context/inner-defined-syms
                                                       the-struct_0)
                                                      (root-expand-context/inner-counter
                                                       the-struct_0)
                                                      lift-key_0
                                                      (expand-context/inner-to-parsed?
                                                       the-struct_0)
                                                      (expand-context/inner-phase
                                                       the-struct_0)
                                                      (expand-context/inner-namespace
                                                       the-struct_0)
                                                      (expand-context/inner-just-once?
                                                       the-struct_0)
                                                      (expand-context/inner-module-begin-k
                                                       the-struct_0)
                                                      (expand-context/inner-allow-unbound?
                                                       the-struct_0)
                                                      (expand-context/inner-in-local-expand?
                                                       the-struct_0)
                                                      (|expand-context/inner-keep-#%expression?|
                                                       the-struct_0)
                                                      (expand-context/inner-stops
                                                       the-struct_0)
                                                      (expand-context/inner-declared-submodule-names
                                                       the-struct_0)
                                                      lift-ctx_0
                                                      lift-envs209_1
                                                      module-lifts210_0
                                                      (expand-context/inner-require-lifts
                                                       the-struct_0)
                                                      (expand-context/inner-to-module-lifts
                                                       the-struct_0)
                                                      (expand-context/inner-requires+provides
                                                       the-struct_0)
                                                      (expand-context/inner-observer
                                                       the-struct_0)
                                                      (expand-context/inner-for-serializable?
                                                       the-struct_0)
                                                      (expand-context/inner-to-correlated-linklet?
                                                       the-struct_0)
                                                      (expand-context/inner-normalize-locals?
                                                       the-struct_0)
                                                      (expand-context/inner-parsing-expanded?
                                                       the-struct_0)
                                                      (expand-context/inner-skip-visit-available?
                                                       the-struct_0)))))
                                               (raise-argument-error
                                                'struct-copy
                                                "expand-context/inner?"
                                                the-struct_0)))))
                                      (expand-context/outer1.1
                                       inner206_0
                                       (root-expand-context/outer-post-expansion
                                        ctx_0)
                                       (root-expand-context/outer-use-site-scopes
                                        ctx_0)
                                       (root-expand-context/outer-frame-id
                                        ctx_0)
                                       (expand-context/outer-context ctx_0)
                                       (expand-context/outer-env ctx_0)
                                       (expand-context/outer-scopes ctx_0)
                                       (expand-context/outer-def-ctx-scopes
                                        ctx_0)
                                       (expand-context/outer-binding-layer
                                        ctx_0)
                                       (expand-context/outer-reference-records
                                        ctx_0)
                                       (expand-context/outer-only-immediate?
                                        ctx_0)
                                       (expand-context/outer-need-eventually-defined
                                        ctx_0)
                                       (expand-context/outer-current-introduction-scopes
                                        ctx_0)
                                       (expand-context/outer-current-use-scopes
                                        ctx_0)
                                       (expand-context/outer-name ctx_0)))
                                    (raise-argument-error
                                     'struct-copy
                                     "expand-context/outer?"
                                     ctx_0))))
                             (let ((rebuild-s_0 (keep-properties-only s_0)))
                               (let ((exp-s_0
                                      (expand.1 #f #f s_0 capture-ctx_0)))
                                 (let ((lifts_0
                                        (let ((lifts_0
                                               (begin-unsafe
                                                (expand-context/inner-lifts
                                                 (root-expand-context/outer-inner
                                                  capture-ctx_0)))))
                                          (begin-unsafe
                                           (box-clear!
                                            (lift-context-lifts lifts_0))))))
                                   (let ((with-lifts-s_0
                                          (if (let ((or-part_0
                                                     (pair? lifts_0)))
                                                (if or-part_0
                                                  or-part_0
                                                  always-wrap?_0))
                                            (if (begin-unsafe
                                                 (expand-context/inner-to-parsed?
                                                  (root-expand-context/outer-inner
                                                   ctx_0)))
                                              (begin
                                                (if expand-lifts?51_0
                                                  (void)
                                                  (error
                                                   "internal error: to-parsed mode without expanding lifts"))
                                                (wrap-lifts-as-parsed-let
                                                 lifts_0
                                                 exp-s_0
                                                 rebuild-s_0
                                                 ctx_0
                                                 (lambda (rhs_0 rhs-ctx_0)
                                                   (loop_0
                                                    rhs_0
                                                    #f
                                                    rhs-ctx_0))))
                                              (if begin-form?52_0
                                                (wrap-lifts-as-begin.1
                                                 unsafe-undefined
                                                 unsafe-undefined
                                                 lifts_0
                                                 exp-s_0
                                                 phase_0)
                                                (wrap-lifts-as-let
                                                 lifts_0
                                                 exp-s_0
                                                 phase_0)))
                                            exp-s_0)))
                                     (if (let ((or-part_0
                                                (not expand-lifts?51_0)))
                                           (if or-part_0
                                             or-part_0
                                             (let ((or-part_1 (null? lifts_0)))
                                               (if or-part_1
                                                 or-part_1
                                                 (begin-unsafe
                                                  (expand-context/inner-to-parsed?
                                                   (root-expand-context/outer-inner
                                                    ctx_0)))))))
                                       with-lifts-s_0
                                       (begin
                                         (let ((obs_0
                                                (begin-unsafe
                                                 (expand-context/inner-observer
                                                  (root-expand-context/outer-inner
                                                   ctx_0)))))
                                           (if obs_0
                                             (call-expand-observe
                                              obs_0
                                              'letlift-loop
                                              with-lifts-s_0)
                                             (void)))
                                         (loop_0
                                          with-lifts-s_0
                                          #f
                                          ctx_0)))))))))))))))
                (loop_0 s59_0 always-wrap?54_0 ctx60_0))))))))))
(define expand-transformer.1
  (|#%name|
   expand-transformer
   (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
       (let ((lift-key_0
              (if (eq? lift-key65_0 unsafe-undefined)
                (generate-lift-key)
                lift-key65_0)))
         (begin
           (if log-performance?
             (start-performance-region 'expand 'transformer)
             (void))
           (begin0
             (let ((trans-ctx_0
                    (context->transformer-context.1
                     keep-stops?67_0
                     ctx75_0
                     context62_0)))
               (expand/capture-lifts.1
                always-wrap?66_0
                begin-form?63_0
                expand-lifts?64_0
                lift-key_0
                s74_0
                trans-ctx_0))
             (if log-performance? (end-performance-region) (void)))))))))
(define context->transformer-context.1
  (|#%name|
   context->transformer-context
   (lambda (keep-stops?77_0 ctx80_0 context79_0)
     (begin
       (let ((phase_0
              (add1
               (begin-unsafe
                (expand-context/inner-phase
                 (root-expand-context/outer-inner ctx80_0))))))
         (let ((ns_0
                (namespace->namespace-at-phase
                 (begin-unsafe
                  (expand-context/inner-namespace
                   (root-expand-context/outer-inner ctx80_0)))
                 phase_0)))
           (begin
             (namespace-visit-available-modules! ns_0 phase_0)
             (if (expand-context/outer? ctx80_0)
               (let ((only-immediate?228_0
                      (if keep-stops?77_0
                        (begin-unsafe
                         (expand-context/outer-only-immediate? ctx80_0))
                        #f)))
                 (let ((inner231_0
                        (let ((the-struct_0
                               (root-expand-context/outer-inner ctx80_0)))
                          (if (expand-context/inner? the-struct_0)
                            (let ((stops235_0
                                   (if keep-stops?77_0
                                     (begin-unsafe
                                      (expand-context/inner-stops
                                       (root-expand-context/outer-inner
                                        ctx80_0)))
                                     empty-free-id-set)))
                              (expand-context/inner2.1
                               (root-expand-context/inner-self-mpi
                                the-struct_0)
                               (root-expand-context/inner-module-scopes
                                the-struct_0)
                               (root-expand-context/inner-top-level-bind-scope
                                the-struct_0)
                               (root-expand-context/inner-all-scopes-stx
                                the-struct_0)
                               (root-expand-context/inner-defined-syms
                                the-struct_0)
                               (root-expand-context/inner-counter the-struct_0)
                               (root-expand-context/inner-lift-key
                                the-struct_0)
                               (expand-context/inner-to-parsed? the-struct_0)
                               phase_0
                               ns_0
                               (expand-context/inner-just-once? the-struct_0)
                               (expand-context/inner-module-begin-k
                                the-struct_0)
                               (expand-context/inner-allow-unbound?
                                the-struct_0)
                               #f
                               (|expand-context/inner-keep-#%expression?|
                                the-struct_0)
                               stops235_0
                               (expand-context/inner-declared-submodule-names
                                the-struct_0)
                               (expand-context/inner-lifts the-struct_0)
                               (expand-context/inner-lift-envs the-struct_0)
                               (expand-context/inner-module-lifts the-struct_0)
                               (expand-context/inner-require-lifts
                                the-struct_0)
                               (expand-context/inner-to-module-lifts
                                the-struct_0)
                               (expand-context/inner-requires+provides
                                the-struct_0)
                               (expand-context/inner-observer the-struct_0)
                               (expand-context/inner-for-serializable?
                                the-struct_0)
                               (expand-context/inner-to-correlated-linklet?
                                the-struct_0)
                               (expand-context/inner-normalize-locals?
                                the-struct_0)
                               (expand-context/inner-parsing-expanded?
                                the-struct_0)
                               (expand-context/inner-skip-visit-available?
                                the-struct_0)))
                            (raise-argument-error
                             'struct-copy
                             "expand-context/inner?"
                             the-struct_0)))))
                   (let ((only-immediate?228_1 only-immediate?228_0))
                     (expand-context/outer1.1
                      inner231_0
                      #f
                      (root-expand-context/outer-use-site-scopes ctx80_0)
                      (root-expand-context/outer-frame-id ctx80_0)
                      context79_0
                      empty-env
                      null
                      #f
                      (expand-context/outer-binding-layer ctx80_0)
                      (expand-context/outer-reference-records ctx80_0)
                      only-immediate?228_1
                      (expand-context/outer-need-eventually-defined ctx80_0)
                      (expand-context/outer-current-introduction-scopes
                       ctx80_0)
                      (expand-context/outer-current-use-scopes ctx80_0)
                      (expand-context/outer-name ctx80_0)))))
               (raise-argument-error
                'struct-copy
                "expand-context/outer?"
                ctx80_0)))))))))
(define expand+eval-for-syntaxes-binding.1
  (|#%name|
   expand+eval-for-syntaxes-binding
   (lambda (log-next?82_0 wrap83_0 who86_0 rhs87_0 ids88_0 ctx89_0)
     (begin
       (let ((exp-rhs_0
              (let ((temp237_0 (as-named-context ctx89_0 ids88_0)))
                (expand-transformer.1
                 #f
                 #f
                 'expression
                 #t
                 #f
                 unsafe-undefined
                 rhs87_0
                 temp237_0))))
         (let ((phase_0
                (add1
                 (begin-unsafe
                  (expand-context/inner-phase
                   (root-expand-context/outer-inner ctx89_0))))))
           (let ((parsed-rhs_0
                  (if (begin-unsafe
                       (expand-context/inner-to-parsed?
                        (root-expand-context/outer-inner ctx89_0)))
                    exp-rhs_0
                    (let ((temp239_0
                           (let ((temp240_0 (as-to-parsed-context ctx89_0)))
                             (context->transformer-context.1
                              #f
                              temp240_0
                              'expression))))
                      (expand.1 #f #f exp-rhs_0 temp239_0)))))
             (begin
               (if log-next?82_0
                 (let ((obs_0
                        (begin-unsafe
                         (expand-context/inner-observer
                          (root-expand-context/outer-inner ctx89_0)))))
                   (if obs_0 (call-expand-observe obs_0 'next) (void)))
                 (void))
               (values
                exp-rhs_0
                parsed-rhs_0
                (let ((temp245_0
                       (namespace->namespace-at-phase
                        (begin-unsafe
                         (expand-context/inner-namespace
                          (root-expand-context/outer-inner ctx89_0)))
                        phase_0)))
                  (eval-for-bindings.1
                   wrap83_0
                   who86_0
                   ids88_0
                   parsed-rhs_0
                   phase_0
                   temp245_0
                   ctx89_0)))))))))))
(define eval-for-syntaxes-binding
  (lambda (who_0 rhs_0 ids_0 ctx_0)
    (call-with-values
     (lambda ()
       (expand+eval-for-syntaxes-binding.1 #t #f who_0 rhs_0 ids_0 ctx_0))
     (case-lambda
      ((exp-rhs_0 parsed-rhs_0 vals_0) vals_0)
      (args (raise-binding-result-arity-error 3 args))))))
(define eval-for-bindings.1
  (|#%name|
   eval-for-bindings
   (lambda (wrap91_0 who93_0 ids94_0 p95_0 phase96_0 ns97_0 ctx98_0)
     (begin
       (let ((compiled_0
              (if (can-direct-eval?
                   p95_0
                   ns97_0
                   (begin-unsafe
                    (root-expand-context/inner-self-mpi
                     (root-expand-context/outer-inner ctx98_0))))
                #f
                (compile-single
                 p95_0
                 (make-compile-context.1
                  #f
                  unsafe-undefined
                  #f
                  ns97_0
                  phase96_0
                  unsafe-undefined)))))
         (let ((vals_0
                (call-with-values
                 (lambda ()
                   (call-with-continuation-barrier
                    (lambda ()
                      (with-continuation-mark*
                       authentic
                       parameterization-key
                       (extend-parameterization
                        (continuation-mark-set-first #f parameterization-key)
                        1/current-namespace
                        ns97_0
                        eval-jit-enabled
                        #f)
                       (with-continuation-mark*
                        authentic
                        current-expand-context
                        ctx98_0
                        (if compiled_0
                          (if wrap91_0
                            (|#%app|
                             wrap91_0
                             (lambda () (eval-single-top compiled_0 ns97_0)))
                            (eval-single-top compiled_0 ns97_0))
                          (let ((self-mpi_0
                                 (begin-unsafe
                                  (root-expand-context/inner-self-mpi
                                   (root-expand-context/outer-inner
                                    ctx98_0)))))
                            (if wrap91_0
                              (|#%app|
                               wrap91_0
                               (lambda ()
                                 (direct-eval p95_0 ns97_0 self-mpi_0)))
                              (direct-eval p95_0 ns97_0 self-mpi_0)))))))))
                 list)))
           (begin
             (if (if wrap91_0
                   wrap91_0
                   (let ((app_0 (length vals_0))) (= app_0 (length ids94_0))))
               (void)
               (raise-bindings-arity-error who93_0 ids94_0 vals_0))
             vals_0)))))))
(define keep-properties-only
  (lambda (s_0) (datum->syntax$1 #f 'props s_0 s_0)))
(define keep-properties-only~ (lambda (s_0) #f))
(define keep-as-needed.1
  (|#%name|
   keep-as-needed
   (lambda (for-track?100_0
            keep-for-error?102_0
            keep-for-parsed?101_0
            ctx106_0
            s107_0)
     (begin
       (let ((d_0 (syntax-e$1 s107_0)))
         (let ((keep-e_0
                (if (symbol? d_0)
                  d_0
                  (if (if (pair? d_0)
                        (let ((s_0 (car d_0)))
                          (begin-unsafe (symbol? (syntax-content s_0))))
                        #f)
                    (syntax-e$1 (car d_0))
                    #f))))
           (if (begin-unsafe
                (expand-context/inner-to-parsed?
                 (root-expand-context/outer-inner ctx106_0)))
             (if (if keep-for-parsed?101_0
                   keep-for-parsed?101_0
                   keep-for-error?102_0)
               (datum->syntax$1 #f keep-e_0 s107_0 s107_0)
               #f)
             (if (if for-track?100_0 (if (pair? d_0) keep-e_0 #f) #f)
               (datum->syntax$1 #f (list (car d_0)) s107_0 s107_0)
               (datum->syntax$1 s107_0 keep-e_0 s107_0 s107_0)))))))))
(define attach-disappeared-transformer-bindings
  (lambda (s_0 trans-idss_0)
    (if (null? trans-idss_0)
      s_0
      (syntax-property$1
       s_0
       'disappeared-binding
       (let ((app_0 (apply append trans-idss_0)))
         (append
          app_0
          (let ((or-part_0 (syntax-property$1 s_0 'disappeared-binding)))
            (if or-part_0 or-part_0 null))))))))
(define increment-binding-layer
  (lambda (ids_0 ctx_0 layer-val_0)
    (if (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (ids_1)
              (begin
                (let ((or-part_0 (identifier? ids_1)))
                  (if or-part_0
                    or-part_0
                    (if (pair? ids_1)
                      (let ((or-part_1 (loop_0 (car ids_1))))
                        (if or-part_1 or-part_1 (loop_0 (cdr ids_1))))
                      #f))))))))
         (loop_0 ids_0))
      layer-val_0
      (begin-unsafe (expand-context/outer-binding-layer ctx_0)))))
(define wrap-lifts-as-parsed-let
  (lambda (lifts_0 exp-s_0 rebuild-s_0 ctx_0 parse-rhs_0)
    (let ((idss+keyss+rhss_0 (get-lifts-as-lists lifts_0)))
      (letrec*
       ((lets-loop_0
         (|#%name|
          lets-loop
          (lambda (idss+keyss+rhss_1 rhs-ctx_0)
            (begin
              (if (null? idss+keyss+rhss_1)
                exp-s_0
                (let ((ids_0 (caar idss+keyss+rhss_1)))
                  (let ((keys_0 (cadar idss+keyss+rhss_1)))
                    (let ((rhs_0 (caddar idss+keyss+rhss_1)))
                      (let ((exp-rhs_0 (|#%app| parse-rhs_0 rhs_0 rhs-ctx_0)))
                        (let ((app_0 (list ids_0)))
                          (let ((app_1 (list (list keys_0 exp-rhs_0))))
                            (parsed-let-values17.1
                             rebuild-s_0
                             app_0
                             app_1
                             (list
                              (let ((app_2 (cdr idss+keyss+rhss_1)))
                                (lets-loop_0
                                 app_2
                                 (if (expand-context/outer? rhs-ctx_0)
                                   (let ((env254_0
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (env_0 lst_0 lst_1)
                                                  (begin
                                                    (if (if (pair? lst_0)
                                                          (pair? lst_1)
                                                          #f)
                                                      (let ((id_0
                                                             (unsafe-car
                                                              lst_0)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_0)))
                                                          (let ((key_0
                                                                 (unsafe-car
                                                                  lst_1)))
                                                            (let ((rest_1
                                                                   (unsafe-cdr
                                                                    lst_1)))
                                                              (let ((val_0
                                                                     (local-variable1.1
                                                                      id_0)))
                                                                (let ((env_1
                                                                       (let ((env_1
                                                                              (begin-unsafe
                                                                               (hash-set
                                                                                env_0
                                                                                key_0
                                                                                val_0))))
                                                                         (values
                                                                          env_1))))
                                                                  (for-loop_0
                                                                   env_1
                                                                   rest_0
                                                                   rest_1)))))))
                                                      env_0))))))
                                             (for-loop_0
                                              (begin-unsafe
                                               (expand-context/outer-env
                                                rhs-ctx_0))
                                              ids_0
                                              keys_0)))))
                                     (let ((inner255_0
                                            (root-expand-context/outer-inner
                                             rhs-ctx_0)))
                                       (let ((env254_1 env254_0))
                                         (expand-context/outer1.1
                                          inner255_0
                                          (root-expand-context/outer-post-expansion
                                           rhs-ctx_0)
                                          (root-expand-context/outer-use-site-scopes
                                           rhs-ctx_0)
                                          (root-expand-context/outer-frame-id
                                           rhs-ctx_0)
                                          (expand-context/outer-context
                                           rhs-ctx_0)
                                          env254_1
                                          (expand-context/outer-scopes
                                           rhs-ctx_0)
                                          (expand-context/outer-def-ctx-scopes
                                           rhs-ctx_0)
                                          (expand-context/outer-binding-layer
                                           rhs-ctx_0)
                                          (expand-context/outer-reference-records
                                           rhs-ctx_0)
                                          (expand-context/outer-only-immediate?
                                           rhs-ctx_0)
                                          (expand-context/outer-need-eventually-defined
                                           rhs-ctx_0)
                                          (expand-context/outer-current-introduction-scopes
                                           rhs-ctx_0)
                                          (expand-context/outer-current-use-scopes
                                           rhs-ctx_0)
                                          (expand-context/outer-name
                                           rhs-ctx_0)))))
                                   (raise-argument-error
                                    'struct-copy
                                    "expand-context/outer?"
                                    rhs-ctx_0))))))))))))))))))
       (lets-loop_0 idss+keyss+rhss_0 ctx_0)))))
(define rename-transformer-target-in-context
  (lambda (t_0 ctx_0)
    (with-continuation-mark*
     authentic
     current-expand-context
     ctx_0
     (1/rename-transformer-target t_0))))
(define maybe-install-free=id-in-context!
  (lambda (val_0 id_0 phase_0 ctx_0)
    (if (1/rename-transformer? val_0)
      (with-continuation-mark*
       authentic
       current-expand-context
       ctx_0
       (maybe-install-free=id! val_0 id_0 phase_0))
      (void))))
(define transfer-srcloc
  (lambda (new-s_0 old-s_0)
    (let ((srcloc_0 (syntax-srcloc$1 old-s_0)))
      (if srcloc_0
        (if (syntax?$1 new-s_0)
          (let ((app_0 (syntax-content* new-s_0)))
            (let ((app_1 (syntax-scopes new-s_0)))
              (let ((app_2 (syntax-shifted-multi-scopes new-s_0)))
                (let ((app_3 (syntax-mpi-shifts new-s_0)))
                  (syntax2.1
                   app_0
                   app_1
                   app_2
                   app_3
                   srcloc_0
                   (syntax-props new-s_0)
                   (syntax-inspector new-s_0))))))
          (raise-argument-error 'struct-copy "syntax?" new-s_0))
        new-s_0))))
(define stop-ids->all-stop-ids
  (lambda (stop-ids_0 phase_0)
    (if (null? stop-ids_0)
      stop-ids_0
      (let ((p-core-stx_0 (syntax-shift-phase-level$1 core-stx phase_0)))
        (if (if (= 1 (length stop-ids_0))
              (let ((app_0 (car stop-ids_0)))
                (free-identifier=?$1
                 app_0
                 (datum->syntax$1 p-core-stx_0 'module*)
                 phase_0
                 phase_0))
              #f)
          stop-ids_0
          (append
           stop-ids_0
           (reverse$1
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((sym_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (let ((fold-var_1
                                   (let ((fold-var_1
                                          (cons
                                           (datum->syntax$1 p-core-stx_0 sym_0)
                                           fold-var_0)))
                                     (values fold-var_1))))
                              (for-loop_0 fold-var_1 rest_0))))
                        fold-var_0))))))
               (for-loop_0 null auto-stop-syms))))))))))
(define auto-stop-syms
  '(begin
     quote
     set!
     lambda
     case-lambda
     let-values
     letrec-values
     if
     begin0
     with-continuation-mark
     letrec-syntaxes+values
     |#%app|
     |#%expression|
     |#%top|
     |#%variable-reference|))
(define module-expand-stop-ids
  (lambda (phase_0)
    (let ((p-core-stx_0 (syntax-shift-phase-level$1 core-stx phase_0)))
      (reverse$1
       (begin
         (letrec*
          ((for-loop_0
            (|#%name|
             for-loop
             (lambda (fold-var_0 lst_0)
               (begin
                 (if (pair? lst_0)
                   (let ((sym_0 (unsafe-car lst_0)))
                     (let ((rest_0 (unsafe-cdr lst_0)))
                       (let ((fold-var_1
                              (let ((fold-var_1
                                     (cons
                                      (datum->syntax$1 p-core-stx_0 sym_0)
                                      fold-var_0)))
                                (values fold-var_1))))
                         (for-loop_0 fold-var_1 rest_0))))
                   fold-var_0))))))
          (for-loop_0 null module-stop-syms)))))))
(define module-stop-syms
  (append
   auto-stop-syms
   '(define-values
     define-syntaxes
     begin-for-syntax
     |#%require|
     |#%provide|
     module
     module*
     |#%declare|
     |#%stratified-body|)))
(define finish_2794
  (make-struct-type-install-properties
   '(internal-definition-context)
   7
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6)
   #f
   'internal-definition-context))
(define struct:internal-definition-context
  (make-record-type-descriptor
   'internal-definition-context
   #f
   (|#%nongenerative-uid| internal-definition-context)
   #f
   #f
   '(7 . 0)))
(define effect_2979 (finish_2794 struct:internal-definition-context))
(define internal-definition-context1.1
  (|#%name|
   internal-definition-context
   (record-constructor
    (make-record-constructor-descriptor
     struct:internal-definition-context
     #f
     #f))))
(define 1/internal-definition-context?_2482
  (|#%name|
   internal-definition-context?
   (record-predicate struct:internal-definition-context)))
(define 1/internal-definition-context?
  (|#%name|
   internal-definition-context?
   (lambda (v)
     (if (1/internal-definition-context?_2482 v)
       #t
       ($value
        (if (impersonator? v)
          (1/internal-definition-context?_2482 (impersonator-val v))
          #f))))))
(define internal-definition-context-frame-id_2857
  (|#%name|
   internal-definition-context-frame-id
   (record-accessor struct:internal-definition-context 0)))
(define internal-definition-context-frame-id
  (|#%name|
   internal-definition-context-frame-id
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-frame-id_2857 s)
       ($value
        (impersonate-ref
         internal-definition-context-frame-id_2857
         struct:internal-definition-context
         0
         s
         'frame-id))))))
(define internal-definition-context-outside-edge_1731
  (|#%name|
   internal-definition-context-outside-edge
   (record-accessor struct:internal-definition-context 1)))
(define internal-definition-context-outside-edge
  (|#%name|
   internal-definition-context-outside-edge
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-outside-edge_1731 s)
       ($value
        (impersonate-ref
         internal-definition-context-outside-edge_1731
         struct:internal-definition-context
         1
         s
         'outside-edge))))))
(define internal-definition-context-inside-edge_2770
  (|#%name|
   internal-definition-context-inside-edge
   (record-accessor struct:internal-definition-context 2)))
(define internal-definition-context-inside-edge
  (|#%name|
   internal-definition-context-inside-edge
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-inside-edge_2770 s)
       ($value
        (impersonate-ref
         internal-definition-context-inside-edge_2770
         struct:internal-definition-context
         2
         s
         'inside-edge))))))
(define internal-definition-context-add-scope?_2849
  (|#%name|
   internal-definition-context-add-scope?
   (record-accessor struct:internal-definition-context 3)))
(define internal-definition-context-add-scope?
  (|#%name|
   internal-definition-context-add-scope?
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-add-scope?_2849 s)
       ($value
        (impersonate-ref
         internal-definition-context-add-scope?_2849
         struct:internal-definition-context
         3
         s
         'add-scope?))))))
(define internal-definition-context-env-mixins_1685
  (|#%name|
   internal-definition-context-env-mixins
   (record-accessor struct:internal-definition-context 4)))
(define internal-definition-context-env-mixins
  (|#%name|
   internal-definition-context-env-mixins
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-env-mixins_1685 s)
       ($value
        (impersonate-ref
         internal-definition-context-env-mixins_1685
         struct:internal-definition-context
         4
         s
         'env-mixins))))))
(define internal-definition-context-use-site-scopes_3204
  (|#%name|
   internal-definition-context-use-site-scopes
   (record-accessor struct:internal-definition-context 5)))
(define internal-definition-context-use-site-scopes
  (|#%name|
   internal-definition-context-use-site-scopes
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-use-site-scopes_3204 s)
       ($value
        (impersonate-ref
         internal-definition-context-use-site-scopes_3204
         struct:internal-definition-context
         5
         s
         'use-site-scopes))))))
(define internal-definition-context-parent-ctx_2522
  (|#%name|
   internal-definition-context-parent-ctx
   (record-accessor struct:internal-definition-context 6)))
(define internal-definition-context-parent-ctx
  (|#%name|
   internal-definition-context-parent-ctx
   (lambda (s)
     (if (1/internal-definition-context?_2482 s)
       (internal-definition-context-parent-ctx_2522 s)
       ($value
        (impersonate-ref
         internal-definition-context-parent-ctx_2522
         struct:internal-definition-context
         6
         s
         'parent-ctx))))))
(define finish_2692
  (make-struct-type-install-properties
   '(env-mixin)
   4
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'env-mixin))
(define struct:env-mixin
  (make-record-type-descriptor
   'env-mixin
   #f
   (|#%nongenerative-uid| env-mixin)
   #f
   #f
   '(4 . 0)))
(define effect_2352 (finish_2692 struct:env-mixin))
(define env-mixin2.1
  (|#%name|
   env-mixin
   (record-constructor
    (make-record-constructor-descriptor struct:env-mixin #f #f))))
(define env-mixin?_2685
  (|#%name| env-mixin? (record-predicate struct:env-mixin)))
(define env-mixin?
  (|#%name|
   env-mixin?
   (lambda (v)
     (if (env-mixin?_2685 v)
       #t
       ($value
        (if (impersonator? v) (env-mixin?_2685 (impersonator-val v)) #f))))))
(define env-mixin-id_3169
  (|#%name| env-mixin-id (record-accessor struct:env-mixin 0)))
(define env-mixin-id
  (|#%name|
   env-mixin-id
   (lambda (s)
     (if (env-mixin?_2685 s)
       (env-mixin-id_3169 s)
       ($value
        (impersonate-ref env-mixin-id_3169 struct:env-mixin 0 s 'id))))))
(define env-mixin-sym_1834
  (|#%name| env-mixin-sym (record-accessor struct:env-mixin 1)))
(define env-mixin-sym
  (|#%name|
   env-mixin-sym
   (lambda (s)
     (if (env-mixin?_2685 s)
       (env-mixin-sym_1834 s)
       ($value
        (impersonate-ref env-mixin-sym_1834 struct:env-mixin 1 s 'sym))))))
(define env-mixin-value_2403
  (|#%name| env-mixin-value (record-accessor struct:env-mixin 2)))
(define env-mixin-value
  (|#%name|
   env-mixin-value
   (lambda (s)
     (if (env-mixin?_2685 s)
       (env-mixin-value_2403 s)
       ($value
        (impersonate-ref env-mixin-value_2403 struct:env-mixin 2 s 'value))))))
(define env-mixin-cache_2675
  (|#%name| env-mixin-cache (record-accessor struct:env-mixin 3)))
(define env-mixin-cache
  (|#%name|
   env-mixin-cache
   (lambda (s)
     (if (env-mixin?_2685 s)
       (env-mixin-cache_2675 s)
       ($value
        (impersonate-ref env-mixin-cache_2675 struct:env-mixin 3 s 'cache))))))
(define 1/syntax-local-make-definition-context
  (let ((syntax-local-make-definition-context_0
         (|#%name|
          syntax-local-make-definition-context
          (lambda (parent-ctx3_0 add-scope?4_0)
            (begin
              (begin
                (if (let ((or-part_0 (not parent-ctx3_0)))
                      (if or-part_0
                        or-part_0
                        (1/internal-definition-context? parent-ctx3_0)))
                  (void)
                  (raise-argument-error
                   'syntax-local-make-definition-context
                   "(or/c #f internal-definition-context?)"
                   parent-ctx3_0))
                (let ((ctx_0
                       (get-current-expand-context.1
                        #f
                        'syntax-local-make-definition-context)))
                  (let ((frame-id_0
                         (let ((or-part_0
                                (if parent-ctx3_0
                                  (internal-definition-context-frame-id
                                   parent-ctx3_0)
                                  #f)))
                           (if or-part_0
                             or-part_0
                             (let ((or-part_1
                                    (if (not
                                         (eq?
                                          'expression
                                          (begin-unsafe
                                           (expand-context/outer-context
                                            ctx_0))))
                                      (begin-unsafe
                                       (root-expand-context/outer-frame-id
                                        ctx_0))
                                      #f)))
                               (if or-part_1 or-part_1 (gensym)))))))
                    (let ((outside-edge_0 (new-scope 'intdef-outside)))
                      (let ((inside-edge_0 (new-scope 'intdef)))
                        (let ((def-ctx-scopes_0
                               (begin-unsafe
                                (expand-context/outer-def-ctx-scopes ctx_0))))
                          (begin
                            (if def-ctx-scopes_0
                              (set-box!
                               def-ctx-scopes_0
                               (cons
                                inside-edge_0
                                (cons
                                 outside-edge_0
                                 (unbox def-ctx-scopes_0))))
                              (void))
                            (let ((use-site-scopes_0 (box '())))
                              (internal-definition-context1.1
                               frame-id_0
                               outside-edge_0
                               inside-edge_0
                               add-scope?4_0
                               (box null)
                               use-site-scopes_0
                               parent-ctx3_0))))))))))))))
    (|#%name|
     syntax-local-make-definition-context
     (case-lambda
      (() (begin (syntax-local-make-definition-context_0 #f #t)))
      ((parent-ctx_0 add-scope?4_0)
       (syntax-local-make-definition-context_0 parent-ctx_0 add-scope?4_0))
      ((parent-ctx3_0)
       (syntax-local-make-definition-context_0 parent-ctx3_0 #t))))))
(define 1/syntax-local-bind-syntaxes
  (let ((syntax-local-bind-syntaxes_0
         (|#%name|
          syntax-local-bind-syntaxes
          (lambda (ids6_0 s7_0 intdef8_0 extra-intdefs5_0)
            (begin
              (begin
                (if (if (list? ids6_0) (andmap_2344 identifier? ids6_0) #f)
                  (void)
                  (raise-argument-error
                   'syntax-local-bind-syntaxes
                   "(listof identifier?)"
                   ids6_0))
                (begin
                  (if (let ((or-part_0 (not s7_0)))
                        (if or-part_0 or-part_0 (syntax?$1 s7_0)))
                    (void)
                    (raise-argument-error
                     'syntax-local-bind-syntaxes
                     "(or/c syntax? #f)"
                     s7_0))
                  (begin
                    (if (1/internal-definition-context? intdef8_0)
                      (void)
                      (raise-argument-error
                       'syntax-local-bind-syntaxes
                       "internal-definition-context?"
                       intdef8_0))
                    (begin
                      (if (intdefs? extra-intdefs5_0)
                        (void)
                        (raise-argument-error
                         'syntax-local-bind-syntaxes
                         intdefs?-string
                         extra-intdefs5_0))
                      (let ((ctx_0
                             (get-current-expand-context.1 #f 'local-expand)))
                        (begin
                          (let ((obs_0
                                 (begin-unsafe
                                  (expand-context/inner-observer
                                   (root-expand-context/outer-inner ctx_0)))))
                            (if obs_0
                              (call-expand-observe obs_0 'local-bind ids6_0)
                              (void)))
                          (let ((phase_0
                                 (begin-unsafe
                                  (expand-context/inner-phase
                                   (root-expand-context/outer-inner ctx_0)))))
                            (let ((all-intdefs_0
                                   (if (null? extra-intdefs5_0)
                                     intdef8_0
                                     (if (list? extra-intdefs5_0)
                                       (cons intdef8_0 extra-intdefs5_0)
                                       (list intdef8_0 extra-intdefs5_0)))))
                              (let ((intdef-ids_0
                                     (reverse$1
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (fold-var_0 lst_0)
                                              (begin
                                                (if (pair? lst_0)
                                                  (let ((id_0
                                                         (unsafe-car lst_0)))
                                                    (let ((rest_0
                                                           (unsafe-cdr lst_0)))
                                                      (let ((fold-var_1
                                                             (let ((fold-var_1
                                                                    (cons
                                                                     (let ((pre-id_0
                                                                            (remove-intdef-use-site-scopes
                                                                             (begin-unsafe
                                                                              (flip-scopes
                                                                               id_0
                                                                               (begin-unsafe
                                                                                (expand-context/outer-current-introduction-scopes
                                                                                 ctx_0))))
                                                                             intdef8_0)))
                                                                       (let ((temp41_0
                                                                              (add-intdef-scopes.1
                                                                               unsafe-undefined
                                                                               #t
                                                                               pre-id_0
                                                                               intdef8_0)))
                                                                         (add-intdef-scopes.1
                                                                          unsafe-undefined
                                                                          #f
                                                                          temp41_0
                                                                          extra-intdefs5_0)))
                                                                     fold-var_0)))
                                                               (values
                                                                fold-var_1))))
                                                        (for-loop_0
                                                         fold-var_1
                                                         rest_0))))
                                                  fold-var_0))))))
                                         (for-loop_0 null ids6_0))))))
                                (begin
                                  (let ((obs_0
                                         (begin-unsafe
                                          (expand-context/inner-observer
                                           (root-expand-context/outer-inner
                                            ctx_0)))))
                                    (if obs_0
                                      (call-expand-observe
                                       obs_0
                                       'rename-list
                                       intdef-ids_0)
                                      (void)))
                                  (let ((counter_0
                                         (begin-unsafe
                                          (root-expand-context/inner-counter
                                           (root-expand-context/outer-inner
                                            ctx_0)))))
                                    (let ((local-sym_0
                                           (if (begin-unsafe
                                                (expand-context/inner-normalize-locals?
                                                 (root-expand-context/outer-inner
                                                  ctx_0)))
                                             'loc
                                             #f)))
                                      (let ((syms_0
                                             (reverse$1
                                              (begin
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (fold-var_0 lst_0)
                                                      (begin
                                                        (if (pair? lst_0)
                                                          (let ((intdef-id_0
                                                                 (unsafe-car
                                                                  lst_0)))
                                                            (let ((rest_0
                                                                   (unsafe-cdr
                                                                    lst_0)))
                                                              (let ((fold-var_1
                                                                     (let ((fold-var_1
                                                                            (cons
                                                                             (let ((temp49_0
                                                                                    (internal-definition-context-frame-id
                                                                                     intdef8_0)))
                                                                               (add-local-binding!.1
                                                                                temp49_0
                                                                                #f
                                                                                local-sym_0
                                                                                intdef-id_0
                                                                                phase_0
                                                                                counter_0))
                                                                             fold-var_0)))
                                                                       (values
                                                                        fold-var_1))))
                                                                (for-loop_0
                                                                 fold-var_1
                                                                 rest_0))))
                                                          fold-var_0))))))
                                                 (for-loop_0
                                                  null
                                                  intdef-ids_0))))))
                                        (let ((local-ctx_0
                                               (if s7_0
                                                 (let ((tmp-env_0
                                                        (begin
                                                          (letrec*
                                                           ((for-loop_0
                                                             (|#%name|
                                                              for-loop
                                                              (lambda (env_0
                                                                       lst_0
                                                                       lst_1)
                                                                (begin
                                                                  (if (if (pair?
                                                                           lst_0)
                                                                        (pair?
                                                                         lst_1)
                                                                        #f)
                                                                    (let ((sym_0
                                                                           (unsafe-car
                                                                            lst_0)))
                                                                      (let ((rest_0
                                                                             (unsafe-cdr
                                                                              lst_0)))
                                                                        (let ((intdef-id_0
                                                                               (unsafe-car
                                                                                lst_1)))
                                                                          (let ((rest_1
                                                                                 (unsafe-cdr
                                                                                  lst_1)))
                                                                            (let ((val_0
                                                                                   (local-variable1.1
                                                                                    intdef-id_0)))
                                                                              (let ((env_1
                                                                                     (let ((env_1
                                                                                            (begin-unsafe
                                                                                             (hash-set
                                                                                              env_0
                                                                                              sym_0
                                                                                              val_0))))
                                                                                       (values
                                                                                        env_1))))
                                                                                (for-loop_0
                                                                                 env_1
                                                                                 rest_0
                                                                                 rest_1)))))))
                                                                    env_0))))))
                                                           (for-loop_0
                                                            (begin-unsafe
                                                             (expand-context/outer-env
                                                              ctx_0))
                                                            syms_0
                                                            intdef-ids_0)))))
                                                   (let ((temp51_0
                                                          (if (expand-context/outer?
                                                               ctx_0)
                                                            (let ((inner56_0
                                                                   (root-expand-context/outer-inner
                                                                    ctx_0)))
                                                              (expand-context/outer1.1
                                                               inner56_0
                                                               (root-expand-context/outer-post-expansion
                                                                ctx_0)
                                                               (root-expand-context/outer-use-site-scopes
                                                                ctx_0)
                                                               (root-expand-context/outer-frame-id
                                                                ctx_0)
                                                               (expand-context/outer-context
                                                                ctx_0)
                                                               tmp-env_0
                                                               (expand-context/outer-scopes
                                                                ctx_0)
                                                               (expand-context/outer-def-ctx-scopes
                                                                ctx_0)
                                                               (expand-context/outer-binding-layer
                                                                ctx_0)
                                                               (expand-context/outer-reference-records
                                                                ctx_0)
                                                               (expand-context/outer-only-immediate?
                                                                ctx_0)
                                                               (expand-context/outer-need-eventually-defined
                                                                ctx_0)
                                                               (expand-context/outer-current-introduction-scopes
                                                                ctx_0)
                                                               (expand-context/outer-current-use-scopes
                                                                ctx_0)
                                                               (expand-context/outer-name
                                                                ctx_0)))
                                                            (raise-argument-error
                                                             'struct-copy
                                                             "expand-context/outer?"
                                                             ctx_0))))
                                                     (make-local-expand-context.1
                                                      'expression
                                                      #f
                                                      all-intdefs_0
                                                      #t
                                                      unsafe-undefined
                                                      #f
                                                      #f
                                                      #f
                                                      temp51_0)))
                                                 #f)))
                                          (let ((vals_0
                                                 (if s7_0
                                                   (let ((input-s_0
                                                          (let ((s_0
                                                                 (add-intdef-scopes.1
                                                                  unsafe-undefined
                                                                  #f
                                                                  s7_0
                                                                  all-intdefs_0)))
                                                            (begin-unsafe
                                                             (flip-scopes
                                                              s_0
                                                              (begin-unsafe
                                                               (expand-context/outer-current-introduction-scopes
                                                                ctx_0)))))))
                                                     (begin
                                                       (let ((obs_0
                                                              (begin-unsafe
                                                               (expand-context/inner-observer
                                                                (root-expand-context/outer-inner
                                                                 ctx_0)))))
                                                         (if obs_0
                                                           (call-expand-observe
                                                            obs_0
                                                            'enter-bind)
                                                           (void)))
                                                       (let ((vals_0
                                                              (eval-for-syntaxes-binding
                                                               'syntax-local-bind-syntaxes
                                                               input-s_0
                                                               ids6_0
                                                               local-ctx_0)))
                                                         (begin
                                                           (let ((obs_0
                                                                  (begin-unsafe
                                                                   (expand-context/inner-observer
                                                                    (root-expand-context/outer-inner
                                                                     ctx_0)))))
                                                             (if obs_0
                                                               (call-expand-observe
                                                                obs_0
                                                                'exit-bind)
                                                               (void)))
                                                           vals_0))))
                                                   (reverse$1
                                                    (begin
                                                      (letrec*
                                                       ((for-loop_0
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (fold-var_0
                                                                   lst_0)
                                                            (begin
                                                              (if (pair? lst_0)
                                                                (let ((intdef-id_0
                                                                       (unsafe-car
                                                                        lst_0)))
                                                                  (let ((rest_0
                                                                         (unsafe-cdr
                                                                          lst_0)))
                                                                    (let ((fold-var_1
                                                                           (cons
                                                                            (local-variable1.1
                                                                             intdef-id_0)
                                                                            fold-var_0)))
                                                                      (let ((fold-var_2
                                                                             (values
                                                                              fold-var_1)))
                                                                        (for-loop_0
                                                                         fold-var_2
                                                                         rest_0)))))
                                                                fold-var_0))))))
                                                       (for-loop_0
                                                        null
                                                        intdef-ids_0)))))))
                                            (let ((env-mixins_0
                                                   (internal-definition-context-env-mixins
                                                    intdef8_0)))
                                              (begin
                                                (set-box!
                                                 env-mixins_0
                                                 (let ((app_0
                                                        (reverse$1
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_0
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (fold-var_0
                                                                        lst_0
                                                                        lst_1
                                                                        lst_2)
                                                                 (begin
                                                                   (if (if (pair?
                                                                            lst_0)
                                                                         (if (pair?
                                                                              lst_1)
                                                                           (pair?
                                                                            lst_2)
                                                                           #f)
                                                                         #f)
                                                                     (let ((intdef-id_0
                                                                            (unsafe-car
                                                                             lst_0)))
                                                                       (let ((rest_0
                                                                              (unsafe-cdr
                                                                               lst_0)))
                                                                         (let ((sym_0
                                                                                (unsafe-car
                                                                                 lst_1)))
                                                                           (let ((rest_1
                                                                                  (unsafe-cdr
                                                                                   lst_1)))
                                                                             (let ((val_0
                                                                                    (unsafe-car
                                                                                     lst_2)))
                                                                               (let ((rest_2
                                                                                      (unsafe-cdr
                                                                                       lst_2)))
                                                                                 (let ((fold-var_1
                                                                                        (let ((fold-var_1
                                                                                               (cons
                                                                                                (begin
                                                                                                  (if local-ctx_0
                                                                                                    (maybe-install-free=id-in-context!
                                                                                                     val_0
                                                                                                     intdef-id_0
                                                                                                     phase_0
                                                                                                     local-ctx_0)
                                                                                                    (void))
                                                                                                  (env-mixin2.1
                                                                                                   intdef-id_0
                                                                                                   sym_0
                                                                                                   val_0
                                                                                                   (make-weak-hasheq)))
                                                                                                fold-var_0)))
                                                                                          (values
                                                                                           fold-var_1))))
                                                                                   (for-loop_0
                                                                                    fold-var_1
                                                                                    rest_0
                                                                                    rest_1
                                                                                    rest_2))))))))
                                                                     fold-var_0))))))
                                                            (for-loop_0
                                                             null
                                                             intdef-ids_0
                                                             syms_0
                                                             vals_0))))))
                                                   (append
                                                    app_0
                                                    (unbox env-mixins_0))))
                                                (let ((obs_0
                                                       (begin-unsafe
                                                        (expand-context/inner-observer
                                                         (root-expand-context/outer-inner
                                                          ctx_0)))))
                                                  (if obs_0
                                                    (call-expand-observe
                                                     obs_0
                                                     'exit-local-bind)
                                                    (void)))
                                                (reverse$1
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_0
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (fold-var_0
                                                                lst_0)
                                                         (begin
                                                           (if (pair? lst_0)
                                                             (let ((id_0
                                                                    (unsafe-car
                                                                     lst_0)))
                                                               (let ((rest_0
                                                                      (unsafe-cdr
                                                                       lst_0)))
                                                                 (let ((fold-var_1
                                                                        (let ((fold-var_1
                                                                               (cons
                                                                                (begin-unsafe
                                                                                 (flip-scopes
                                                                                  id_0
                                                                                  (begin-unsafe
                                                                                   (expand-context/outer-current-introduction-scopes
                                                                                    ctx_0))))
                                                                                fold-var_0)))
                                                                          (values
                                                                           fold-var_1))))
                                                                   (for-loop_0
                                                                    fold-var_1
                                                                    rest_0))))
                                                             fold-var_0))))))
                                                    (for-loop_0
                                                     null
                                                     intdef-ids_0))))))))))))))))))))))))))
    (|#%name|
     syntax-local-bind-syntaxes
     (case-lambda
      ((ids_0 s_0 intdef_0)
       (begin (syntax-local-bind-syntaxes_0 ids_0 s_0 intdef_0 '())))
      ((ids_0 s_0 intdef_0 extra-intdefs5_0)
       (syntax-local-bind-syntaxes_0 ids_0 s_0 intdef_0 extra-intdefs5_0))))))
(define 1/internal-definition-context-binding-identifiers
  (|#%name|
   internal-definition-context-binding-identifiers
   (lambda (intdef_0)
     (begin
       (begin
         (if (1/internal-definition-context? intdef_0)
           (void)
           (raise-argument-error
            'internal-definition-context-binding-identifiers
            "internal-definition-context?"
            intdef_0))
         (reverse$1
          (let ((lst_0
                 (unbox (internal-definition-context-env-mixins intdef_0))))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((env-mixin_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (let ((fold-var_1
                                   (let ((fold-var_1
                                          (cons
                                           (env-mixin-id env-mixin_0)
                                           fold-var_0)))
                                     (values fold-var_1))))
                              (for-loop_0 fold-var_1 rest_0))))
                        fold-var_0))))))
               (for-loop_0 null lst_0))))))))))
(define 1/internal-definition-context-introduce
  (let ((internal-definition-context-introduce_0
         (|#%name|
          internal-definition-context-introduce
          (lambda (intdef10_0 s11_0 mode9_0)
            (begin
              (begin
                (if (1/internal-definition-context? intdef10_0)
                  (void)
                  (raise-argument-error
                   'internal-definition-context-introduce
                   "internal-definition-context?"
                   intdef10_0))
                (begin
                  (if (syntax?$1 s11_0)
                    (void)
                    (raise-argument-error
                     'internal-definition-context-introduce
                     "syntax?"
                     s11_0))
                  (let ((new-s_0
                         (let ((temp62_0
                                (if (eq? mode9_0 'add)
                                  add-scope
                                  (if (eq? mode9_0 'remove)
                                    remove-scope
                                    (if (eq? mode9_0 'flip)
                                      flip-scope
                                      (raise-argument-error
                                       'internal-definition-context-introduce
                                       "(or/c 'add 'remove 'flip)"
                                       mode9_0))))))
                           (add-intdef-scopes.1
                            temp62_0
                            #t
                            s11_0
                            intdef10_0))))
                    (let ((ctx_0
                           (get-current-expand-context.1 #t 'unexpected)))
                      (begin
                        (if ctx_0
                          (let ((obs_0
                                 (begin-unsafe
                                  (expand-context/inner-observer
                                   (root-expand-context/outer-inner ctx_0)))))
                            (if obs_0
                              (call-expand-observe
                               obs_0
                               'track-syntax
                               'internal-definition-context-introduce
                               new-s_0
                               s11_0)
                              (void)))
                          (void))
                        new-s_0))))))))))
    (|#%name|
     internal-definition-context-introduce
     (case-lambda
      ((intdef_0 s_0)
       (begin (internal-definition-context-introduce_0 intdef_0 s_0 'flip)))
      ((intdef_0 s_0 mode9_0)
       (internal-definition-context-introduce_0 intdef_0 s_0 mode9_0))))))
(define 1/internal-definition-context-seal
  (|#%name|
   internal-definition-context-seal
   (lambda (intdef_0)
     (begin
       (begin
         (if (1/internal-definition-context? intdef_0)
           (void)
           (raise-argument-error
            'internal-definition-context-seal
            "internal-definition-context?"
            intdef_0))
         (void))))))
(define 1/identifier-remove-from-definition-context
  (|#%name|
   identifier-remove-from-definition-context
   (lambda (id_0 intdef_0)
     (begin
       (begin
         (if (identifier? id_0)
           (void)
           (raise-argument-error
            'identifier-remove-from-definition-context
            "identifier?"
            id_0))
         (if (let ((or-part_0 (1/internal-definition-context? intdef_0)))
               (if or-part_0
                 or-part_0
                 (if (list? intdef_0)
                   (andmap_2344 1/internal-definition-context? intdef_0)
                   #f)))
           (void)
           (raise-argument-error
            'identifier-remove-from-definition-context
            "(or/c internal-definition-context? (listof internal-definition-context?))"
            intdef_0))
         (let ((x_0
                (if (list? intdef_0)
                  (reverse$1 intdef_0)
                  (if (not intdef_0) null (list intdef_0)))))
           (begin
             #t
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (id_1 a_0)
                   (begin
                     (if (pair? a_0)
                       (let ((intdef_1 (car a_0)))
                         (let ((id_2
                                (let ((id_2
                                       (1/internal-definition-context-introduce
                                        intdef_1
                                        id_1
                                        'remove)))
                                  (values id_2))))
                           (for-loop_0 id_2 (cdr a_0))))
                       id_1))))))
              (for-loop_0 id_0 x_0)))))))))
(define 1/internal-definition-context-add-scopes
  (|#%name|
   internal-definition-context-add-scopes
   (lambda (intdef_0 s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error
            'internal-definition-context-add-scopes
            "syntax?"
            s_0))
         (if (1/internal-definition-context? intdef_0)
           (void)
           (raise-argument-error
            'internal-definition-context-add-scopes
            "internal-definition-context?"
            intdef_0))
         (let ((app_0
                (add-scope
                 s_0
                 (internal-definition-context-inside-edge intdef_0))))
           (add-scope
            app_0
            (internal-definition-context-outside-edge intdef_0))))))))
(define 1/internal-definition-context-splice-binding-identifier
  (|#%name|
   internal-definition-context-splice-binding-identifier
   (lambda (intdef_0 id_0)
     (begin
       (begin
         (if (identifier? id_0)
           (void)
           (raise-argument-error
            'internal-definition-context-splice-binding-identifier
            "identifier?"
            id_0))
         (if (1/internal-definition-context? intdef_0)
           (void)
           (raise-argument-error
            'internal-definition-context-splice-binding-identifier
            "internal-definition-context?"
            intdef_0))
         (remove-intdef-use-site-scopes
          (let ((app_0
                 (remove-scope
                  id_0
                  (internal-definition-context-inside-edge intdef_0))))
            (remove-scope
             app_0
             (internal-definition-context-outside-edge intdef_0)))
          intdef_0))))))
(define intdefs?
  (lambda (x_0)
    (let ((or-part_0 (1/internal-definition-context? x_0)))
      (if or-part_0
        or-part_0
        (if (list? x_0)
          (andmap_2344 1/internal-definition-context? x_0)
          #f)))))
(define intdefs?-string
  "(or/c internal-definition-context? (listof internal-definition-context?))")
(define intdefs-or-false?
  (lambda (x_0)
    (let ((or-part_0 (not x_0))) (if or-part_0 or-part_0 (intdefs? x_0)))))
(define intdefs-or-false?-string
  "(or/c internal-definition-context? (listof internal-definition-context?) #f)")
(define add-intdef-bindings
  (lambda (env_0 intdefs_0)
    (let ((x_0
           (if (list? intdefs_0)
             (reverse$1 intdefs_0)
             (if (not intdefs_0) null (list intdefs_0)))))
      (begin
        #t
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (env_1 a_0)
              (begin
                (if (pair? a_0)
                  (let ((intdef_0 (car a_0)))
                    (let ((env_2
                           (let ((env_2
                                  (let ((parent-ctx_0
                                         (internal-definition-context-parent-ctx
                                          intdef_0)))
                                    (let ((parent-env_0
                                           (if parent-ctx_0
                                             (add-intdef-bindings
                                              env_1
                                              parent-ctx_0)
                                             env_1)))
                                      (let ((env-mixins_0
                                             (unbox
                                              (internal-definition-context-env-mixins
                                               intdef_0))))
                                        (letrec*
                                         ((loop_0
                                           (|#%name|
                                            loop
                                            (lambda (env_2 env-mixins_1)
                                              (begin
                                                (if (null? env-mixins_1)
                                                  env_2
                                                  (let ((env-mixin_0
                                                         (car env-mixins_1)))
                                                    (let ((or-part_0
                                                           (hash-ref
                                                            (env-mixin-cache
                                                             env-mixin_0)
                                                            env_2
                                                            #f)))
                                                      (if or-part_0
                                                        or-part_0
                                                        (let ((new-env_0
                                                               (let ((env_3
                                                                      (loop_0
                                                                       env_2
                                                                       (cdr
                                                                        env-mixins_1))))
                                                                 (let ((key_0
                                                                        (env-mixin-sym
                                                                         env-mixin_0)))
                                                                   (let ((val_0
                                                                          (env-mixin-value
                                                                           env-mixin_0)))
                                                                     (let ((key_1
                                                                            key_0)
                                                                           (env_4
                                                                            env_3))
                                                                       (begin-unsafe
                                                                        (hash-set
                                                                         env_4
                                                                         key_1
                                                                         val_0))))))))
                                                          (begin
                                                            (hash-set!
                                                             (env-mixin-cache
                                                              env-mixin_0)
                                                             env_2
                                                             new-env_0)
                                                            new-env_0)))))))))))
                                         (loop_0
                                          parent-env_0
                                          env-mixins_0)))))))
                             (values env_2))))
                      (for-loop_0 env_2 (cdr a_0))))
                  env_1))))))
         (for-loop_0 env_0 x_0))))))
(define add-intdef-scopes.1
  (|#%name|
   add-intdef-scopes
   (lambda (action13_0 always?12_0 s16_0 intdefs17_0)
     (begin
       (let ((action_0
              (if (eq? action13_0 unsafe-undefined) add-scope action13_0)))
         (let ((x_0
                (if (list? intdefs17_0)
                  (reverse$1 intdefs17_0)
                  (if (not intdefs17_0) null (list intdefs17_0)))))
           (begin
             #t
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (s_0 a_0)
                   (begin
                     (if (pair? a_0)
                       (let ((intdef_0 (car a_0)))
                         (let ((s_1
                                (if (if always?12_0
                                      always?12_0
                                      (internal-definition-context-add-scope?
                                       intdef_0))
                                  (let ((s_1
                                         (|#%app|
                                          action_0
                                          s_0
                                          (internal-definition-context-inside-edge
                                           intdef_0))))
                                    (values s_1))
                                  s_0)))
                           (for-loop_0 s_1 (cdr a_0))))
                       s_0))))))
              (for-loop_0 s16_0 x_0)))))))))
(define make-local-expand-context.1
  (|#%name|
   make-local-expand-context
   (lambda (context19_0
            in-local-expand?26_0
            intdefs21_0
            |keep-#%expression?25_0|
            phase20_0
            stop-ids22_0
            to-parsed-ok?23_0
            track-to-be-defined?24_0
            ctx35_0)
     (begin
       (let ((phase_0
              (if (eq? phase20_0 unsafe-undefined)
                (begin-unsafe
                 (expand-context/inner-phase
                  (root-expand-context/outer-inner ctx35_0)))
                phase20_0)))
         (let ((same-kind?_0
                (let ((or-part_0
                       (eq?
                        context19_0
                        (begin-unsafe
                         (expand-context/outer-context ctx35_0)))))
                  (if or-part_0
                    or-part_0
                    (if (list? context19_0)
                      (list?
                       (begin-unsafe (expand-context/outer-context ctx35_0)))
                      #f)))))
           (let ((all-stop-ids_0
                  (if stop-ids22_0
                    (stop-ids->all-stop-ids stop-ids22_0 phase_0)
                    #f)))
             (let ((def-ctx-scopes_0
                    (if (begin-unsafe
                         (expand-context/outer-def-ctx-scopes ctx35_0))
                      (unbox
                       (begin-unsafe
                        (expand-context/outer-def-ctx-scopes ctx35_0)))
                      null)))
               (if (expand-context/outer? ctx35_0)
                 (let ((env65_0
                        (add-intdef-bindings
                         (begin-unsafe (expand-context/outer-env ctx35_0))
                         intdefs21_0)))
                   (let ((use-site-scopes66_0
                          (if (let ((or-part_0 (eq? context19_0 'module)))
                                (if or-part_0
                                  or-part_0
                                  (let ((or-part_1
                                         (eq? context19_0 'module-begin)))
                                    (if or-part_1
                                      or-part_1
                                      (list? context19_0)))))
                            (if (1/internal-definition-context? intdefs21_0)
                              (internal-definition-context-use-site-scopes
                               intdefs21_0)
                              (let ((or-part_0
                                     (begin-unsafe
                                      (root-expand-context/outer-use-site-scopes
                                       ctx35_0))))
                                (if or-part_0 or-part_0 (box null))))
                            #f)))
                     (let ((frame-id67_0
                            (if (1/internal-definition-context? intdefs21_0)
                              (internal-definition-context-frame-id
                               intdefs21_0)
                              (if (not intdefs21_0)
                                (begin-unsafe
                                 (root-expand-context/outer-frame-id ctx35_0))
                                (if (list? intdefs21_0)
                                  (let ((x_0
                                         (if (list? intdefs21_0)
                                           (reverse$1 intdefs21_0)
                                           (if (not intdefs21_0)
                                             null
                                             (list intdefs21_0)))))
                                    (begin
                                      #t
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (frame-id_0 a_0)
                                            (begin
                                              (if (pair? a_0)
                                                (let ((intdef_0 (car a_0)))
                                                  (let ((frame-id_1
                                                         (let ((frame-id_1
                                                                (let ((i-frame-id_0
                                                                       (internal-definition-context-frame-id
                                                                        intdef_0)))
                                                                  (if (if frame-id_0
                                                                        (if i-frame-id_0
                                                                          (not
                                                                           (eq?
                                                                            frame-id_0
                                                                            i-frame-id_0))
                                                                          #f)
                                                                        #f)
                                                                    'all
                                                                    (if frame-id_0
                                                                      frame-id_0
                                                                      i-frame-id_0)))))
                                                           (values
                                                            frame-id_1))))
                                                    (for-loop_0
                                                     frame-id_1
                                                     (cdr a_0))))
                                                frame-id_0))))))
                                       (for-loop_0
                                        (if (not
                                             (eq?
                                              'expression
                                              (begin-unsafe
                                               (expand-context/outer-context
                                                ctx35_0))))
                                          (begin-unsafe
                                           (root-expand-context/outer-frame-id
                                            ctx35_0))
                                          #f)
                                        x_0))))
                                  (void))))))
                       (let ((post-expansion68_0
                              (let ((pe_0
                                     (if same-kind?_0
                                       (if (let ((or-part_0
                                                  (pair? context19_0)))
                                             (if or-part_0
                                               or-part_0
                                               (memq
                                                context19_0
                                                '(module module-begin top-level))))
                                         (begin-unsafe
                                          (root-expand-context/outer-post-expansion
                                           ctx35_0))
                                         #f)
                                       #f)))
                                (if (if intdefs21_0
                                      (not (null? intdefs21_0))
                                      #f)
                                  (|#%name|
                                   post-expansion68
                                   (lambda (s_0)
                                     (begin
                                       (let ((temp74_0
                                              (apply-post-expansion pe_0 s_0)))
                                         (add-intdef-scopes.1
                                          unsafe-undefined
                                          #f
                                          temp74_0
                                          intdefs21_0)))))
                                  pe_0))))
                         (let ((scopes69_0
                                (append
                                 def-ctx-scopes_0
                                 (begin-unsafe
                                  (expand-context/outer-scopes ctx35_0)))))
                           (let ((only-immediate?70_0 (not stop-ids22_0)))
                             (let ((need-eventually-defined72_0
                                    (let ((ht_0
                                           (begin-unsafe
                                            (expand-context/outer-need-eventually-defined
                                             ctx35_0))))
                                      (if track-to-be-defined?24_0
                                        ht_0
                                        (if ht_0 (make-hasheqv) #f)))))
                               (let ((inner73_0
                                      (let ((the-struct_0
                                             (root-expand-context/outer-inner
                                              ctx35_0)))
                                        (if (expand-context/inner?
                                             the-struct_0)
                                          (let ((to-parsed?76_0
                                                 (if to-parsed-ok?23_0
                                                   (begin-unsafe
                                                    (expand-context/inner-to-parsed?
                                                     (root-expand-context/outer-inner
                                                      ctx35_0)))
                                                   #f)))
                                            (let ((stops80_0
                                                   (free-id-set
                                                    phase_0
                                                    (if all-stop-ids_0
                                                      all-stop-ids_0
                                                      null))))
                                              (let ((to-parsed?76_1
                                                     to-parsed?76_0))
                                                (expand-context/inner2.1
                                                 (root-expand-context/inner-self-mpi
                                                  the-struct_0)
                                                 (root-expand-context/inner-module-scopes
                                                  the-struct_0)
                                                 (root-expand-context/inner-top-level-bind-scope
                                                  the-struct_0)
                                                 (root-expand-context/inner-all-scopes-stx
                                                  the-struct_0)
                                                 (root-expand-context/inner-defined-syms
                                                  the-struct_0)
                                                 (root-expand-context/inner-counter
                                                  the-struct_0)
                                                 (root-expand-context/inner-lift-key
                                                  the-struct_0)
                                                 to-parsed?76_1
                                                 (expand-context/inner-phase
                                                  the-struct_0)
                                                 (expand-context/inner-namespace
                                                  the-struct_0)
                                                 #f
                                                 (expand-context/inner-module-begin-k
                                                  the-struct_0)
                                                 (expand-context/inner-allow-unbound?
                                                  the-struct_0)
                                                 in-local-expand?26_0
                                                 |keep-#%expression?25_0|
                                                 stops80_0
                                                 (expand-context/inner-declared-submodule-names
                                                  the-struct_0)
                                                 (expand-context/inner-lifts
                                                  the-struct_0)
                                                 (expand-context/inner-lift-envs
                                                  the-struct_0)
                                                 (expand-context/inner-module-lifts
                                                  the-struct_0)
                                                 (expand-context/inner-require-lifts
                                                  the-struct_0)
                                                 (expand-context/inner-to-module-lifts
                                                  the-struct_0)
                                                 (expand-context/inner-requires+provides
                                                  the-struct_0)
                                                 (expand-context/inner-observer
                                                  the-struct_0)
                                                 (expand-context/inner-for-serializable?
                                                  the-struct_0)
                                                 (expand-context/inner-to-correlated-linklet?
                                                  the-struct_0)
                                                 (expand-context/inner-normalize-locals?
                                                  the-struct_0)
                                                 (expand-context/inner-parsing-expanded?
                                                  the-struct_0)
                                                 (expand-context/inner-skip-visit-available?
                                                  the-struct_0)))))
                                          (raise-argument-error
                                           'struct-copy
                                           "expand-context/inner?"
                                           the-struct_0)))))
                                 (let ((need-eventually-defined72_1
                                        need-eventually-defined72_0)
                                       (only-immediate?70_1
                                        only-immediate?70_0)
                                       (scopes69_1 scopes69_0)
                                       (post-expansion68_1 post-expansion68_0)
                                       (frame-id67_1 frame-id67_0)
                                       (use-site-scopes66_1
                                        use-site-scopes66_0)
                                       (env65_1 env65_0))
                                   (expand-context/outer1.1
                                    inner73_0
                                    post-expansion68_1
                                    use-site-scopes66_1
                                    frame-id67_1
                                    context19_0
                                    env65_1
                                    scopes69_1
                                    (expand-context/outer-def-ctx-scopes
                                     ctx35_0)
                                    (expand-context/outer-binding-layer
                                     ctx35_0)
                                    (expand-context/outer-reference-records
                                     ctx35_0)
                                    only-immediate?70_1
                                    need-eventually-defined72_1
                                    null
                                    (expand-context/outer-current-use-scopes
                                     ctx35_0)
                                    (expand-context/outer-name
                                     ctx35_0)))))))))))
                 (raise-argument-error
                  'struct-copy
                  "expand-context/outer?"
                  ctx35_0))))))))))
(define flip-introduction-scopes
  (lambda (s_0 ctx_0)
    (flip-scopes
     s_0
     (begin-unsafe (expand-context/outer-current-introduction-scopes ctx_0)))))
(define flip-introduction-and-use-scopes
  (lambda (s_0 ctx_0)
    (let ((app_0
           (begin-unsafe
            (flip-scopes
             s_0
             (begin-unsafe
              (expand-context/outer-current-introduction-scopes ctx_0))))))
      (flip-scopes
       app_0
       (begin-unsafe (expand-context/outer-current-use-scopes ctx_0))))))
(define remove-intdef-use-site-scopes
  (lambda (s_0 intdef_0)
    (let ((use-sites_0 (internal-definition-context-use-site-scopes intdef_0)))
      (if (syntax?$1 s_0)
        (remove-scopes s_0 (unbox use-sites_0))
        (reverse$1
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (fold-var_0 lst_0)
                 (begin
                   (if (pair? lst_0)
                     (let ((id_0 (unsafe-car lst_0)))
                       (let ((rest_0 (unsafe-cdr lst_0)))
                         (let ((fold-var_1
                                (let ((fold-var_1
                                       (cons
                                        (remove-scopes
                                         id_0
                                         (unbox use-sites_0))
                                        fold-var_0)))
                                  (values fold-var_1))))
                           (for-loop_0 fold-var_1 rest_0))))
                     fold-var_0))))))
            (for-loop_0 null s_0))))))))
(define 1/syntax-transforming?
  (|#%name|
   syntax-transforming?
   (lambda ()
     (begin (if (get-current-expand-context.1 #t 'unexpected) #t #f)))))
(define 1/syntax-transforming-with-lifts?
  (|#%name|
   syntax-transforming-with-lifts?
   (lambda ()
     (begin
       (let ((ctx_0 (get-current-expand-context.1 #t 'unexpected)))
         (if ctx_0
           (if (begin-unsafe
                (expand-context/inner-lifts
                 (root-expand-context/outer-inner ctx_0)))
             #t
             #f)
           #f))))))
(define 1/syntax-transforming-module-expression?
  (|#%name|
   syntax-transforming-module-expression?
   (lambda ()
     (begin
       (let ((ctx_0 (get-current-expand-context.1 #t 'unexpected)))
         (if ctx_0
           (if (begin-unsafe
                (expand-context/inner-to-module-lifts
                 (root-expand-context/outer-inner ctx_0)))
             #t
             #f)
           #f))))))
(define 1/syntax-local-transforming-module-provides?
  (|#%name|
   syntax-local-transforming-module-provides?
   (lambda ()
     (begin
       (let ((ctx_0 (get-current-expand-context.1 #t 'unexpected)))
         (if ctx_0
           (if (begin-unsafe
                (expand-context/inner-requires+provides
                 (root-expand-context/outer-inner ctx_0)))
             #t
             #f)
           #f))))))
(define 1/syntax-local-context
  (|#%name|
   syntax-local-context
   (lambda ()
     (begin
       (let ((ctx_0 (get-current-expand-context.1 #f 'syntax-local-context)))
         (begin-unsafe (expand-context/outer-context ctx_0)))))))
(define 1/syntax-local-introduce
  (|#%name|
   syntax-local-introduce
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-local-introduce "syntax?" s_0))
         (let ((ctx_0
                (get-current-expand-context.1 #f 'syntax-local-introduce)))
           (let ((new-s_0 (flip-introduction-and-use-scopes s_0 ctx_0)))
             (begin
               (let ((obs_0
                      (begin-unsafe
                       (expand-context/inner-observer
                        (root-expand-context/outer-inner ctx_0)))))
                 (if obs_0
                   (call-expand-observe
                    obs_0
                    'track-syntax
                    'syntax-local-introduce
                    new-s_0
                    s_0)
                   (void)))
               new-s_0))))))))
(define 1/syntax-local-identifier-as-binding
  (let ((syntax-local-identifier-as-binding_0
         (|#%name|
          syntax-local-identifier-as-binding
          (lambda (id2_0 intdef1_0)
            (begin
              (begin
                (if (identifier? id2_0)
                  (void)
                  (raise-argument-error
                   'syntax-local-identifier-as-binding
                   "identifier?"
                   id2_0))
                (begin
                  (if intdef1_0
                    (if (1/internal-definition-context? intdef1_0)
                      (void)
                      (raise-argument-error
                       'syntax-local-identifier-as-binding
                       "internal-definition-context?"
                       intdef1_0))
                    (void))
                  (let ((ctx_0
                         (get-current-expand-context.1
                          #f
                          'syntax-local-identifier-as-binding)))
                    (let ((new-id_0
                           (if intdef1_0
                             (remove-intdef-use-site-scopes id2_0 intdef1_0)
                             (remove-use-site-scopes id2_0 ctx_0))))
                      (begin
                        (let ((obs_0
                               (begin-unsafe
                                (expand-context/inner-observer
                                 (root-expand-context/outer-inner ctx_0)))))
                          (if obs_0
                            (call-expand-observe
                             obs_0
                             'track-syntax
                             'syntax-local-identifier-as-binding
                             new-id_0
                             id2_0)
                            (void)))
                        new-id_0))))))))))
    (|#%name|
     syntax-local-identifier-as-binding
     (case-lambda
      ((id_0) (begin (syntax-local-identifier-as-binding_0 id_0 #f)))
      ((id_0 intdef1_0)
       (syntax-local-identifier-as-binding_0 id_0 intdef1_0))))))
(define 1/syntax-local-phase-level
  (|#%name|
   syntax-local-phase-level
   (lambda ()
     (begin
       (let ((ctx_0 (get-current-expand-context.1 #t 'unexpected)))
         (if ctx_0
           (begin-unsafe
            (expand-context/inner-phase
             (root-expand-context/outer-inner ctx_0)))
           0))))))
(define 1/syntax-local-name
  (|#%name|
   syntax-local-name
   (lambda ()
     (begin
       (let ((ctx_0 (get-current-expand-context.1 #f 'syntax-local-name)))
         (let ((id_0 (begin-unsafe (expand-context/outer-name ctx_0))))
           (if id_0 (datum->syntax$1 #f (syntax-e$1 id_0) id_0) #f)))))))
(define 1/make-syntax-introducer
  (let ((make-syntax-introducer_0
         (|#%name|
          make-syntax-introducer
          (lambda (as-use-site?3_0)
            (begin
              (do-make-syntax-introducer
               (new-scope (if as-use-site?3_0 'use-site 'macro))))))))
    (|#%name|
     make-syntax-introducer
     (case-lambda
      (() (begin (make-syntax-introducer_0 #f)))
      ((as-use-site?3_0) (make-syntax-introducer_0 as-use-site?3_0))))))
(define 1/make-interned-syntax-introducer
  (|#%name|
   make-interned-syntax-introducer
   (lambda (sym-key_0)
     (begin
       (begin
         (if (if (symbol? sym-key_0) (symbol-interned? sym-key_0) #f)
           (void)
           (raise-argument-error
            'make-interned-syntax-introducer
            "(and/c symbol? symbol-interned?)"
            sym-key_0))
         (do-make-syntax-introducer (make-interned-scope sym-key_0)))))))
(define do-make-syntax-introducer
  (lambda (sc_0)
    (let ((do-make-syntax-introducer_0
           (|#%name|
            do-make-syntax-introducer
            (lambda (s62_0 mode61_0)
              (begin
                (begin
                  (if (syntax?$1 s62_0)
                    (void)
                    (raise-argument-error 'syntax-introducer "syntax?" s62_0))
                  (let ((new-s_0
                         (if (eq? mode61_0 'add)
                           (add-scope s62_0 sc_0)
                           (if (eq? mode61_0 'remove)
                             (remove-scope s62_0 sc_0)
                             (if (eq? mode61_0 'flip)
                               (flip-scope s62_0 sc_0)
                               (raise-argument-error
                                'syntax-introducer
                                "(or/c 'add 'remove 'flip)"
                                mode61_0))))))
                    (let ((ctx_0
                           (get-current-expand-context.1 #t 'unexpected)))
                      (begin
                        (if ctx_0
                          (let ((obs_0
                                 (begin-unsafe
                                  (expand-context/inner-observer
                                   (root-expand-context/outer-inner ctx_0)))))
                            (if obs_0
                              (call-expand-observe
                               obs_0
                               'track-syntax
                               mode61_0
                               new-s_0
                               s62_0)
                              (void)))
                          (void))
                        new-s_0)))))))))
      (|#%name|
       do-make-syntax-introducer
       (case-lambda
        ((s_0) (begin (do-make-syntax-introducer_0 s_0 'flip)))
        ((s_0 mode61_0) (do-make-syntax-introducer_0 s_0 mode61_0)))))))
(define 1/make-syntax-delta-introducer
  (let ((make-syntax-delta-introducer_0
         (|#%name|
          make-syntax-delta-introducer
          (lambda (ext-s5_0 base-s6_0 phase4_0)
            (begin
              (let ((phase_0
                     (if (eq? phase4_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase4_0)))
                (begin
                  (if (syntax?$1 ext-s5_0)
                    (void)
                    (raise-argument-error
                     'make-syntax-delta-introducer
                     "syntax?"
                     ext-s5_0))
                  (begin
                    (if (let ((or-part_0 (not base-s6_0)))
                          (if or-part_0 or-part_0 (syntax?$1 base-s6_0)))
                      (void)
                      (raise-argument-error
                       'make-syntax-delta-introducer
                       "(or/c syntax? #f)"
                       base-s6_0))
                    (begin
                      (if (phase? phase_0)
                        (void)
                        (raise-argument-error
                         'make-syntax-delta-introducer
                         phase?-string
                         phase_0))
                      (let ((ext-scs_0 (syntax-scope-set ext-s5_0 phase_0)))
                        (let ((base-scs_0
                               (syntax-scope-set
                                (if base-s6_0 base-s6_0 empty-syntax)
                                phase_0)))
                          (let ((use-base-scs_0
                                 (if (begin-unsafe
                                      (hash-keys-subset? base-scs_0 ext-scs_0))
                                   base-scs_0
                                   (let ((or-part_0
                                          (if (identifier? base-s6_0)
                                            (resolve.1
                                             #f
                                             #f
                                             null
                                             #t
                                             base-s6_0
                                             phase_0)
                                            #f)))
                                     (if or-part_0 or-part_0 (seteq))))))
                            (let ((delta-scs_0
                                   (set->list
                                    (set-subtract ext-scs_0 use-base-scs_0))))
                              (let ((maybe-taint_0
                                     (if (begin-unsafe
                                          (not (syntax-taintness ext-s5_0)))
                                       values
                                       syntax-taint$1)))
                                (let ((shifts_0 (syntax-mpi-shifts ext-s5_0)))
                                  (let ((make-syntax-delta-introducer_0
                                         (|#%name|
                                          make-syntax-delta-introducer
                                          (lambda (s69_0 mode68_0)
                                            (begin
                                              (begin
                                                (if (syntax?$1 s69_0)
                                                  (void)
                                                  (raise-argument-error
                                                   'syntax-introducer
                                                   "syntax?"
                                                   s69_0))
                                                (let ((new-s_0
                                                       (|#%app|
                                                        maybe-taint_0
                                                        (if (eq? mode68_0 'add)
                                                          (let ((temp70_0
                                                                 (add-scopes
                                                                  s69_0
                                                                  delta-scs_0)))
                                                            (syntax-add-shifts.1
                                                             #t
                                                             temp70_0
                                                             shifts_0
                                                             #f))
                                                          (if (eq?
                                                               mode68_0
                                                               'remove)
                                                            (remove-scopes
                                                             s69_0
                                                             delta-scs_0)
                                                            (if (eq?
                                                                 mode68_0
                                                                 'flip)
                                                              (let ((temp73_0
                                                                     (flip-scopes
                                                                      s69_0
                                                                      delta-scs_0)))
                                                                (syntax-add-shifts.1
                                                                 #t
                                                                 temp73_0
                                                                 shifts_0
                                                                 #f))
                                                              (raise-argument-error
                                                               'syntax-introducer
                                                               "(or/c 'add 'remove 'flip)"
                                                               mode68_0)))))))
                                                  (let ((ctx_0
                                                         (get-current-expand-context.1
                                                          #t
                                                          'unexpected)))
                                                    (begin
                                                      (if ctx_0
                                                        (let ((obs_0
                                                               (begin-unsafe
                                                                (expand-context/inner-observer
                                                                 (root-expand-context/outer-inner
                                                                  ctx_0)))))
                                                          (if obs_0
                                                            (call-expand-observe
                                                             obs_0
                                                             'track-syntax
                                                             mode68_0
                                                             new-s_0
                                                             s69_0)
                                                            (void)))
                                                        (void))
                                                      new-s_0)))))))))
                                    (|#%name|
                                     make-syntax-delta-introducer
                                     (case-lambda
                                      ((s_0)
                                       (begin
                                         (make-syntax-delta-introducer_0
                                          s_0
                                          'add)))
                                      ((s_0 mode68_0)
                                       (make-syntax-delta-introducer_0
                                        s_0
                                        mode68_0))))))))))))))))))))
    (|#%name|
     make-syntax-delta-introducer
     (case-lambda
      ((ext-s_0 base-s_0)
       (begin
         (make-syntax-delta-introducer_0 ext-s_0 base-s_0 unsafe-undefined)))
      ((ext-s_0 base-s_0 phase4_0)
       (make-syntax-delta-introducer_0 ext-s_0 base-s_0 phase4_0))))))
(define 1/syntax-local-make-delta-introducer
  (|#%name|
   syntax-local-make-delta-introducer
   (lambda (id-stx_0)
     (begin
       (begin
         (if (identifier? id-stx_0)
           (void)
           (raise-argument-error
            'syntax-local-make-delta-introducer
            "identifier?"
            id-stx_0))
         (raise
          (|#%app|
           exn:fail:unsupported
           "syntax-local-make-delta-introducer: not supported anymore"
           (current-continuation-marks))))))))
(define do-syntax-local-value.1
  (|#%name|
   do-syntax-local-value
   (lambda (immediate?7_0 who9_0 id10_0 intdefs11_0 failure-thunk12_0)
     (begin
       (begin
         (if (identifier? id10_0)
           (void)
           (raise-argument-error who9_0 "identifier?" id10_0))
         (begin
           (if (let ((or-part_0 (not failure-thunk12_0)))
                 (if or-part_0
                   or-part_0
                   (if (procedure? failure-thunk12_0)
                     (procedure-arity-includes? failure-thunk12_0 0)
                     #f)))
             (void)
             (raise-argument-error
              who9_0
              "(or/c #f (procedure-arity-includes/c 0))"
              failure-thunk12_0))
           (begin
             (if (intdefs-or-false? intdefs11_0)
               (void)
               (raise-argument-error
                who9_0
                intdefs-or-false?-string
                intdefs11_0))
             (let ((current-ctx_0 (get-current-expand-context.1 #f who9_0)))
               (let ((ctx_0
                      (if intdefs11_0
                        (if (expand-context/outer? current-ctx_0)
                          (let ((env79_0
                                 (add-intdef-bindings
                                  (begin-unsafe
                                   (expand-context/outer-env current-ctx_0))
                                  intdefs11_0)))
                            (let ((inner80_0
                                   (root-expand-context/outer-inner
                                    current-ctx_0)))
                              (let ((env79_1 env79_0))
                                (expand-context/outer1.1
                                 inner80_0
                                 (root-expand-context/outer-post-expansion
                                  current-ctx_0)
                                 (root-expand-context/outer-use-site-scopes
                                  current-ctx_0)
                                 (root-expand-context/outer-frame-id
                                  current-ctx_0)
                                 (expand-context/outer-context current-ctx_0)
                                 env79_1
                                 (expand-context/outer-scopes current-ctx_0)
                                 (expand-context/outer-def-ctx-scopes
                                  current-ctx_0)
                                 (expand-context/outer-binding-layer
                                  current-ctx_0)
                                 (expand-context/outer-reference-records
                                  current-ctx_0)
                                 (expand-context/outer-only-immediate?
                                  current-ctx_0)
                                 (expand-context/outer-need-eventually-defined
                                  current-ctx_0)
                                 (expand-context/outer-current-introduction-scopes
                                  current-ctx_0)
                                 (expand-context/outer-current-use-scopes
                                  current-ctx_0)
                                 (expand-context/outer-name current-ctx_0)))))
                          (raise-argument-error
                           'struct-copy
                           "expand-context/outer?"
                           current-ctx_0))
                        current-ctx_0)))
                 (begin
                   (let ((obs_0
                          (begin-unsafe
                           (expand-context/inner-observer
                            (root-expand-context/outer-inner ctx_0)))))
                     (if obs_0
                       (call-expand-observe obs_0 'local-value id10_0)
                       (void)))
                   (let ((phase_0
                          (begin-unsafe
                           (expand-context/inner-phase
                            (root-expand-context/outer-inner ctx_0)))))
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (id_0)
                           (begin
                             (let ((b_0
                                    (if immediate?7_0
                                      (resolve+shift.1
                                       #f
                                       #f
                                       null
                                       #t
                                       #f
                                       id_0
                                       phase_0)
                                      (resolve+shift/extra-inspector
                                       id_0
                                       phase_0
                                       (begin-unsafe
                                        (expand-context/inner-namespace
                                         (root-expand-context/outer-inner
                                          ctx_0)))))))
                               (begin
                                 (let ((obs_0
                                        (begin-unsafe
                                         (expand-context/inner-observer
                                          (root-expand-context/outer-inner
                                           ctx_0)))))
                                   (if obs_0
                                     (call-expand-observe obs_0 'resolve id_0)
                                     (void)))
                                 (if (not b_0)
                                   (begin
                                     (let ((obs_0
                                            (begin-unsafe
                                             (expand-context/inner-observer
                                              (root-expand-context/outer-inner
                                               ctx_0)))))
                                       (if obs_0
                                         (call-expand-observe
                                          obs_0
                                          'local-value-result
                                          #f)
                                         (void)))
                                     (if failure-thunk12_0
                                       (|#%app| failure-thunk12_0)
                                       (error
                                        who9_0
                                        "unbound identifier: ~v"
                                        id_0)))
                                   (call-with-values
                                    (lambda () (lookup.1 #f #t b_0 ctx_0 id_0))
                                    (case-lambda
                                     ((v_0 primitive?_0 insp_0 protected?_0)
                                      (if (let ((or-part_0 (variable? v_0)))
                                            (if or-part_0
                                              or-part_0
                                              (core-form? v_0)))
                                        (begin
                                          (let ((obs_0
                                                 (begin-unsafe
                                                  (expand-context/inner-observer
                                                   (root-expand-context/outer-inner
                                                    ctx_0)))))
                                            (if obs_0
                                              (call-expand-observe
                                               obs_0
                                               'local-value-result
                                               #f)
                                              (void)))
                                          (if failure-thunk12_0
                                            (|#%app| failure-thunk12_0)
                                            (error
                                             who9_0
                                             "identifier is not bound to syntax: ~v"
                                             id_0)))
                                        (begin
                                          (let ((obs_0
                                                 (begin-unsafe
                                                  (expand-context/inner-observer
                                                   (root-expand-context/outer-inner
                                                    ctx_0)))))
                                            (if obs_0
                                              (if (not
                                                   (if (1/rename-transformer?
                                                        v_0)
                                                     (not immediate?7_0)
                                                     #f))
                                                (call-expand-observe
                                                 obs_0
                                                 'local-value-result
                                                 #t)
                                                (void))
                                              (void)))
                                          (if (1/rename-transformer? v_0)
                                            (if immediate?7_0
                                              (values
                                               v_0
                                               (rename-transformer-target-in-context
                                                v_0
                                                ctx_0))
                                              (loop_0
                                               (rename-transformer-target-in-context
                                                v_0
                                                ctx_0)))
                                            (if immediate?7_0
                                              (values v_0 #f)
                                              v_0)))))
                                     (args
                                      (raise-binding-result-arity-error
                                       4
                                       args))))))))))))
                      (loop_0
                       (begin-unsafe
                        (flip-scopes
                         id10_0
                         (begin-unsafe
                          (expand-context/outer-current-introduction-scopes
                           ctx_0)))))))))))))))))
(define 1/syntax-local-value
  (let ((syntax-local-value_0
         (|#%name|
          syntax-local-value
          (lambda (id16_0 failure-thunk14_0 intdef15_0)
            (begin
              (do-syntax-local-value.1
               #f
               'syntax-local-value
               id16_0
               intdef15_0
               failure-thunk14_0))))))
    (|#%name|
     syntax-local-value
     (case-lambda
      ((id_0) (begin (syntax-local-value_0 id_0 #f #f)))
      ((id_0 failure-thunk_0 intdef15_0)
       (syntax-local-value_0 id_0 failure-thunk_0 intdef15_0))
      ((id_0 failure-thunk14_0)
       (syntax-local-value_0 id_0 failure-thunk14_0 #f))))))
(define 1/syntax-local-value/immediate
  (let ((syntax-local-value/immediate_0
         (|#%name|
          syntax-local-value/immediate
          (lambda (id19_0 failure-thunk17_0 intdef18_0)
            (begin
              (do-syntax-local-value.1
               #t
               'syntax-local-value/immediate
               id19_0
               intdef18_0
               failure-thunk17_0))))))
    (|#%name|
     syntax-local-value/immediate
     (case-lambda
      ((id_0) (begin (syntax-local-value/immediate_0 id_0 #f #f)))
      ((id_0 failure-thunk_0 intdef18_0)
       (syntax-local-value/immediate_0 id_0 failure-thunk_0 intdef18_0))
      ((id_0 failure-thunk17_0)
       (syntax-local-value/immediate_0 id_0 failure-thunk17_0 #f))))))
(define do-lift-values-expression
  (lambda (who_0 n_0 s_0)
    (begin
      (if (syntax?$1 s_0) (void) (raise-argument-error who_0 "syntax?" s_0))
      (begin
        (if (exact-nonnegative-integer? n_0)
          (void)
          (raise-argument-error who_0 "exact-nonnegative-integer?" n_0))
        (let ((ctx_0 (get-current-expand-context.1 #f who_0)))
          (let ((lifts_0
                 (begin-unsafe
                  (expand-context/inner-lifts
                   (root-expand-context/outer-inner ctx_0)))))
            (begin
              (if lifts_0
                (void)
                (raise-arguments-error who_0 "no lift target"))
              (let ((counter_0
                     (begin-unsafe
                      (root-expand-context/inner-counter
                       (root-expand-context/outer-inner ctx_0)))))
                (let ((ids_0
                       (reverse$1
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (fold-var_0 pos_0)
                                (begin
                                  (if (< pos_0 n_0)
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (begin
                                                     (set-box!
                                                      counter_0
                                                      (add1 (unbox counter_0)))
                                                     (let ((name_0
                                                            (string->unreadable-symbol
                                                             (format
                                                              "lifted/~a"
                                                              (unbox
                                                               counter_0)))))
                                                       (let ((app_0
                                                              (datum->syntax$1
                                                               #f
                                                               name_0)))
                                                         (add-scope
                                                          app_0
                                                          (new-scope
                                                           'macro)))))
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 (+ pos_0 1)))
                                    fold-var_0))))))
                           (for-loop_0 null 0))))))
                  (let ((added-s_0
                         (begin-unsafe
                          (flip-scopes
                           s_0
                           (begin-unsafe
                            (expand-context/outer-current-introduction-scopes
                             ctx_0))))))
                    (begin
                      (let ((obs_0
                             (begin-unsafe
                              (expand-context/inner-observer
                               (root-expand-context/outer-inner ctx_0)))))
                        (if obs_0
                          (call-expand-observe
                           obs_0
                           'lift-expr
                           ids_0
                           s_0
                           added-s_0)
                          (void)))
                      (map_1346
                       (lambda (id_0)
                         (begin-unsafe
                          (flip-scopes
                           id_0
                           (begin-unsafe
                            (expand-context/outer-current-introduction-scopes
                             ctx_0)))))
                       (add-lifted!
                        lifts_0
                        ids_0
                        added-s_0
                        (begin-unsafe
                         (expand-context/inner-phase
                          (root-expand-context/outer-inner
                           ctx_0))))))))))))))))
(define 1/syntax-local-lift-expression
  (|#%name|
   syntax-local-lift-expression
   (lambda (s_0)
     (begin
       (car
        (do-lift-values-expression 'syntax-local-lift-expression 1 s_0))))))
(define 1/syntax-local-lift-values-expression
  (|#%name|
   syntax-local-lift-values-expression
   (lambda (n_0 s_0)
     (begin
       (do-lift-values-expression
        'syntax-local-lift-values-expression
        n_0
        s_0)))))
(define 1/syntax-local-lift-context
  (|#%name|
   syntax-local-lift-context
   (lambda ()
     (begin
       (let ((ctx_0
              (get-current-expand-context.1 #f 'syntax-local-lift-context)))
         (begin-unsafe
          (root-expand-context/inner-lift-key
           (root-expand-context/outer-inner ctx_0))))))))
(define 1/syntax-local-lift-module
  (|#%name|
   syntax-local-lift-module
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-local-lift-module "syntax?" s_0))
         (let ((ctx_0
                (get-current-expand-context.1 #f 'syntax-local-lift-module)))
           (let ((phase_0
                  (begin-unsafe
                   (expand-context/inner-phase
                    (root-expand-context/outer-inner ctx_0)))))
             (let ((tmp_0 (core-form-sym s_0 phase_0)))
               (if (if (eq? tmp_0 'module) #t (eq? tmp_0 'module*))
                 (let ((lifts_0
                        (begin-unsafe
                         (expand-context/inner-module-lifts
                          (root-expand-context/outer-inner ctx_0)))))
                   (begin
                     (if lifts_0
                       (void)
                       (raise-arguments-error
                        'syntax-local-lift-module
                        "not currently transforming within a module declaration or top level"
                        "form to lift"
                        s_0))
                     (let ((added-s_0
                            (begin-unsafe
                             (flip-scopes
                              s_0
                              (begin-unsafe
                               (expand-context/outer-current-introduction-scopes
                                ctx_0))))))
                       (begin
                         (add-lifted-module! lifts_0 added-s_0 phase_0)
                         (let ((obs_0
                                (begin-unsafe
                                 (expand-context/inner-observer
                                  (root-expand-context/outer-inner ctx_0)))))
                           (if obs_0
                             (call-expand-observe
                              obs_0
                              'lift-module
                              s_0
                              added-s_0)
                             (void)))))))
                 (raise-arguments-error
                  'syntax-local-lift-module
                  "not a module form"
                  "given form"
                  s_0))))))))))
(define do-local-lift-to-module.1
  (|#%name|
   do-local-lift-to-module
   (lambda (add-lifted!25_0
            get-lift-ctx24_0
            get-wrt-phase26_0
            intro?22_0
            log-tag20_0
            more-checks23_0
            no-target-msg21_0
            post-wrap29_0
            pre-wrap27_0
            shift-wrap28_0
            who40_0
            s41_0)
     (begin
       (let ((pre-wrap_0
              (if (eq? pre-wrap27_0 unsafe-undefined)
                (|#%name|
                 pre-wrap
                 (lambda (s_0 phase_0 lift-ctx_0) (begin s_0)))
                pre-wrap27_0)))
         (let ((shift-wrap_0
                (if (eq? shift-wrap28_0 unsafe-undefined)
                  (|#%name|
                   shift-wrap
                   (lambda (s_0 phase_0 lift-ctx_0) (begin s_0)))
                  shift-wrap28_0)))
           (let ((post-wrap_0
                  (if (eq? post-wrap29_0 unsafe-undefined)
                    (|#%name|
                     post-wrap
                     (lambda (s_0 phase_0 lift-ctx_0) (begin s_0)))
                    post-wrap29_0)))
             (begin
               (if (syntax?$1 s41_0)
                 (void)
                 (raise-argument-error who40_0 "syntax?" s41_0))
               (begin
                 (|#%app| more-checks23_0)
                 (let ((ctx_0 (get-current-expand-context.1 #f who40_0)))
                   (let ((lift-ctx_0 (|#%app| get-lift-ctx24_0 ctx_0)))
                     (begin
                       (if lift-ctx_0
                         (void)
                         (raise-arguments-error
                          who40_0
                          no-target-msg21_0
                          "form to lift"
                          s41_0))
                       (let ((phase_0
                              (begin-unsafe
                               (expand-context/inner-phase
                                (root-expand-context/outer-inner ctx_0)))))
                         (let ((wrt-phase_0
                                (|#%app| get-wrt-phase26_0 lift-ctx_0)))
                           (let ((added-s_0
                                  (if intro?22_0
                                    (begin-unsafe
                                     (flip-scopes
                                      s41_0
                                      (begin-unsafe
                                       (expand-context/outer-current-introduction-scopes
                                        ctx_0))))
                                    s41_0)))
                             (let ((pre-s_0
                                    (|#%app|
                                     pre-wrap_0
                                     added-s_0
                                     phase_0
                                     lift-ctx_0)))
                               (let ((shift-s_0
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (s_0 pos_0)
                                              (begin
                                                (if (> pos_0 wrt-phase_0)
                                                  (let ((s_1
                                                         (let ((s_1
                                                                (|#%app|
                                                                 shift-wrap_0
                                                                 s_0
                                                                 (sub1 pos_0)
                                                                 lift-ctx_0)))
                                                           (values s_1))))
                                                    (for-loop_0
                                                     s_1
                                                     (+ pos_0 -1)))
                                                  s_0))))))
                                         (for-loop_0 pre-s_0 phase_0)))))
                                 (let ((post-s_0
                                        (|#%app|
                                         post-wrap_0
                                         shift-s_0
                                         wrt-phase_0
                                         lift-ctx_0)))
                                   (begin
                                     (if log-tag20_0
                                       (let ((obs_0
                                              (begin-unsafe
                                               (expand-context/inner-observer
                                                (root-expand-context/outer-inner
                                                 ctx_0)))))
                                         (if obs_0
                                           (call-expand-observe
                                            obs_0
                                            log-tag20_0
                                            s41_0
                                            added-s_0
                                            post-s_0)
                                           (void)))
                                       (void))
                                     (|#%app|
                                      add-lifted!25_0
                                      lift-ctx_0
                                      post-s_0
                                      wrt-phase_0)
                                     (values ctx_0 post-s_0))))))))))))))))))))
(define 1/syntax-local-lift-require
  (let ((syntax-local-lift-require_0
         (|#%name|
          syntax-local-lift-require
          (lambda (s44_0 use-s45_0 new-scope?43_0)
            (begin
              (let ((sc_0 (if new-scope?43_0 (new-scope 'lifted-require) #f)))
                (call-with-values
                 (lambda ()
                   (let ((temp110_0 (datum->syntax$1 #f s44_0)))
                     (let ((temp111_0 "could not find target context"))
                       (let ((temp113_0
                              (lambda ()
                                (if (syntax?$1 use-s45_0)
                                  (void)
                                  (raise-argument-error
                                   'syntax-local-lift-require
                                   "syntax?"
                                   use-s45_0)))))
                         (let ((expand-context-require-lifts114_0
                                expand-context-require-lifts))
                           (let ((temp117_0
                                  (lambda (s_0 phase_0 require-lift-ctx_0)
                                    (require-spec-shift-for-syntax s_0))))
                             (let ((temp118_0
                                    (lambda (s_0 phase_0 require-lift-ctx_0)
                                      (wrap-form
                                       '|#%require|
                                       (if sc_0 (add-scope s_0 sc_0) s_0)
                                       phase_0))))
                               (let ((temp117_1 temp117_0)
                                     (expand-context-require-lifts114_1
                                      expand-context-require-lifts114_0)
                                     (temp113_1 temp113_0)
                                     (temp111_1 temp111_0)
                                     (temp110_1 temp110_0))
                                 (do-local-lift-to-module.1
                                  add-lifted-require!
                                  expand-context-require-lifts114_1
                                  require-lift-context-wrt-phase
                                  #f
                                  #f
                                  temp113_1
                                  temp111_1
                                  temp118_0
                                  unsafe-undefined
                                  temp117_1
                                  'syntax-local-lift-require
                                  temp110_1)))))))))
                 (case-lambda
                  ((ctx_0 added-s_0)
                   (begin
                     (with-continuation-mark*
                      push-authentic
                      current-expand-context
                      #f
                      (namespace-visit-available-modules!
                       (begin-unsafe
                        (expand-context/inner-namespace
                         (root-expand-context/outer-inner ctx_0)))
                       (begin-unsafe
                        (expand-context/inner-phase
                         (root-expand-context/outer-inner ctx_0)))))
                     (let ((result-s_0
                            (if sc_0 (add-scope use-s45_0 sc_0) use-s45_0)))
                       (begin
                         (let ((obs_0
                                (begin-unsafe
                                 (expand-context/inner-observer
                                  (root-expand-context/outer-inner ctx_0)))))
                           (if obs_0
                             (call-expand-observe
                              obs_0
                              'lift-require
                              added-s_0
                              use-s45_0
                              result-s_0)
                             (void)))
                         result-s_0))))
                  (args (raise-binding-result-arity-error 2 args))))))))))
    (|#%name|
     syntax-local-lift-require
     (case-lambda
      ((s_0 use-s_0) (begin (syntax-local-lift-require_0 s_0 use-s_0 #t)))
      ((s_0 use-s_0 new-scope?43_0)
       (syntax-local-lift-require_0 s_0 use-s_0 new-scope?43_0))))))
(define 1/syntax-local-lift-provide
  (|#%name|
   syntax-local-lift-provide
   (lambda (s_0)
     (begin
       (call-with-values
        (lambda ()
          (let ((temp122_0 "not expanding in a module run-time body"))
            (let ((expand-context-to-module-lifts123_0
                   expand-context-to-module-lifts))
              (let ((add-lifted-to-module-provide!125_0
                     add-lifted-to-module-provide!))
                (let ((temp126_0
                       (lambda (s_1 phase_0 to-module-lift-ctx_0)
                         (wrap-form 'for-syntax s_1 #f))))
                  (let ((temp127_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!125_0
                     expand-context-to-module-lifts123_0
                     to-module-lift-context-wrt-phase
                     #t
                     #f
                     void
                     temp122_0
                     temp127_0
                     unsafe-undefined
                     temp126_0
                     'syntax-local-lift-provide
                     s_0)))))))
        (case-lambda
         ((ctx_0 result-s_0)
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'lift-provide result-s_0)
              (void))))
         (args (raise-binding-result-arity-error 2 args))))))))
(define 1/syntax-local-lift-module-end-declaration
  (|#%name|
   syntax-local-lift-module-end-declaration
   (lambda (s_0)
     (begin
       (call-with-values
        (lambda ()
          (let ((temp132_0
                 "not currently transforming an expression within a module declaration"))
            (let ((expand-context-to-module-lifts133_0
                   expand-context-to-module-lifts))
              (let ((temp134_0 (lambda (lift-ctx_0) 0)))
                (let ((add-lifted-to-module-end!135_0
                       add-lifted-to-module-end!))
                  (let ((temp136_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))))
                    (let ((temp137_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!135_0
                       expand-context-to-module-lifts133_0
                       temp134_0
                       #t
                       'lift-end-decl
                       void
                       temp132_0
                       unsafe-undefined
                       temp136_0
                       temp137_0
                       'syntax-local-lift-module-end-declaration
                       s_0))))))))
        (case-lambda
         ((ctx_0 also-s_0) (void))
         (args (raise-binding-result-arity-error 2 args))))))))
(define wrap-form
  (lambda (sym_0 s_0 phase_0)
    (datum->syntax$1
     #f
     (list
      (datum->syntax$1
       (if phase_0 (syntax-shift-phase-level$1 core-stx phase_0) #f)
       sym_0)
      s_0))))
(define 1/syntax-local-module-defined-identifiers
  (|#%name|
   syntax-local-module-defined-identifiers
   (lambda ()
     (begin
       (begin
         (if (1/syntax-local-transforming-module-provides?)
           (void)
           (raise-arguments-error
            'syntax-local-module-defined-identifiers
            "not currently transforming module provides"))
         (let ((ctx_0
                (get-current-expand-context.1
                 #f
                 'syntax-local-module-defined-identifiers)))
           (requireds->phase-ht
            (extract-module-definitions
             (begin-unsafe
              (expand-context/inner-requires+provides
               (root-expand-context/outer-inner ctx_0)))))))))))
(define 1/syntax-local-module-required-identifiers
  (|#%name|
   syntax-local-module-required-identifiers
   (lambda (mod-path_0 phase+space-shift_0)
     (begin
       (begin
         (if (let ((or-part_0 (not mod-path_0)))
               (if or-part_0 or-part_0 (1/module-path? mod-path_0)))
           (void)
           (raise-argument-error
            'syntax-local-module-required-identifiers
            "(or/c module-path? #f)"
            mod-path_0))
         (begin
           (if (let ((or-part_0 (eq? phase+space-shift_0 #t)))
                 (if or-part_0
                   or-part_0
                   (phase+space-shift? phase+space-shift_0)))
             (void)
             (raise-argument-error
              'syntax-local-module-required-identifiers
              (format "(or/c ~a #t)" phase+space-shift?-string)
              phase+space-shift_0))
           (begin
             (if (1/syntax-local-transforming-module-provides?)
               (void)
               (raise-arguments-error
                'syntax-local-module-required-identifiers
                "not currently transforming module provides"))
             (let ((ctx_0
                    (get-current-expand-context.1
                     #f
                     'syntax-local-module-required-identifiers)))
               (let ((requires+provides_0
                      (begin-unsafe
                       (expand-context/inner-requires+provides
                        (root-expand-context/outer-inner ctx_0)))))
                 (let ((mpi_0
                        (if mod-path_0
                          (module-path->mpi/context mod-path_0 ctx_0)
                          #f)))
                   (let ((requireds_0
                          (extract-all-module-requires
                           requires+provides_0
                           mpi_0
                           (if (eq? phase+space-shift_0 #t)
                             'all
                             (intern-phase+space-shift phase+space-shift_0)))))
                     (if requireds_0
                       (reverse$1
                        (let ((ht_0 (requireds->phase-ht requireds_0)))
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (fold-var_0 i_0)
                                  (begin
                                    (if i_0
                                      (call-with-values
                                       (lambda ()
                                         (hash-iterate-key+value ht_0 i_0))
                                       (case-lambda
                                        ((phase+space-shift_1 ids_0)
                                         (let ((fold-var_1
                                                (cons
                                                 (cons
                                                  phase+space-shift_1
                                                  ids_0)
                                                 fold-var_0)))
                                           (let ((fold-var_2
                                                  (values fold-var_1)))
                                             (for-loop_0
                                              fold-var_2
                                              (hash-iterate-next ht_0 i_0)))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      fold-var_0))))))
                             (for-loop_0 null (hash-iterate-first ht_0))))))
                       #f))))))))))))
(define requireds->phase-ht
  (lambda (requireds_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (ht_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((r_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((ht_1
                           (let ((ht_1
                                  (let ((key_0 (required-phase+space r_0)))
                                    (let ((xform_0
                                           (lambda (l_0)
                                             (cons (required-id r_0) l_0))))
                                      (begin-unsafe
                                       (do-hash-update
                                        'hash-update
                                        #f
                                        hash-set
                                        ht_0
                                        key_0
                                        xform_0
                                        null))))))
                             (values ht_1))))
                      (for-loop_0 ht_1 rest_0))))
                ht_0))))))
       (for-loop_0 (hasheqv) requireds_0)))))
(define 1/syntax-local-module-exports
  (|#%name|
   syntax-local-module-exports
   (lambda (mod-path_0)
     (begin
       (begin
         (if (let ((or-part_0 (1/module-path? mod-path_0)))
               (if or-part_0
                 or-part_0
                 (if (syntax?$1 mod-path_0)
                   (1/module-path? (syntax->datum$1 mod-path_0))
                   #f)))
           (void)
           (raise-argument-error
            'syntax-local-module-exports
            (string-append
             "(or/c module-path?\n"
             "      (and/c syntax?\n"
             "             (lambda (stx)\n"
             "               (module-path? (syntax->datum stx)))))")
            mod-path_0))
         (let ((ctx_0
                (get-current-expand-context.1
                 #f
                 'syntax-local-module-exports)))
           (let ((ns_0
                  (begin-unsafe
                   (expand-context/inner-namespace
                    (root-expand-context/outer-inner ctx_0)))))
             (let ((mod-name_0
                    (1/module-path-index-resolve
                     (module-path->mpi/context
                      (if (syntax?$1 mod-path_0)
                        (syntax->datum$1 mod-path_0)
                        mod-path_0)
                      ctx_0)
                     #t)))
               (let ((m_0 (namespace->module ns_0 mod-name_0)))
                 (begin
                   (if m_0
                     (void)
                     (begin-unsafe
                      (raise-arguments-error
                       'syntax-local-module-exports
                       "unknown module"
                       "module name"
                       (module-name->error-string mod-name_0))))
                   (reverse$1
                    (let ((ht_0 (module-provides m_0)))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 i_0)
                              (begin
                                (if i_0
                                  (call-with-values
                                   (lambda ()
                                     (hash-iterate-key+value ht_0 i_0))
                                   (case-lambda
                                    ((phase_0 syms_0)
                                     (let ((fold-var_1
                                            (let ((fold-var_1
                                                   (cons
                                                    (cons
                                                     phase_0
                                                     (reverse$1
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_1
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (fold-var_1
                                                                     i_1)
                                                              (begin
                                                                (if i_1
                                                                  (let ((sym_0
                                                                         (hash-iterate-key
                                                                          syms_0
                                                                          i_1)))
                                                                    (let ((fold-var_2
                                                                           (cons
                                                                            sym_0
                                                                            fold-var_1)))
                                                                      (let ((fold-var_3
                                                                             (values
                                                                              fold-var_2)))
                                                                        (for-loop_1
                                                                         fold-var_3
                                                                         (hash-iterate-next
                                                                          syms_0
                                                                          i_1)))))
                                                                  fold-var_1))))))
                                                         (for-loop_1
                                                          null
                                                          (hash-iterate-first
                                                           syms_0))))))
                                                    fold-var_0)))
                                              (values fold-var_1))))
                                       (for-loop_0
                                        fold-var_1
                                        (hash-iterate-next ht_0 i_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))
                                  fold-var_0))))))
                         (for-loop_0
                          null
                          (hash-iterate-first ht_0))))))))))))))))
(define 1/syntax-local-submodules
  (|#%name|
   syntax-local-submodules
   (lambda ()
     (begin
       (let ((ctx_0
              (get-current-expand-context.1 #f 'syntax-local-submodules)))
         (let ((submods_0
                (begin-unsafe
                 (expand-context/inner-declared-submodule-names
                  (root-expand-context/outer-inner ctx_0)))))
           (reverse$1
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 i_0)
                    (begin
                      (if i_0
                        (call-with-values
                         (lambda () (hash-iterate-key+value submods_0 i_0))
                         (case-lambda
                          ((name_0 kind_0)
                           (let ((fold-var_1
                                  (if (eq? kind_0 'module)
                                    (let ((fold-var_1
                                           (cons name_0 fold-var_0)))
                                      (values fold-var_1))
                                    fold-var_0)))
                             (for-loop_0
                              fold-var_1
                              (hash-iterate-next submods_0 i_0))))
                          (args (raise-binding-result-arity-error 2 args))))
                        fold-var_0))))))
               (for-loop_0 null (hash-iterate-first submods_0)))))))))))
(define 1/syntax-local-module-interned-scope-symbols
  (|#%name|
   syntax-local-module-interned-scope-symbols
   (lambda ()
     (begin
       (begin
         (void
          (get-current-expand-context.1
           #f
           'syntax-local-module-interned-scope-symbols))
         (interned-scope-symbols))))))
(define syntax-local-expand-observer
  (lambda ()
    (let ((ctx_0
           (get-current-expand-context.1 #f 'syntax-local-expand-observer)))
      (begin-unsafe
       (expand-context/inner-observer
        (root-expand-context/outer-inner ctx_0))))))
(define 1/syntax-local-get-shadower
  (let ((syntax-local-get-shadower_0
         (|#%name|
          syntax-local-get-shadower
          (lambda (id47_0 only-generated?46_0)
            (begin
              (begin
                (if (identifier? id47_0)
                  (void)
                  (raise-argument-error
                   'syntax-local-get-shadower
                   "identifier?"
                   id47_0))
                (let ((ctx_0
                       (get-current-expand-context.1
                        #f
                        'syntax-local-get-shadower)))
                  (let ((new-id_0
                         (add-scopes
                          id47_0
                          (begin-unsafe (expand-context/outer-scopes ctx_0)))))
                    (if (begin-unsafe (not (syntax-taintness id47_0)))
                      new-id_0
                      (syntax-taint$1 new-id_0))))))))))
    (|#%name|
     syntax-local-get-shadower
     (case-lambda
      ((id_0) (begin (syntax-local-get-shadower_0 id_0 #f)))
      ((id_0 only-generated?46_0)
       (syntax-local-get-shadower_0 id_0 only-generated?46_0))))))
(define 1/syntax-source
  (|#%name|
   syntax-source
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-source "syntax?" s_0))
         (let ((srcloc_0 (syntax-srcloc$1 s_0)))
           (if srcloc_0 (srcloc-source srcloc_0) #f)))))))
(define 1/syntax-line
  (|#%name|
   syntax-line
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-line "syntax?" s_0))
         (let ((srcloc_0 (syntax-srcloc$1 s_0)))
           (if srcloc_0 (srcloc-line srcloc_0) #f)))))))
(define 1/syntax-column
  (|#%name|
   syntax-column
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-column "syntax?" s_0))
         (let ((srcloc_0 (syntax-srcloc$1 s_0)))
           (if srcloc_0 (srcloc-column srcloc_0) #f)))))))
(define 1/syntax-position
  (|#%name|
   syntax-position
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-position "syntax?" s_0))
         (let ((srcloc_0 (syntax-srcloc$1 s_0)))
           (if srcloc_0 (srcloc-position srcloc_0) #f)))))))
(define 1/syntax-span
  (|#%name|
   syntax-span
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-span "syntax?" s_0))
         (let ((srcloc_0 (syntax-srcloc$1 s_0)))
           (if srcloc_0 (srcloc-span srcloc_0) #f)))))))
(define encoded-srcloc?
  (lambda (v_0)
    (let ((or-part_0
           (if (list? v_0)
             (if (= (length v_0) 5) (srcloc-vector? (list->vector v_0)) #f)
             #f)))
      (if or-part_0
        or-part_0
        (if (vector? v_0)
          (if (= (vector-length v_0) 5) (srcloc-vector? v_0) #f)
          #f)))))
(define srcloc-vector?
  (lambda (v_0)
    (if (let ((or-part_0 (not (vector-ref v_0 1))))
          (if or-part_0
            or-part_0
            (exact-positive-integer? (vector-ref v_0 1))))
      (if (let ((or-part_0 (not (vector-ref v_0 2))))
            (if or-part_0
              or-part_0
              (exact-nonnegative-integer? (vector-ref v_0 2))))
        (if (let ((or-part_0 (not (vector-ref v_0 3))))
              (if or-part_0
                or-part_0
                (exact-positive-integer? (vector-ref v_0 3))))
          (let ((or-part_0 (not (vector-ref v_0 4))))
            (if or-part_0
              or-part_0
              (exact-nonnegative-integer? (vector-ref v_0 4))))
          #f)
        #f)
      #f)))
(define to-srcloc-stx
  (lambda (v_0)
    (if (srcloc? v_0)
      (if (syntax?$1 empty-syntax)
        (let ((app_0 (syntax-content* empty-syntax)))
          (let ((app_1 (syntax-scopes empty-syntax)))
            (let ((app_2 (syntax-shifted-multi-scopes empty-syntax)))
              (let ((app_3 (syntax-mpi-shifts empty-syntax)))
                (syntax2.1
                 app_0
                 app_1
                 app_2
                 app_3
                 v_0
                 (syntax-props empty-syntax)
                 (syntax-inspector empty-syntax))))))
        (raise-argument-error 'struct-copy "syntax?" empty-syntax))
      (if (pair? v_0)
        (to-srcloc-stx (list->vector v_0))
        (if (vector? v_0)
          (if (syntax?$1 empty-syntax)
            (let ((srcloc2_0
                   (let ((app_0 (vector-ref v_0 0)))
                     (let ((app_1 (vector-ref v_0 1)))
                       (let ((app_2 (vector-ref v_0 2)))
                         (let ((app_3 (vector-ref v_0 3)))
                           (unsafe-make-srcloc
                            app_0
                            app_1
                            app_2
                            app_3
                            (vector-ref v_0 4))))))))
              (let ((app_0 (syntax-content* empty-syntax)))
                (let ((app_1 (syntax-scopes empty-syntax)))
                  (let ((app_2 (syntax-shifted-multi-scopes empty-syntax)))
                    (let ((app_3 (syntax-mpi-shifts empty-syntax)))
                      (syntax2.1
                       app_0
                       app_1
                       app_2
                       app_3
                       srcloc2_0
                       (syntax-props empty-syntax)
                       (syntax-inspector empty-syntax)))))))
            (raise-argument-error 'struct-copy "syntax?" empty-syntax))
          v_0)))))
(define 1/syntax-e
  (|#%name|
   syntax-e
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-e "syntax?" s_0))
         (syntax-e$1 s_0))))))
(define 1/syntax-srcloc
  (|#%name|
   syntax-srcloc
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-srcloc "syntax?" s_0))
         (syntax-srcloc$1 s_0))))))
(define 1/syntax->datum
  (|#%name|
   syntax->datum
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax->datum "syntax?" s_0))
         (syntax->datum$1 s_0))))))
(define maybe-syntax->datum
  (lambda (s_0) (if (syntax?$1 s_0) (syntax->datum$1 s_0) s_0)))
(define 1/datum->syntax
  (let ((datum->syntax_0
         (|#%name|
          datum->syntax
          (lambda (stx-c4_0 s5_0 stx-l1_0 stx-p2_0 ignored3_0)
            (begin
              (begin
                (if (let ((or-part_0 (not stx-c4_0)))
                      (if or-part_0 or-part_0 (syntax?$1 stx-c4_0)))
                  (void)
                  (raise-argument-error
                   'datum->syntax
                   "(or/c #f syntax?)"
                   stx-c4_0))
                (if (let ((or-part_0 (not stx-l1_0)))
                      (if or-part_0
                        or-part_0
                        (let ((or-part_1 (syntax?$1 stx-l1_0)))
                          (if or-part_1
                            or-part_1
                            (let ((or-part_2 (srcloc? stx-l1_0)))
                              (if or-part_2
                                or-part_2
                                (encoded-srcloc? stx-l1_0)))))))
                  (void)
                  (raise-argument-error
                   'datum->syntax
                   (string-append
                    "(or/c #f syntax?\n"
                    "         srcloc?\n"
                    "         (list/c any/c\n"
                    "                 (or/c exact-positive-integer? #f)\n"
                    "                 (or/c exact-nonnegative-integer? #f)\n"
                    "                 (or/c exact-positive-integer? #f)\n"
                    "                 (or/c exact-nonnegative-integer? #f))\n"
                    "         (vector/c any/c\n"
                    "                   (or/c exact-positive-integer? #f)\n"
                    "                   (or/c exact-nonnegative-integer? #f)\n"
                    "                   (or/c exact-positive-integer? #f)\n"
                    "                   (or/c exact-nonnegative-integer? #f)))")
                   stx-l1_0))
                (if (let ((or-part_0 (not stx-p2_0)))
                      (if or-part_0 or-part_0 (syntax?$1 stx-p2_0)))
                  (void)
                  (raise-argument-error
                   'datum->syntax
                   "(or/c #f syntax?)"
                   stx-p2_0))
                (datum->syntax$1
                 stx-c4_0
                 s5_0
                 (to-srcloc-stx stx-l1_0)
                 stx-p2_0)))))))
    (|#%name|
     datum->syntax
     (case-lambda
      ((stx-c_0 s_0) (begin (datum->syntax_0 stx-c_0 s_0 #f #f #f)))
      ((stx-c_0 s_0 stx-l_0 stx-p_0 ignored3_0)
       (datum->syntax_0 stx-c_0 s_0 stx-l_0 stx-p_0 ignored3_0))
      ((stx-c_0 s_0 stx-l_0 stx-p2_0)
       (datum->syntax_0 stx-c_0 s_0 stx-l_0 stx-p2_0 #f))
      ((stx-c_0 s_0 stx-l1_0) (datum->syntax_0 stx-c_0 s_0 stx-l1_0 #f #f))))))
(define 1/syntax-binding-set
  (|#%name|
   syntax-binding-set
   (lambda () (begin (syntax-binding-set1.1 null)))))
(define 1/syntax-binding-set-extend
  (let ((syntax-binding-set-extend_0
         (|#%name|
          syntax-binding-set-extend
          (lambda (bs13_0
                   as-sym14_0
                   as-phase15_0
                   mpi16_0
                   sym6_0
                   phase7_0
                   nominal-mpi8_0
                   nominal-phase+space9_0
                   nominal-sym10_0
                   nominal-require-phase+space-shift11_0
                   insp12_0)
            (begin
              (let ((sym_0
                     (if (eq? sym6_0 unsafe-undefined) as-sym14_0 sym6_0)))
                (let ((phase_0
                       (if (eq? phase7_0 unsafe-undefined)
                         as-phase15_0
                         phase7_0)))
                  (let ((nominal-mpi_0
                         (if (eq? nominal-mpi8_0 unsafe-undefined)
                           mpi16_0
                           nominal-mpi8_0)))
                    (let ((nominal-phase+space_0
                           (if (eq? nominal-phase+space9_0 unsafe-undefined)
                             phase_0
                             nominal-phase+space9_0)))
                      (let ((nominal-sym_0
                             (if (eq? nominal-sym10_0 unsafe-undefined)
                               sym_0
                               nominal-sym10_0)))
                        (begin
                          (if (1/syntax-binding-set? bs13_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "syntax-binding-set?"
                             bs13_0))
                          (if (symbol? as-sym14_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "symbol?"
                             as-sym14_0))
                          (if (phase? as-phase15_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             phase?-string
                             as-phase15_0))
                          (if (1/module-path-index? mpi16_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "module-path-index?"
                             mpi16_0))
                          (if (symbol? sym_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "symbol?"
                             sym_0))
                          (if (phase? phase_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             phase?-string
                             phase_0))
                          (if (1/module-path-index? nominal-mpi_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "module-path-index?"
                             nominal-mpi_0))
                          (if (phase+space? nominal-phase+space_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             phase+space?-string
                             nominal-phase+space_0))
                          (if (symbol? nominal-sym_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "symbol?"
                             nominal-sym_0))
                          (if (phase+space-shift?
                               nominal-require-phase+space-shift11_0)
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             phase+space-shift?-string
                             nominal-require-phase+space-shift11_0))
                          (if (let ((or-part_0 (not insp12_0)))
                                (if or-part_0 or-part_0 (inspector? insp12_0)))
                            (void)
                            (raise-argument-error
                             'syntax-binding-set-extend
                             "(or/c inspector? #f)"
                             insp12_0))
                          (let ((app_0
                                 (intern-phase+space nominal-phase+space_0)))
                            (syntax-binding-set-extend$1
                             bs13_0
                             as-sym14_0
                             as-phase15_0
                             mpi16_0
                             sym_0
                             phase_0
                             nominal-mpi_0
                             app_0
                             nominal-sym_0
                             (intern-phase+space-shift
                              nominal-require-phase+space-shift11_0)
                             insp12_0)))))))))))))
    (|#%name|
     syntax-binding-set-extend
     (case-lambda
      ((bs_0 as-sym_0 as-phase_0 mpi_0)
       (begin
         (syntax-binding-set-extend_0
          bs_0
          as-sym_0
          as-phase_0
          mpi_0
          unsafe-undefined
          unsafe-undefined
          unsafe-undefined
          unsafe-undefined
          unsafe-undefined
          0
          #f)))
      ((bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space_0
        nominal-sym_0
        nominal-require-phase+space-shift_0
        insp12_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space_0
        nominal-sym_0
        nominal-require-phase+space-shift_0
        insp12_0))
      ((bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space_0
        nominal-sym_0
        nominal-require-phase+space-shift11_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space_0
        nominal-sym_0
        nominal-require-phase+space-shift11_0
        #f))
      ((bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space_0
        nominal-sym10_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space_0
        nominal-sym10_0
        0
        #f))
      ((bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space9_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi_0
        nominal-phase+space9_0
        unsafe-undefined
        0
        #f))
      ((bs_0 as-sym_0 as-phase_0 mpi_0 sym_0 phase_0 nominal-mpi8_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase_0
        nominal-mpi8_0
        unsafe-undefined
        unsafe-undefined
        0
        #f))
      ((bs_0 as-sym_0 as-phase_0 mpi_0 sym_0 phase7_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym_0
        phase7_0
        unsafe-undefined
        unsafe-undefined
        unsafe-undefined
        0
        #f))
      ((bs_0 as-sym_0 as-phase_0 mpi_0 sym6_0)
       (syntax-binding-set-extend_0
        bs_0
        as-sym_0
        as-phase_0
        mpi_0
        sym6_0
        unsafe-undefined
        unsafe-undefined
        unsafe-undefined
        unsafe-undefined
        0
        #f))))))
(define 1/syntax-binding-set->syntax
  (|#%name|
   syntax-binding-set->syntax
   (lambda (bs_0 datum_0)
     (begin
       (begin
         (if (1/syntax-binding-set? bs_0)
           (void)
           (raise-argument-error
            'syntax-binding-set->syntax
            "syntax-binding-set?"
            bs_0))
         (syntax-binding-set->syntax$1 bs_0 datum_0))))))
(define 1/syntax->list
  (|#%name|
   syntax->list
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax->list "syntax?" s_0))
         (syntax->list$1 s_0))))))
(define 1/syntax-original?
  (|#%name|
   syntax-original?
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-original? "syntax?" s_0))
         (if (syntax-property$1 s_0 original-property-sym)
           (not (syntax-any-macro-scopes? s_0))
           #f))))))
(define 1/bound-identifier=?
  (let ((bound-identifier=?_0
         (|#%name|
          bound-identifier=?
          (lambda (a18_0 b19_0 phase17_0)
            (begin
              (let ((phase_0
                     (if (eq? phase17_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase17_0)))
                (begin
                  (if (identifier? a18_0)
                    (void)
                    (raise-argument-error
                     'bound-identifier=?
                     "identifier?"
                     a18_0))
                  (if (identifier? b19_0)
                    (void)
                    (raise-argument-error
                     'bound-identifier=?
                     "identifier?"
                     b19_0))
                  (if (phase? phase_0)
                    (void)
                    (raise-argument-error
                     'bound-identifier=?
                     phase?-string
                     phase_0))
                  (bound-identifier=?$1 a18_0 b19_0 phase_0))))))))
    (|#%name|
     bound-identifier=?
     (case-lambda
      ((a_0 b_0) (begin (bound-identifier=?_0 a_0 b_0 unsafe-undefined)))
      ((a_0 b_0 phase17_0) (bound-identifier=?_0 a_0 b_0 phase17_0))))))
(define 1/free-identifier=?
  (let ((free-identifier=?_0
         (|#%name|
          free-identifier=?
          (lambda (a22_0 b23_0 a-phase20_0 b-phase21_0)
            (begin
              (let ((a-phase_0
                     (if (eq? a-phase20_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       a-phase20_0)))
                (let ((b-phase_0
                       (if (eq? b-phase21_0 unsafe-undefined)
                         a-phase_0
                         b-phase21_0)))
                  (begin
                    (if (identifier? a22_0)
                      (void)
                      (raise-argument-error
                       'free-identifier=?
                       "identifier?"
                       a22_0))
                    (if (identifier? b23_0)
                      (void)
                      (raise-argument-error
                       'free-identifier=?
                       "identifier?"
                       b23_0))
                    (if (phase? a-phase_0)
                      (void)
                      (raise-argument-error
                       'free-identifier=?
                       phase?-string
                       a-phase_0))
                    (if (phase? b-phase_0)
                      (void)
                      (raise-argument-error
                       'free-identifier=?
                       phase?-string
                       b-phase_0))
                    (free-identifier=?$1
                     a22_0
                     b23_0
                     a-phase_0
                     b-phase_0)))))))))
    (|#%name|
     free-identifier=?
     (case-lambda
      ((a_0 b_0)
       (begin (free-identifier=?_0 a_0 b_0 unsafe-undefined unsafe-undefined)))
      ((a_0 b_0 a-phase_0 b-phase21_0)
       (free-identifier=?_0 a_0 b_0 a-phase_0 b-phase21_0))
      ((a_0 b_0 a-phase20_0)
       (free-identifier=?_0 a_0 b_0 a-phase20_0 unsafe-undefined))))))
(define 1/free-transformer-identifier=?
  (|#%name|
   free-transformer-identifier=?
   (lambda (a_0 b_0)
     (begin
       (begin
         (if (identifier? a_0)
           (void)
           (raise-argument-error
            'free-transformer-identifier=?
            "identifier?"
            a_0))
         (begin
           (if (identifier? b_0)
             (void)
             (raise-argument-error
              'free-transformer-identifier=?
              "identifier?"
              b_0))
           (let ((phase_0 (add1 (1/syntax-local-phase-level))))
             (free-identifier=?$1 a_0 b_0 phase_0 phase_0))))))))
(define 1/free-template-identifier=?
  (|#%name|
   free-template-identifier=?
   (lambda (a_0 b_0)
     (begin
       (begin
         (if (identifier? a_0)
           (void)
           (raise-argument-error
            'free-template-identifier=?
            "identifier?"
            a_0))
         (begin
           (if (identifier? b_0)
             (void)
             (raise-argument-error
              'free-template-identifier=?
              "identifier?"
              b_0))
           (let ((phase_0 (sub1 (1/syntax-local-phase-level))))
             (free-identifier=?$1 a_0 b_0 phase_0 phase_0))))))))
(define 1/free-label-identifier=?
  (|#%name|
   free-label-identifier=?
   (lambda (a_0 b_0)
     (begin
       (begin
         (if (identifier? a_0)
           (void)
           (raise-argument-error 'free-label-identifier=? "identifier?" a_0))
         (if (identifier? b_0)
           (void)
           (raise-argument-error 'free-label-identifier=? "identifier?" b_0))
         (free-identifier=?$1 a_0 b_0 #f #f))))))
(define 1/identifier-binding
  (let ((identifier-binding_0
         (|#%name|
          identifier-binding
          (lambda (id27_0 phase24_0 top-level-symbol?25_0 exactly?26_0)
            (begin
              (let ((phase_0
                     (if (eq? phase24_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase24_0)))
                (begin
                  (if (identifier? id27_0)
                    (void)
                    (raise-argument-error
                     'identifier-binding
                     "identifier?"
                     id27_0))
                  (if (phase? phase_0)
                    (void)
                    (raise-argument-error
                     'identifier-binding
                     phase?-string
                     phase_0))
                  (identifier-binding.1
                   exactly?26_0
                   id27_0
                   phase_0
                   top-level-symbol?25_0))))))))
    (|#%name|
     identifier-binding
     (case-lambda
      ((id_0) (begin (identifier-binding_0 id_0 unsafe-undefined #f #f)))
      ((id_0 phase_0 top-level-symbol?_0 exactly?26_0)
       (identifier-binding_0 id_0 phase_0 top-level-symbol?_0 exactly?26_0))
      ((id_0 phase_0 top-level-symbol?25_0)
       (identifier-binding_0 id_0 phase_0 top-level-symbol?25_0 #f))
      ((id_0 phase24_0) (identifier-binding_0 id_0 phase24_0 #f #f))))))
(define 1/identifier-transformer-binding
  (let ((identifier-transformer-binding_0
         (|#%name|
          identifier-transformer-binding
          (lambda (id29_0 phase28_0)
            (begin
              (let ((phase_0
                     (if (eq? phase28_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase28_0)))
                (begin
                  (if (identifier? id29_0)
                    (void)
                    (raise-argument-error
                     'identifier-transformer-binding
                     "identifier?"
                     id29_0))
                  (let ((temp67_0 (if phase_0 (add1 phase_0) #f)))
                    (identifier-binding.1 #f id29_0 temp67_0 #f)))))))))
    (|#%name|
     identifier-transformer-binding
     (case-lambda
      ((id_0) (begin (identifier-transformer-binding_0 id_0 unsafe-undefined)))
      ((id_0 phase28_0) (identifier-transformer-binding_0 id_0 phase28_0))))))
(define 1/identifier-template-binding
  (|#%name|
   identifier-template-binding
   (lambda (id_0)
     (begin
       (begin
         (if (identifier? id_0)
           (void)
           (raise-argument-error
            'identifier-template-binding
            "identifier?"
            id_0))
         (let ((temp70_0 (sub1 (1/syntax-local-phase-level))))
           (identifier-binding.1 #f id_0 temp70_0 #f)))))))
(define 1/identifier-label-binding
  (|#%name|
   identifier-label-binding
   (lambda (id_0)
     (begin
       (begin
         (if (identifier? id_0)
           (void)
           (raise-argument-error 'identifier-label-binding "identifier?" id_0))
         (identifier-binding.1 #f id_0 #f #f))))))
(define 1/identifier-binding-symbol
  (let ((identifier-binding-symbol_0
         (|#%name|
          identifier-binding-symbol
          (lambda (id31_0 phase30_0)
            (begin
              (let ((phase_0
                     (if (eq? phase30_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase30_0)))
                (begin
                  (if (identifier? id31_0)
                    (void)
                    (raise-argument-error
                     'identifier-binding-symbol
                     "identifier?"
                     id31_0))
                  (if (phase? phase_0)
                    (void)
                    (raise-argument-error
                     'identifier-binding-symbol
                     phase?-string
                     phase_0))
                  (identifier-binding-symbol$1 id31_0 phase_0))))))))
    (|#%name|
     identifier-binding-symbol
     (case-lambda
      ((id_0) (begin (identifier-binding-symbol_0 id_0 unsafe-undefined)))
      ((id_0 phase30_0) (identifier-binding-symbol_0 id_0 phase30_0))))))
(define 1/identifier-distinct-binding
  (let ((identifier-distinct-binding_0
         (|#%name|
          identifier-distinct-binding
          (lambda (id34_0 other-id35_0 phase32_0 top-level-symbol?33_0)
            (begin
              (let ((phase_0
                     (if (eq? phase32_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase32_0)))
                (begin
                  (if (identifier? id34_0)
                    (void)
                    (raise-argument-error
                     'identifier-distinct-binding
                     "identifier?"
                     id34_0))
                  (if (identifier? other-id35_0)
                    (void)
                    (raise-argument-error
                     'identifier-distinct-binding
                     "identifier?"
                     other-id35_0))
                  (if (phase? phase_0)
                    (void)
                    (raise-argument-error
                     'identifier-distinct-binding
                     phase?-string
                     phase_0))
                  (identifier-distinct-binding$1
                   id34_0
                   other-id35_0
                   phase_0
                   top-level-symbol?33_0))))))))
    (|#%name|
     identifier-distinct-binding
     (case-lambda
      ((id_0 other-id_0)
       (begin
         (identifier-distinct-binding_0 id_0 other-id_0 unsafe-undefined #f)))
      ((id_0 other-id_0 phase_0 top-level-symbol?33_0)
       (identifier-distinct-binding_0
        id_0
        other-id_0
        phase_0
        top-level-symbol?33_0))
      ((id_0 other-id_0 phase32_0)
       (identifier-distinct-binding_0 id_0 other-id_0 phase32_0 #f))))))
(define 1/identifier-binding-portal-syntax
  (let ((identifier-binding-portal-syntax_0
         (|#%name|
          identifier-binding-portal-syntax
          (lambda (id37_0 phase36_0)
            (begin
              (let ((phase_0
                     (if (eq? phase36_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase36_0)))
                (begin
                  (if (identifier? id37_0)
                    (void)
                    (raise-argument-error
                     'identifier-binding-portal-syntax
                     "identifier?"
                     id37_0))
                  (begin
                    (if (phase? phase_0)
                      (void)
                      (raise-argument-error
                       'identifier-binding-portal-syntax
                       phase?-string
                       phase_0))
                    (let ((b_0
                           (resolve+shift.1
                            #f
                            #f
                            null
                            unsafe-undefined
                            #t
                            id37_0
                            phase_0)))
                      (if (module-binding? b_0)
                        (let ((ctx_0
                               (get-current-expand-context.1 #t 'unexpected)))
                          (let ((phase-shift_0
                                 (phase- phase_0 (module-binding-phase b_0))))
                            (let ((portal-syntax-lookup_0
                                   (let ((app_0
                                          (if ctx_0
                                            (begin-unsafe
                                             (expand-context/inner-namespace
                                              (root-expand-context/outer-inner
                                               ctx_0)))
                                            (1/current-namespace))))
                                     (namespace-module-get-portal-syntax-lookup
                                      app_0
                                      (module-binding-module b_0)
                                      phase-shift_0))))
                              (let ((app_0 (module-binding-phase b_0)))
                                (|#%app|
                                 portal-syntax-lookup_0
                                 app_0
                                 (module-binding-sym b_0))))))
                        #f))))))))))
    (|#%name|
     identifier-binding-portal-syntax
     (case-lambda
      ((id_0)
       (begin (identifier-binding-portal-syntax_0 id_0 unsafe-undefined)))
      ((id_0 phase36_0)
       (identifier-binding-portal-syntax_0 id_0 phase36_0))))))
(define 1/identifier-prune-lexical-context
  (let ((identifier-prune-lexical-context_0
         (|#%name|
          identifier-prune-lexical-context
          (lambda (id39_0 syms38_0)
            (begin
              (begin
                (if (identifier? id39_0)
                  (void)
                  (raise-argument-error
                   'identifier-prune-lexical-context
                   "identifier?"
                   id39_0))
                (if (if (list? syms38_0) (andmap_2344 symbol? syms38_0) #f)
                  (void)
                  (raise-argument-error
                   'identifier-prune-lexical-context
                   "(listof symbol?)"
                   syms38_0))
                id39_0))))))
    (|#%name|
     identifier-prune-lexical-context
     (case-lambda
      ((id_0) (begin (identifier-prune-lexical-context_0 id_0 null)))
      ((id_0 syms38_0) (identifier-prune-lexical-context_0 id_0 syms38_0))))))
(define 1/syntax-debug-info
  (let ((syntax-debug-info_0
         (|#%name|
          syntax-debug-info
          (lambda (s42_0 phase40_0 all-bindings?41_0)
            (begin
              (let ((phase_0
                     (if (eq? phase40_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase40_0)))
                (begin
                  (if (syntax?$1 s42_0)
                    (void)
                    (raise-argument-error 'syntax-debug-info "syntax?" s42_0))
                  (if (phase? phase_0)
                    (void)
                    (raise-argument-error
                     'syntax-debug-info
                     phase?-string
                     phase_0))
                  (syntax-debug-info$1 s42_0 phase_0 all-bindings?41_0))))))))
    (|#%name|
     syntax-debug-info
     (case-lambda
      ((s_0) (begin (syntax-debug-info_0 s_0 unsafe-undefined #f)))
      ((s_0 phase_0 all-bindings?41_0)
       (syntax-debug-info_0 s_0 phase_0 all-bindings?41_0))
      ((s_0 phase40_0) (syntax-debug-info_0 s_0 phase40_0 #f))))))
(define 1/syntax-shift-phase-level
  (|#%name|
   syntax-shift-phase-level
   (lambda (s_0 phase_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-shift-phase-level "syntax?" s_0))
         (if (phase? phase_0)
           (void)
           (raise-argument-error
            'syntax-shift-phase-level
            phase?-string
            phase_0))
         (syntax-shift-phase-level$1 s_0 phase_0))))))
(define 1/syntax-track-origin
  (|#%name|
   syntax-track-origin
   (lambda (new-stx_0 old-stx_0 id_0)
     (begin
       (begin
         (if (syntax?$1 new-stx_0)
           (void)
           (raise-argument-error 'syntax-track-origin "syntax?" new-stx_0))
         (begin
           (if (syntax?$1 old-stx_0)
             (void)
             (raise-argument-error 'syntax-track-origin "syntax?" old-stx_0))
           (begin
             (if (identifier? id_0)
               (void)
               (raise-argument-error 'syntax-track-origin "identifier?" id_0))
             (let ((s_0 (syntax-track-origin$1 new-stx_0 old-stx_0 id_0)))
               (let ((ctx_0 (get-current-expand-context.1 #t 'unexpected)))
                 (begin
                   (if ctx_0
                     (let ((obs_0
                            (begin-unsafe
                             (expand-context/inner-observer
                              (root-expand-context/outer-inner ctx_0)))))
                       (if obs_0
                         (call-expand-observe
                          obs_0
                          'track-syntax
                          'track-origin
                          new-stx_0
                          s_0)
                         (void)))
                     (void))
                   s_0))))))))))
(define 1/syntax-bound-symbols
  (let ((syntax-bound-symbols_0
         (|#%name|
          syntax-bound-symbols
          (lambda (stx45_0 phase43_0 exactly?44_0)
            (begin
              (let ((phase_0
                     (if (eq? phase43_0 unsafe-undefined)
                       (1/syntax-local-phase-level)
                       phase43_0)))
                (begin
                  (if (syntax?$1 stx45_0)
                    (void)
                    (raise-argument-error
                     'syntax-bound-symbols
                     "syntax?"
                     stx45_0))
                  (set->list
                   (syntax-mapped-names.1
                    exactly?44_0
                    #t
                    stx45_0
                    phase_0)))))))))
    (|#%name|
     syntax-bound-symbols
     (case-lambda
      ((stx_0) (begin (syntax-bound-symbols_0 stx_0 unsafe-undefined #f)))
      ((stx_0 phase_0 exactly?44_0)
       (syntax-bound-symbols_0 stx_0 phase_0 exactly?44_0))
      ((stx_0 phase43_0) (syntax-bound-symbols_0 stx_0 phase43_0 #f))))))
(define 1/syntax-bound-phases
  (|#%name|
   syntax-bound-phases
   (lambda (stx_0)
     (begin
       (begin
         (if (syntax?$1 stx_0)
           (void)
           (raise-argument-error 'syntax-bound-phases "syntax?" stx_0))
         (set->list (syntax-mapped-phases stx_0)))))))
(define 1/namespace-attach-module
  (let ((namespace-attach-module_0
         (|#%name|
          namespace-attach-module
          (lambda (src-namespace2_0 mod-path3_0 dest-namespace1_0)
            (begin
              (let ((dest-namespace_0
                     (if (eq? dest-namespace1_0 unsafe-undefined)
                       (1/current-namespace)
                       dest-namespace1_0)))
                (do-attach-module.1
                 #t
                 'namespace-attach-module
                 src-namespace2_0
                 mod-path3_0
                 dest-namespace_0)))))))
    (|#%name|
     namespace-attach-module
     (case-lambda
      ((src-namespace_0 mod-path_0)
       (begin
         (namespace-attach-module_0
          src-namespace_0
          mod-path_0
          unsafe-undefined)))
      ((src-namespace_0 mod-path_0 dest-namespace1_0)
       (namespace-attach-module_0
        src-namespace_0
        mod-path_0
        dest-namespace1_0))))))
(define 1/namespace-attach-module-declaration
  (let ((namespace-attach-module-declaration_0
         (|#%name|
          namespace-attach-module-declaration
          (lambda (src-namespace5_0 mod-path6_0 dest-namespace4_0)
            (begin
              (let ((dest-namespace_0
                     (if (eq? dest-namespace4_0 unsafe-undefined)
                       (1/current-namespace)
                       dest-namespace4_0)))
                (do-attach-module.1
                 #f
                 'namespace-attach-module-declaration
                 src-namespace5_0
                 mod-path6_0
                 dest-namespace_0)))))))
    (|#%name|
     namespace-attach-module-declaration
     (case-lambda
      ((src-namespace_0 mod-path_0)
       (begin
         (namespace-attach-module-declaration_0
          src-namespace_0
          mod-path_0
          unsafe-undefined)))
      ((src-namespace_0 mod-path_0 dest-namespace4_0)
       (namespace-attach-module-declaration_0
        src-namespace_0
        mod-path_0
        dest-namespace4_0))))))
(define do-attach-module.1
  (|#%name|
   do-attach-module
   (lambda (attach-instances?7_0
            who9_0
            src-namespace10_0
            mod-path11_0
            dest-namespace12_0)
     (begin
       (begin
         (if (1/namespace? src-namespace10_0)
           (void)
           (raise-argument-error who9_0 "namespace?" src-namespace10_0))
         (begin
           (if (let ((or-part_0 (1/module-path? mod-path11_0)))
                 (if or-part_0
                   or-part_0
                   (1/resolved-module-path? mod-path11_0)))
             (void)
             (raise-argument-error
              who9_0
              "(or/c module-path? resolved-module-path?)"
              mod-path11_0))
           (begin
             (if (1/namespace? dest-namespace12_0)
               (void)
               (raise-argument-error who9_0 "namespace?" dest-namespace12_0))
             (let ((phase_0 (namespace-phase src-namespace10_0)))
               (begin
                 (if (eqv? phase_0 (namespace-phase dest-namespace12_0))
                   (void)
                   (raise-arguments-error
                    who9_0
                    "source and destination namespace phases do not match"
                    "source phase"
                    phase_0
                    "destination phase"
                    (namespace-phase dest-namespace12_0)))
                 (let ((todo_0 (make-hasheq)))
                   (let ((non-instance-done_0 (make-hasheq)))
                     (let ((missing_0 kw2836))
                       (begin
                         (letrec*
                          ((loop_0
                            (|#%name|
                             loop
                             (lambda (mpi_0
                                      phase_1
                                      attach-instances?_0
                                      attach-phase_0)
                               (begin
                                 (let ((mod-name_0
                                        (with-continuation-mark*
                                         push-authentic
                                         parameterization-key
                                         (extend-parameterization
                                          (continuation-mark-set-first
                                           #f
                                           parameterization-key)
                                          1/current-namespace
                                          src-namespace10_0)
                                         (1/module-path-index-resolve mpi_0))))
                                   (let ((attach-this-instance?_0
                                          (if attach-instances?_0
                                            (eqv? phase_1 attach-phase_0)
                                            #f)))
                                     (let ((m-ns_0
                                            (hash-ref
                                             (hash-ref
                                              todo_0
                                              mod-name_0
                                              hash2589)
                                             phase_1
                                             missing_0)))
                                       (if (let ((or-part_0
                                                  (eq? missing_0 m-ns_0)))
                                             (if or-part_0
                                               or-part_0
                                               (if attach-this-instance?_0
                                                 (not m-ns_0)
                                                 #f)))
                                         (let ((m_0
                                                (namespace->module
                                                 src-namespace10_0
                                                 mod-name_0)))
                                           (begin
                                             (if m_0
                                               (void)
                                               (raise-arguments-error
                                                who9_0
                                                "module not declared (in the source namespace)"
                                                "module name"
                                                mod-name_0))
                                             (if (if (module-cross-phase-persistent?
                                                      m_0)
                                                   (if (not
                                                        (begin-unsafe
                                                         (not phase_1)))
                                                     (not
                                                      (begin-unsafe
                                                       (eq? phase_1 0)))
                                                     #f)
                                                   #f)
                                               (loop_0
                                                mpi_0
                                                0
                                                attach-instances?_0
                                                0)
                                               (let ((already-m_0
                                                      (namespace->module
                                                       dest-namespace12_0
                                                       mod-name_0)))
                                                 (begin
                                                   (if (if already-m_0
                                                         (not
                                                          (eq?
                                                           already-m_0
                                                           m_0))
                                                         #f)
                                                     (raise-arguments-error
                                                      who9_0
                                                      "a different declaration is already in the destination namespace"
                                                      "module name"
                                                      mod-name_0)
                                                     (void))
                                                   (call-with-values
                                                    (lambda ()
                                                      (if (if attach-this-instance?_0
                                                            attach-this-instance?_0
                                                            (module-cross-phase-persistent?
                                                             m_0))
                                                        (let ((m-ns_1
                                                               (namespace->module-namespace.1
                                                                #f
                                                                #f
                                                                void
                                                                src-namespace10_0
                                                                mod-name_0
                                                                phase_1)))
                                                          (begin
                                                            (if m-ns_1
                                                              (void)
                                                              (raise-arguments-error
                                                               who9_0
                                                               "module not instantiated (in the source namespace)"
                                                               "module name"
                                                               mod-name_0))
                                                            (let ((already-m-ns_0
                                                                   (if already-m_0
                                                                     (namespace->module-namespace.1
                                                                      #f
                                                                      #f
                                                                      void
                                                                      dest-namespace12_0
                                                                      mod-name_0
                                                                      phase_1)
                                                                     #f)))
                                                              (begin
                                                                (if (if already-m-ns_0
                                                                      (if (not
                                                                           (eq?
                                                                            m-ns_1
                                                                            already-m-ns_0))
                                                                        (not
                                                                         (namespace-same-instance?
                                                                          m-ns_1
                                                                          already-m-ns_0))
                                                                        #f)
                                                                      #f)
                                                                  (raise-arguments-error
                                                                   who9_0
                                                                   "a different instance is already in the destination namespace"
                                                                   "module name"
                                                                   mod-name_0)
                                                                  (void))
                                                                (values
                                                                 m-ns_1
                                                                 (if already-m-ns_0
                                                                   #t
                                                                   #f))))))
                                                        (begin
                                                          (if (if (begin-unsafe
                                                                   (not
                                                                    phase_1))
                                                                (not
                                                                 (namespace->module-namespace.1
                                                                  #f
                                                                  #f
                                                                  void
                                                                  src-namespace10_0
                                                                  mod-name_0
                                                                  phase_1))
                                                                #f)
                                                            (with-continuation-mark*
                                                             push-authentic
                                                             parameterization-key
                                                             (extend-parameterization
                                                              (continuation-mark-set-first
                                                               #f
                                                               parameterization-key)
                                                              1/current-namespace
                                                              src-namespace10_0)
                                                             (namespace-module-instantiate!.1
                                                              #f
                                                              #t
                                                              unsafe-undefined
                                                              hash2610
                                                              null
                                                              #f
                                                              #f
                                                              src-namespace10_0
                                                              mpi_0
                                                              phase_1))
                                                            (void))
                                                          (let ((done-phases_0
                                                                 (hash-ref
                                                                  non-instance-done_0
                                                                  mod-name_0
                                                                  hash2589)))
                                                            (let ((done?_0
                                                                   (hash-ref
                                                                    done-phases_0
                                                                    phase_1
                                                                    #f)))
                                                              (begin
                                                                (if done?_0
                                                                  (void)
                                                                  (hash-set!
                                                                   non-instance-done_0
                                                                   mod-name_0
                                                                   (hash-set
                                                                    done-phases_0
                                                                    phase_1
                                                                    #t)))
                                                                (values
                                                                 #f
                                                                 (if already-m_0
                                                                   done?_0
                                                                   #f))))))))
                                                    (case-lambda
                                                     ((m-ns_1 already?_0)
                                                      (begin
                                                        (let ((xform_0
                                                               (lambda (ht_0)
                                                                 (hash-set
                                                                  ht_0
                                                                  phase_1
                                                                  m-ns_1))))
                                                          (let ((default_0
                                                                 hash2589))
                                                            (begin-unsafe
                                                             (do-hash-update
                                                              'hash-update!
                                                              #t
                                                              hash-set!
                                                              todo_0
                                                              mod-name_0
                                                              xform_0
                                                              default_0))))
                                                        (if already?_0
                                                          (void)
                                                          (begin
                                                            (let ((lst_0
                                                                   (module-requires
                                                                    m_0)))
                                                              (let ((lst_1
                                                                     (module-recur-requires
                                                                      m_0)))
                                                                (begin
                                                                  (letrec*
                                                                   ((for-loop_0
                                                                     (|#%name|
                                                                      for-loop
                                                                      (lambda (lst_2
                                                                               lst_3)
                                                                        (begin
                                                                          (if (if (pair?
                                                                                   lst_2)
                                                                                (pair?
                                                                                 lst_3)
                                                                                #f)
                                                                            (let ((phase+reqs_0
                                                                                   (unsafe-car
                                                                                    lst_2)))
                                                                              (let ((rest_0
                                                                                     (unsafe-cdr
                                                                                      lst_2)))
                                                                                (let ((recurs_0
                                                                                       (unsafe-car
                                                                                        lst_3)))
                                                                                  (let ((rest_1
                                                                                         (unsafe-cdr
                                                                                          lst_3)))
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (let ((lst_4
                                                                                              (cdr
                                                                                               phase+reqs_0)))
                                                                                         (begin
                                                                                           (letrec*
                                                                                            ((for-loop_1
                                                                                              (|#%name|
                                                                                               for-loop
                                                                                               (lambda (lst_5
                                                                                                        lst_6)
                                                                                                 (begin
                                                                                                   (if (if (pair?
                                                                                                            lst_5)
                                                                                                         (pair?
                                                                                                          lst_6)
                                                                                                         #f)
                                                                                                     (let ((req_0
                                                                                                            (unsafe-car
                                                                                                             lst_5)))
                                                                                                       (let ((rest_2
                                                                                                              (unsafe-cdr
                                                                                                               lst_5)))
                                                                                                         (let ((recur?_0
                                                                                                                (unsafe-car
                                                                                                                 lst_6)))
                                                                                                           (let ((rest_3
                                                                                                                  (unsafe-cdr
                                                                                                                   lst_6)))
                                                                                                             (call-with-values
                                                                                                              (lambda ()
                                                                                                                (if recur?_0
                                                                                                                  (begin
                                                                                                                    (let ((app_0
                                                                                                                           (module-path-index-shift
                                                                                                                            req_0
                                                                                                                            (module-self
                                                                                                                             m_0)
                                                                                                                            mpi_0)))
                                                                                                                      (loop_0
                                                                                                                       app_0
                                                                                                                       (phase+
                                                                                                                        phase_1
                                                                                                                        (car
                                                                                                                         phase+reqs_0))
                                                                                                                       attach-instances?_0
                                                                                                                       attach-phase_0))
                                                                                                                    (values))
                                                                                                                  (values)))
                                                                                                              (case-lambda
                                                                                                               (()
                                                                                                                (for-loop_1
                                                                                                                 rest_2
                                                                                                                 rest_3))
                                                                                                               (args
                                                                                                                (raise-binding-result-arity-error
                                                                                                                 0
                                                                                                                 args))))))))
                                                                                                     (values)))))))
                                                                                            (for-loop_1
                                                                                             lst_4
                                                                                             recurs_0)))))
                                                                                     (case-lambda
                                                                                      (()
                                                                                       (for-loop_0
                                                                                        rest_0
                                                                                        rest_1))
                                                                                      (args
                                                                                       (raise-binding-result-arity-error
                                                                                        0
                                                                                        args))))))))
                                                                            (values)))))))
                                                                   (for-loop_0
                                                                    lst_0
                                                                    lst_1)))))
                                                            (void)
                                                            (let ((lst_0
                                                                   (module-submodule-names
                                                                    m_0)))
                                                              (begin
                                                                (letrec*
                                                                 ((for-loop_0
                                                                   (|#%name|
                                                                    for-loop
                                                                    (lambda (lst_1)
                                                                      (begin
                                                                        (if (pair?
                                                                             lst_1)
                                                                          (let ((submod-name_0
                                                                                 (unsafe-car
                                                                                  lst_1)))
                                                                            (let ((rest_0
                                                                                   (unsafe-cdr
                                                                                    lst_1)))
                                                                              (begin
                                                                                (loop_0
                                                                                 (1/module-path-index-join
                                                                                  (list
                                                                                   'submod
                                                                                   "."
                                                                                   submod-name_0)
                                                                                  mpi_0)
                                                                                 #f
                                                                                 #f
                                                                                 attach-phase_0)
                                                                                (for-loop_0
                                                                                 rest_0))))
                                                                          (values)))))))
                                                                 (for-loop_0
                                                                  lst_0))))
                                                            (void)
                                                            (if (module-supermodule-name
                                                                 m_0)
                                                              (loop_0
                                                               (1/module-path-index-join
                                                                '(submod "..")
                                                                mpi_0)
                                                               #f
                                                               #f
                                                               attach-phase_0)
                                                              (void))))))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args)))))))))
                                         (void))))))))))
                          (loop_0
                           (1/module-path-index-join
                            (if (1/resolved-module-path? mod-path11_0)
                              (resolved-module-path->module-path mod-path11_0)
                              mod-path11_0)
                            #f)
                           phase_0
                           attach-instances?7_0
                           phase_0))
                         (begin
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (i_0)
                                   (begin
                                     (if i_0
                                       (call-with-values
                                        (lambda ()
                                          (hash-iterate-key+value todo_0 i_0))
                                        (case-lambda
                                         ((mod-name_0 phases_0)
                                          (call-with-values
                                           (lambda ()
                                             (begin
                                               (letrec*
                                                ((for-loop_1
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (i_1)
                                                     (begin
                                                       (if i_1
                                                         (call-with-values
                                                          (lambda ()
                                                            (hash-iterate-key+value
                                                             phases_0
                                                             i_1))
                                                          (case-lambda
                                                           ((phase_1 m-ns_0)
                                                            (begin
                                                              (let ((m_0
                                                                     (namespace->module
                                                                      src-namespace10_0
                                                                      mod-name_0)))
                                                                (begin
                                                                  (begin-unsafe
                                                                   (|#%app|
                                                                    (module-force-bulk-binding
                                                                     m_0)
                                                                    (namespace-bulk-binding-registry
                                                                     src-namespace10_0)))
                                                                  (with-continuation-mark*
                                                                   push-authentic
                                                                   parameterization-key
                                                                   (extend-parameterization
                                                                    (continuation-mark-set-first
                                                                     #f
                                                                     parameterization-key)
                                                                    1/current-namespace
                                                                    dest-namespace12_0)
                                                                   (declare-module!.1
                                                                    #t
                                                                    dest-namespace12_0
                                                                    m_0
                                                                    mod-name_0))
                                                                  (if m-ns_0
                                                                    (begin
                                                                      (namespace-record-module-instance-attached!
                                                                       src-namespace10_0
                                                                       mod-name_0
                                                                       phase_1)
                                                                      (let ((or-part_0
                                                                             (namespace->module-namespace.1
                                                                              #f
                                                                              #f
                                                                              void
                                                                              dest-namespace12_0
                                                                              mod-name_0
                                                                              phase_1)))
                                                                        (if or-part_0
                                                                          or-part_0
                                                                          (namespace-install-module-namespace!
                                                                           dest-namespace12_0
                                                                           mod-name_0
                                                                           phase_1
                                                                           m_0
                                                                           m-ns_0))))
                                                                    (void))))
                                                              (for-loop_1
                                                               (hash-iterate-next
                                                                phases_0
                                                                i_1))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))
                                                         (values)))))))
                                                (for-loop_1
                                                 (hash-iterate-first
                                                  phases_0)))))
                                           (case-lambda
                                            (()
                                             (for-loop_0
                                              (hash-iterate-next todo_0 i_0)))
                                            (args
                                             (raise-binding-result-arity-error
                                              0
                                              args)))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))
                                       (values)))))))
                              (for-loop_0 (hash-iterate-first todo_0))))
                           (let ((mnr_0 (1/current-module-name-resolver)))
                             (with-continuation-mark*
                              authentic
                              parameterization-key
                              (extend-parameterization
                               (continuation-mark-set-first
                                #f
                                parameterization-key)
                               1/current-namespace
                               dest-namespace12_0)
                              (begin
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (i_0)
                                        (begin
                                          (if i_0
                                            (let ((mod-name_0
                                                   (hash-iterate-key
                                                    todo_0
                                                    i_0)))
                                              (begin
                                                (|#%app|
                                                 mnr_0
                                                 mod-name_0
                                                 src-namespace10_0)
                                                (for-loop_0
                                                 (hash-iterate-next
                                                  todo_0
                                                  i_0))))
                                            (values)))))))
                                   (for-loop_0 (hash-iterate-first todo_0))))
                                (void))))))))))))))))))
(define 1/make-empty-namespace
  (|#%name|
   make-empty-namespace
   (lambda ()
     (begin
       (let ((current-ns_0 (1/current-namespace)))
         (let ((phase_0 (namespace-phase current-ns_0)))
           (let ((ns_0
                  (namespace->namespace-at-phase (make-namespace) phase_0)))
             (begin
               (1/namespace-attach-module current-ns_0 ''|#%kernel| ns_0)
               (namespace-primitive-module-visit! ns_0 '|#%kernel|)
               ns_0))))))))
(define 1/namespace-syntax-introduce
  (let ((namespace-syntax-introduce_0
         (|#%name|
          namespace-syntax-introduce
          (lambda (s2_0 ns1_0)
            (begin
              (let ((ns_0
                     (if (eq? ns1_0 unsafe-undefined)
                       (1/current-namespace)
                       ns1_0)))
                (begin
                  (if (syntax?$1 s2_0)
                    (void)
                    (raise-argument-error
                     'namespace-syntax-introduce
                     "syntax?"
                     s2_0))
                  (begin
                    (if (1/namespace? ns_0)
                      (void)
                      (raise-argument-error
                       'namespace-syntax-introduce
                       "namespace?"
                       ns_0))
                    (let ((root-ctx_0 (namespace-get-root-expand-ctx ns_0)))
                      (let ((post-scope_0
                             (post-expansion-scope
                              (begin-unsafe
                               (root-expand-context/outer-post-expansion
                                root-ctx_0)))))
                        (let ((other-namespace-scopes_0
                               (reverse$1
                                (let ((ht_0
                                       (syntax-scope-set
                                        (begin-unsafe
                                         (root-expand-context/inner-all-scopes-stx
                                          (root-expand-context/outer-inner
                                           root-ctx_0)))
                                        0)))
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (fold-var_0 i_0)
                                          (begin
                                            (if i_0
                                              (let ((sc_0
                                                     (unsafe-immutable-hash-iterate-key
                                                      ht_0
                                                      i_0)))
                                                (let ((fold-var_1
                                                       (if (equal?
                                                            sc_0
                                                            post-scope_0)
                                                         fold-var_0
                                                         (let ((fold-var_1
                                                                (cons
                                                                 sc_0
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1)))))
                                                  (for-loop_0
                                                   fold-var_1
                                                   (unsafe-immutable-hash-iterate-next
                                                    ht_0
                                                    i_0))))
                                              fold-var_0))))))
                                     (for-loop_0
                                      null
                                      (unsafe-immutable-hash-iterate-first
                                       ht_0))))))))
                          (let ((add-ns-scopes_0
                                 (|#%name|
                                  add-ns-scopes
                                  (lambda (s_0)
                                    (begin
                                      (let ((temp40_0
                                             (add-scopes
                                              (push-scope s_0 post-scope_0)
                                              other-namespace-scopes_0)))
                                        (let ((temp41_0
                                               (begin-unsafe
                                                (root-expand-context/inner-all-scopes-stx
                                                 (root-expand-context/outer-inner
                                                  root-ctx_0)))))
                                          (let ((temp42_0
                                                 (let ((or-part_0
                                                        (namespace-declaration-inspector
                                                         ns_0)))
                                                   (if or-part_0
                                                     or-part_0
                                                     (current-code-inspector)))))
                                            (let ((temp41_1 temp41_0)
                                                  (temp40_1 temp40_0))
                                              (syntax-transfer-shifts.1
                                               #t
                                               temp40_1
                                               temp41_1
                                               temp42_0))))))))))
                            (let ((maybe-module-id_0
                                   (if (pair? (1/syntax-e s2_0))
                                     (if (identifier? (car (1/syntax-e s2_0)))
                                       (add-ns-scopes_0
                                        (car (1/syntax-e s2_0)))
                                       #f)
                                     #f)))
                              (if (if maybe-module-id_0
                                    (let ((app_0
                                           (1/namespace-module-identifier
                                            ns_0)))
                                      (1/free-identifier=?
                                       maybe-module-id_0
                                       app_0
                                       (namespace-phase ns_0)))
                                    #f)
                                (1/datum->syntax
                                 s2_0
                                 (cons
                                  maybe-module-id_0
                                  (cdr (1/syntax-e s2_0)))
                                 s2_0
                                 s2_0)
                                (add-ns-scopes_0 s2_0)))))))))))))))
    (|#%name|
     namespace-syntax-introduce
     (case-lambda
      ((s_0) (begin (namespace-syntax-introduce_0 s_0 unsafe-undefined)))
      ((s_0 ns1_0) (namespace-syntax-introduce_0 s_0 ns1_0))))))
(define namespace-datum-introduce
  (lambda (s_0) (1/namespace-syntax-introduce (1/datum->syntax #f s_0))))
(define 1/namespace-module-identifier
  (let ((namespace-module-identifier_0
         (|#%name|
          namespace-module-identifier
          (lambda (where3_0)
            (begin
              (let ((where_0
                     (if (eq? where3_0 unsafe-undefined)
                       (1/current-namespace)
                       where3_0)))
                (begin
                  (if (let ((or-part_0 (1/namespace? where_0)))
                        (if or-part_0 or-part_0 (phase? where_0)))
                    (void)
                    (raise-argument-error
                     'namespace-module-identifier
                     (string-append "(or/c namespace? " phase?-string ")")
                     where_0))
                  (1/datum->syntax
                   (1/syntax-shift-phase-level
                    core-stx
                    (if (1/namespace? where_0)
                      (namespace-phase where_0)
                      where_0))
                   'module))))))))
    (|#%name|
     namespace-module-identifier
     (case-lambda
      (() (begin (namespace-module-identifier_0 unsafe-undefined)))
      ((where3_0) (namespace-module-identifier_0 where3_0))))))
(define 1/namespace-symbol->identifier
  (|#%name|
   namespace-symbol->identifier
   (lambda (sym_0)
     (begin
       (begin
         (if (symbol? sym_0)
           (void)
           (raise-argument-error
            'namespace-symbol->identifier
            "symbol?"
            sym_0))
         (1/namespace-syntax-introduce (1/datum->syntax #f sym_0)))))))
(define do-namespace-require.1
  (|#%name|
   do-namespace-require
   (lambda (copy-variable-as-constant?7_0
            copy-variable-phase-level6_0
            run?4_0
            skip-variable-phase-level8_0
            visit?5_0
            who14_0
            req15_0
            ns16_0)
     (begin
       (begin
         (if (1/namespace? ns16_0)
           (void)
           (raise-argument-error who14_0 "namespace?" ns16_0))
         (let ((ctx-stx_0
                (add-scopes
                 empty-syntax
                 (let ((v_0 (namespace-get-root-expand-ctx ns16_0)))
                   (begin-unsafe
                    (root-expand-context/inner-module-scopes
                     (root-expand-context/outer-inner v_0)))))))
           (if (let ((or-part_0 (1/module-path-index? req15_0)))
                 (if or-part_0 or-part_0 (1/module-path? req15_0)))
             (let ((temp46_0
                    (if (1/module-path-index? req15_0)
                      req15_0
                      (1/module-path-index-join req15_0 #f))))
               (let ((temp53_0 (namespace-phase ns16_0)))
                 (let ((temp54_0 (namespace-phase ns16_0)))
                   (let ((temp53_1 temp53_0) (temp46_1 temp46_0))
                     (perform-require!.1
                      #f
                      #t
                      #f
                      copy-variable-as-constant?7_0
                      copy-variable-phase-level6_0
                      #f
                      'all
                      #t
                      temp53_1
                      #f
                      temp54_0
                      run?4_0
                      skip-variable-phase-level8_0
                      unsafe-undefined
                      visit?5_0
                      who14_0
                      temp46_1
                      #f
                      #f
                      ctx-stx_0
                      ns16_0)))))
             (let ((temp61_0 (list (1/datum->syntax ctx-stx_0 req15_0))))
               (let ((temp64_0 (namespace-phase ns16_0)))
                 (let ((temp65_0
                        (make-requires+provides.1 #f unsafe-undefined #f)))
                   (let ((temp64_1 temp64_0) (temp61_1 temp61_0))
                     (parse-and-perform-requires!.1
                      #f
                      #f
                      copy-variable-as-constant?7_0
                      copy-variable-phase-level6_0
                      hash2610
                      #f
                      unsafe-undefined
                      run?4_0
                      #f
                      skip-variable-phase-level8_0
                      visit?5_0
                      who14_0
                      temp61_1
                      #f
                      ns16_0
                      temp64_1
                      temp65_0))))))))))))
(define 1/namespace-require
  (let ((namespace-require_0
         (|#%name|
          namespace-require
          (lambda (req19_0 ns18_0)
            (begin
              (let ((ns_0
                     (if (eq? ns18_0 unsafe-undefined)
                       (1/current-namespace)
                       ns18_0)))
                (do-namespace-require.1
                 #f
                 #f
                 #t
                 #f
                 #f
                 'namespace-require
                 req19_0
                 ns_0)))))))
    (|#%name|
     namespace-require
     (case-lambda
      ((req_0) (begin (namespace-require_0 req_0 unsafe-undefined)))
      ((req_0 ns18_0) (namespace-require_0 req_0 ns18_0))))))
(define 1/namespace-require/expansion-time
  (let ((namespace-require/expansion-time_0
         (|#%name|
          namespace-require/expansion-time
          (lambda (req21_0 ns20_0)
            (begin
              (let ((ns_0
                     (if (eq? ns20_0 unsafe-undefined)
                       (1/current-namespace)
                       ns20_0)))
                (do-namespace-require.1
                 #f
                 #f
                 #f
                 #f
                 #t
                 'namespace-require/expansion-time
                 req21_0
                 ns_0)))))))
    (|#%name|
     namespace-require/expansion-time
     (case-lambda
      ((req_0)
       (begin (namespace-require/expansion-time_0 req_0 unsafe-undefined)))
      ((req_0 ns20_0) (namespace-require/expansion-time_0 req_0 ns20_0))))))
(define 1/namespace-require/constant
  (let ((namespace-require/constant_0
         (|#%name|
          namespace-require/constant
          (lambda (req23_0 ns22_0)
            (begin
              (let ((ns_0
                     (if (eq? ns22_0 unsafe-undefined)
                       (1/current-namespace)
                       ns22_0)))
                (do-namespace-require.1
                 #t
                 0
                 #t
                 #f
                 #f
                 'namespace-require/constant
                 req23_0
                 ns_0)))))))
    (|#%name|
     namespace-require/constant
     (case-lambda
      ((req_0) (begin (namespace-require/constant_0 req_0 unsafe-undefined)))
      ((req_0 ns22_0) (namespace-require/constant_0 req_0 ns22_0))))))
(define 1/namespace-require/copy
  (let ((namespace-require/copy_0
         (|#%name|
          namespace-require/copy
          (lambda (req25_0 ns24_0)
            (begin
              (let ((ns_0
                     (if (eq? ns24_0 unsafe-undefined)
                       (1/current-namespace)
                       ns24_0)))
                (do-namespace-require.1
                 #f
                 0
                 #t
                 0
                 #f
                 'namespace-require/copy
                 req25_0
                 ns_0)))))))
    (|#%name|
     namespace-require/copy
     (case-lambda
      ((req_0) (begin (namespace-require/copy_0 req_0 unsafe-undefined)))
      ((req_0 ns24_0) (namespace-require/copy_0 req_0 ns24_0))))))
(define 1/namespace-variable-value
  (let ((namespace-variable-value_0
         (|#%name|
          namespace-variable-value
          (lambda (sym29_0 use-mapping?26_0 failure-thunk27_0 ns28_0)
            (begin
              (let ((ns_0
                     (if (eq? ns28_0 unsafe-undefined)
                       (1/current-namespace)
                       ns28_0)))
                (begin
                  (if (symbol? sym29_0)
                    (void)
                    (raise-argument-error
                     'namespace-variable-value
                     "symbol?"
                     sym29_0))
                  (if (let ((or-part_0 (not failure-thunk27_0)))
                        (if or-part_0
                          or-part_0
                          (if (procedure? failure-thunk27_0)
                            (procedure-arity-includes? failure-thunk27_0 0)
                            #f)))
                    (void)
                    (raise-argument-error
                     'namespace-variable-value
                     "(or/c #f (procedure-arity-includes/c 0))"
                     failure-thunk27_0))
                  (if (1/namespace? ns_0)
                    (void)
                    (raise-argument-error
                     'namespace-variable-value
                     "namespace?"
                     ns_0))
                  (|#%app|
                   (call-with-escape-continuation
                    (lambda (escape_0)
                      (call-with-values
                       (lambda ()
                         (if use-mapping?26_0
                           (let ((id_0 (1/datum->syntax #f sym29_0)))
                             (let ((b_0
                                    (let ((app_0
                                           (1/namespace-syntax-introduce
                                            id_0
                                            ns_0)))
                                      (resolve+shift/extra-inspector
                                       app_0
                                       (namespace-phase ns_0)
                                       ns_0))))
                               (begin
                                 (if b_0
                                   (namespace-visit-available-modules! ns_0)
                                   (void))
                                 (call-with-values
                                  (lambda ()
                                    (if b_0
                                      (let ((temp98_0 (namespace-phase ns_0)))
                                        (binding-lookup.1
                                         #t
                                         #f
                                         #f
                                         b_0
                                         empty-env
                                         null
                                         ns_0
                                         temp98_0
                                         id_0))
                                      (values variable #f #f #f)))
                                  (case-lambda
                                   ((v_0
                                     primitive?_0
                                     extra-inspector_0
                                     protected?_0)
                                    (begin
                                      (if (variable? v_0)
                                        (void)
                                        (|#%app|
                                         escape_0
                                         (if failure-thunk27_0
                                           failure-thunk27_0
                                           (lambda ()
                                             (raise
                                              (let ((app_0
                                                     (format
                                                      (string-append
                                                       "namespace-variable-value: bound to syntax\n"
                                                       "  in: ~s")
                                                      sym29_0)))
                                                (|#%app|
                                                 make-exn:fail:syntax$1
                                                 app_0
                                                 (current-continuation-marks)
                                                 null)))))))
                                      (if (module-binding? b_0)
                                        (let ((app_0
                                               (if (let ((mpi_0
                                                          (module-binding-module
                                                           b_0)))
                                                     (begin-unsafe
                                                      (eq?
                                                       top-level-module-path-index
                                                       mpi_0)))
                                                 ns_0
                                                 (module-instance-namespace
                                                  (binding->module-instance
                                                   b_0
                                                   ns_0
                                                   (namespace-phase ns_0)
                                                   id_0)))))
                                          (let ((app_1
                                                 (module-binding-phase b_0)))
                                            (values
                                             app_0
                                             app_1
                                             (module-binding-sym b_0))))
                                        (values
                                         ns_0
                                         (namespace-phase ns_0)
                                         sym29_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     4
                                     args)))))))
                           (values ns_0 (namespace-phase ns_0) sym29_0)))
                       (case-lambda
                        ((var-ns_0 var-phase-level_0 var-sym_0)
                         (let ((val_0
                                (namespace-get-variable
                                 var-ns_0
                                 var-phase-level_0
                                 var-sym_0
                                 (lambda ()
                                   (|#%app|
                                    escape_0
                                    (if failure-thunk27_0
                                      failure-thunk27_0
                                      (raise
                                       (let ((app_0
                                              (format
                                               (string-append
                                                "namespace-variable-value: given name is not defined\n"
                                                "  name: ~s")
                                               sym29_0)))
                                         (|#%app|
                                          exn:fail:contract:variable
                                          app_0
                                          (current-continuation-marks)
                                          sym29_0)))))))))
                           (lambda () val_0)))
                        (args
                         (raise-binding-result-arity-error 3 args))))))))))))))
    (|#%name|
     namespace-variable-value
     (case-lambda
      ((sym_0)
       (begin (namespace-variable-value_0 sym_0 #t #f unsafe-undefined)))
      ((sym_0 use-mapping?_0 failure-thunk_0 ns28_0)
       (namespace-variable-value_0
        sym_0
        use-mapping?_0
        failure-thunk_0
        ns28_0))
      ((sym_0 use-mapping?_0 failure-thunk27_0)
       (namespace-variable-value_0
        sym_0
        use-mapping?_0
        failure-thunk27_0
        unsafe-undefined))
      ((sym_0 use-mapping?26_0)
       (namespace-variable-value_0
        sym_0
        use-mapping?26_0
        #f
        unsafe-undefined))))))
(define 1/namespace-set-variable-value!
  (let ((namespace-set-variable-value!_0
         (|#%name|
          namespace-set-variable-value!
          (lambda (sym33_0 val34_0 map?30_0 ns31_0 as-constant?32_0)
            (begin
              (let ((ns_0
                     (if (eq? ns31_0 unsafe-undefined)
                       (1/current-namespace)
                       ns31_0)))
                (begin
                  (if (symbol? sym33_0)
                    (void)
                    (raise-argument-error
                     'namespace-set-variable-value!
                     "symbol?"
                     sym33_0))
                  (if (1/namespace? ns_0)
                    (void)
                    (raise-argument-error
                     'namespace-set-variable-value!
                     "namespace?"
                     ns_0))
                  (namespace-set-variable!
                   ns_0
                   (namespace-phase ns_0)
                   sym33_0
                   val34_0
                   as-constant?32_0)
                  (if map?30_0
                    (begin
                      (namespace-unset-transformer!
                       ns_0
                       (namespace-phase ns_0)
                       sym33_0)
                      (let ((id_0 (1/datum->syntax #f sym33_0)))
                        (let ((temp101_0
                               (1/namespace-syntax-introduce id_0 ns_0)))
                          (let ((temp102_0
                                 (let ((temp104_0 (namespace-mpi ns_0)))
                                   (let ((temp105_0 (namespace-phase ns_0)))
                                     (make-module-binding.1
                                      #f
                                      null
                                      #f
                                      #f
                                      unsafe-undefined
                                      unsafe-undefined
                                      0
                                      unsafe-undefined
                                      temp104_0
                                      temp105_0
                                      sym33_0)))))
                            (let ((temp103_0 (namespace-phase ns_0)))
                              (let ((temp102_1 temp102_0)
                                    (temp101_1 temp101_0))
                                (add-binding!.1
                                 #f
                                 #f
                                 temp101_1
                                 temp102_1
                                 temp103_0)))))))
                    (void)))))))))
    (|#%name|
     namespace-set-variable-value!
     (case-lambda
      ((sym_0 val_0)
       (begin
         (namespace-set-variable-value!_0 sym_0 val_0 #f unsafe-undefined #f)))
      ((sym_0 val_0 map?_0 ns_0 as-constant?32_0)
       (namespace-set-variable-value!_0
        sym_0
        val_0
        map?_0
        ns_0
        as-constant?32_0))
      ((sym_0 val_0 map?_0 ns31_0)
       (namespace-set-variable-value!_0 sym_0 val_0 map?_0 ns31_0 #f))
      ((sym_0 val_0 map?30_0)
       (namespace-set-variable-value!_0
        sym_0
        val_0
        map?30_0
        unsafe-undefined
        #f))))))
(define 1/namespace-undefine-variable!
  (let ((namespace-undefine-variable!_0
         (|#%name|
          namespace-undefine-variable!
          (lambda (sym36_0 ns35_0)
            (begin
              (let ((ns_0
                     (if (eq? ns35_0 unsafe-undefined)
                       (1/current-namespace)
                       ns35_0)))
                (begin
                  (if (symbol? sym36_0)
                    (void)
                    (raise-argument-error
                     'namespace-undefine-variable!
                     "symbol?"
                     sym36_0))
                  (if (1/namespace? ns_0)
                    (void)
                    (raise-argument-error
                     'namespace-undefine-variable!
                     "namespace?"
                     ns_0))
                  (namespace-unset-variable!
                   ns_0
                   (namespace-phase ns_0)
                   sym36_0))))))))
    (|#%name|
     namespace-undefine-variable!
     (case-lambda
      ((sym_0) (begin (namespace-undefine-variable!_0 sym_0 unsafe-undefined)))
      ((sym_0 ns35_0) (namespace-undefine-variable!_0 sym_0 ns35_0))))))
(define 1/namespace-mapped-symbols
  (let ((namespace-mapped-symbols_0
         (|#%name|
          namespace-mapped-symbols
          (lambda (ns37_0)
            (begin
              (let ((ns_0
                     (if (eq? ns37_0 unsafe-undefined)
                       (1/current-namespace)
                       ns37_0)))
                (begin
                  (if (1/namespace? ns_0)
                    (void)
                    (raise-argument-error
                     'namespace-mapped-symbols
                     "namespace?"
                     ns_0))
                  (set->list
                   (let ((app_0
                          (let ((temp109_0
                                 (let ((v_0
                                        (namespace-get-root-expand-ctx ns_0)))
                                   (begin-unsafe
                                    (root-expand-context/inner-all-scopes-stx
                                     (root-expand-context/outer-inner v_0))))))
                            (let ((temp110_0 (namespace-phase ns_0)))
                              (let ((temp109_1 temp109_0))
                                (syntax-mapped-names.1
                                 #f
                                 #f
                                 temp109_1
                                 temp110_0))))))
                     (set-union
                      app_0
                      (list->set
                       (instance-variable-names
                        (begin-unsafe
                         (definitions-variables
                          (namespace->definitions ns_0 0)))))))))))))))
    (|#%name|
     namespace-mapped-symbols
     (case-lambda
      (() (begin (namespace-mapped-symbols_0 unsafe-undefined)))
      ((ns37_0) (namespace-mapped-symbols_0 ns37_0))))))
(define 1/namespace-base-phase
  (let ((namespace-base-phase_0
         (|#%name|
          namespace-base-phase
          (lambda (ns38_0)
            (begin
              (let ((ns_0
                     (if (eq? ns38_0 unsafe-undefined)
                       (1/current-namespace)
                       ns38_0)))
                (begin
                  (if (1/namespace? ns_0)
                    (void)
                    (raise-argument-error
                     'namespace-base-phase
                     "namespace?"
                     ns_0))
                  (namespace-phase ns_0))))))))
    (|#%name|
     namespace-base-phase
     (case-lambda
      (() (begin (namespace-base-phase_0 unsafe-undefined)))
      ((ns38_0) (namespace-base-phase_0 ns38_0))))))
(define 1/namespace-call-with-registry-lock
  (|#%name|
   namespace-call-with-registry-lock
   (lambda (ns_0 thunk_0)
     (begin
       (begin
         (if (1/namespace? ns_0)
           (void)
           (raise-argument-error
            'namespace-call-with-registry-lock
            "namespace?"
            ns_0))
         (if (if (procedure? thunk_0) (procedure-arity-includes? thunk_0 0) #f)
           (void)
           (raise-argument-error
            'namespace-call-with-registry-lock
            "(procedure-arity-includes/c 0)"
            thunk_0))
         (registry-call-with-lock
          (namespace-module-registry$1 ns_0)
          thunk_0))))))
(define as-expand-time-top-level-bindings
  (lambda (ids_0 s_0 ctx_0)
    (let ((top-level-bind-scope_0
           (begin-unsafe
            (root-expand-context/inner-top-level-bind-scope
             (root-expand-context/outer-inner ctx_0)))))
      (let ((tl-ids_0
             (reverse$1
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (fold-var_0 lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((id_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (let ((fold-var_1
                                     (let ((fold-var_1
                                            (cons
                                             (remove-use-site-scopes
                                              id_0
                                              ctx_0)
                                             fold-var_0)))
                                       (values fold-var_1))))
                                (for-loop_0 fold-var_1 rest_0))))
                          fold-var_0))))))
                 (for-loop_0 null ids_0))))))
        (begin
          (let ((temp2_0
                 (begin-unsafe
                  (expand-context/inner-phase
                   (root-expand-context/outer-inner ctx_0)))))
            (check-no-duplicate-ids.1
             unsafe-undefined
             tl-ids_0
             temp2_0
             s_0
             unsafe-undefined))
          (let ((tmp-bind-ids_0
                 (reverse$1
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (fold-var_0 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((id_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((fold-var_1
                                         (let ((fold-var_1
                                                (cons
                                                 (add-scope
                                                  id_0
                                                  top-level-bind-scope_0)
                                                 fold-var_0)))
                                           (values fold-var_1))))
                                    (for-loop_0 fold-var_1 rest_0))))
                              fold-var_0))))))
                     (for-loop_0 null tl-ids_0))))))
            (values
             tl-ids_0
             (select-defined-syms-and-bind!/ctx tmp-bind-ids_0 ctx_0))))))))
(define make-top-add-defined-portal
  (lambda (ns_0 ctx_0 generated-syms_0)
    (lambda (id_0 phase_0 portal-stx_0 orig-s_0)
      (call-with-values
       (lambda ()
         (as-expand-time-top-level-bindings (list id_0) orig-s_0 ctx_0))
       (case-lambda
        ((ids_0 syms_0)
         (let ((sym_0 (car syms_0)))
           (begin
             (if phase_0
               (let ((t_0 (portal-syntax1.1 portal-stx_0)))
                 (namespace-set-transformer! ns_0 phase_0 sym_0 t_0))
               (void))
             (set-box! generated-syms_0 (cons sym_0 (unbox generated-syms_0)))
             sym_0)))
        (args (raise-binding-result-arity-error 2 args)))))))
(define 1/eval
  (let ((eval_0
         (|#%name|
          eval
          (lambda (s3_0 ns1_0 compile2_0)
            (begin
              (let ((ns_0
                     (if (eq? ns1_0 unsafe-undefined)
                       (1/current-namespace)
                       ns1_0)))
                (let ((compile_0
                       (if (eq? compile2_0 unsafe-undefined)
                         (|#%name|
                          compile
                          (lambda (s_0 ns_1) (begin (1/compile s_0 ns_1 #f))))
                         compile2_0)))
                  (if (let ((or-part_0 (compiled-in-memory? s3_0)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (linklet-directory?$1 s3_0)))
                            (if or-part_1
                              or-part_1
                              (1/linklet-bundle? s3_0)))))
                    (eval-compiled s3_0 ns_0)
                    (if (if (syntax?$1 s3_0)
                          (let ((or-part_0
                                 (compiled-in-memory? (1/syntax-e s3_0))))
                            (if or-part_0
                              or-part_0
                              (let ((or-part_1
                                     (linklet-directory?$1 (1/syntax-e s3_0))))
                                (if or-part_1
                                  or-part_1
                                  (1/linklet-bundle? (1/syntax-e s3_0))))))
                          #f)
                      (eval-compiled (1/syntax->datum s3_0) ns_0)
                      (let ((temp65_0
                             (lambda (s_0 ns_1 tail?_0)
                               (eval-compiled
                                (|#%app| compile_0 s_0 ns_1)
                                ns_1
                                tail?_0))))
                        (per-top-level.1
                         #f
                         #f
                         #f
                         #t
                         #f
                         temp65_0
                         #f
                         s3_0
                         ns_0)))))))))))
    (|#%name|
     eval
     (case-lambda
      ((s_0) (begin (eval_0 s_0 unsafe-undefined unsafe-undefined)))
      ((s_0 ns_0 compile2_0) (eval_0 s_0 ns_0 compile2_0))
      ((s_0 ns1_0) (eval_0 s_0 ns1_0 unsafe-undefined))))))
(define eval-compiled
  (let ((eval-compiled_0
         (|#%name|
          eval-compiled
          (lambda (c5_0 ns6_0 as-tail?4_0)
            (begin
              (if (1/compiled-module-expression? c5_0)
                (eval-module.1 ns6_0 #f #t c5_0)
                (eval-top c5_0 ns6_0 eval-compiled as-tail?4_0)))))))
    (case-lambda
     ((c_0 ns_0) (eval-compiled_0 c_0 ns_0 #t))
     ((c_0 ns_0 as-tail?4_0) (eval-compiled_0 c_0 ns_0 as-tail?4_0)))))
(define 1/compile
  (let ((compile_0
         (|#%name|
          compile
          (lambda (s10_0 ns7_0 serializable?8_0 expand9_0)
            (begin
              (let ((ns_0
                     (if (eq? ns7_0 unsafe-undefined)
                       (1/current-namespace)
                       ns7_0)))
                (let ((expand_0
                       (if (eq? expand9_0 unsafe-undefined)
                         expand$1
                         expand9_0)))
                  (let ((to-correlated-linklet?_0
                         (if serializable?8_0
                           (not (current-compile-target-machine))
                           #f)))
                    (let ((cs_0
                           (if (1/compiled-expression? s10_0)
                             (list s10_0)
                             (if (if (syntax?$1 s10_0)
                                   (1/compiled-expression? (1/syntax-e s10_0))
                                   #f)
                               (list (1/syntax-e s10_0))
                               (let ((temp71_0
                                      (lambda (s_0 ns_1 as-tail?_0)
                                        (list
                                         (compile-single.1
                                          serializable?8_0
                                          to-correlated-linklet?_0
                                          s_0
                                          ns_1
                                          expand_0)))))
                                 (per-top-level.1
                                  append
                                  #f
                                  #f
                                  #t
                                  #f
                                  temp71_0
                                  #f
                                  s10_0
                                  ns_0))))))
                      (if (if (= 1 (length cs_0))
                            (not (compiled-multiple-top? (car cs_0)))
                            #f)
                        (car cs_0)
                        (compiled-tops->compiled-top.1
                         serializable?8_0
                         ns_0
                         to-correlated-linklet?_0
                         cs_0)))))))))))
    (|#%name|
     compile
     (case-lambda
      ((s_0) (begin (compile_0 s_0 unsafe-undefined #t unsafe-undefined)))
      ((s_0 ns_0 serializable?_0 expand9_0)
       (compile_0 s_0 ns_0 serializable?_0 expand9_0))
      ((s_0 ns_0 serializable?8_0)
       (compile_0 s_0 ns_0 serializable?8_0 unsafe-undefined))
      ((s_0 ns7_0) (compile_0 s_0 ns7_0 #t unsafe-undefined))))))
(define finish_2305
  (make-struct-type-install-properties
   '(lifted-parsed-begin)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'lifted-parsed-begin))
(define struct:lifted-parsed-begin
  (make-record-type-descriptor
   'lifted-parsed-begin
   #f
   (|#%nongenerative-uid| lifted-parsed-begin)
   #f
   #f
   '(2 . 0)))
(define effect_2583 (finish_2305 struct:lifted-parsed-begin))
(define lifted-parsed-begin11.1
  (|#%name|
   lifted-parsed-begin
   (record-constructor
    (make-record-constructor-descriptor struct:lifted-parsed-begin #f #f))))
(define lifted-parsed-begin?_2302
  (|#%name|
   lifted-parsed-begin?
   (record-predicate struct:lifted-parsed-begin)))
(define lifted-parsed-begin?
  (|#%name|
   lifted-parsed-begin?
   (lambda (v)
     (if (lifted-parsed-begin?_2302 v)
       #t
       ($value
        (if (impersonator? v)
          (lifted-parsed-begin?_2302 (impersonator-val v))
          #f))))))
(define lifted-parsed-begin-seq_2038
  (|#%name|
   lifted-parsed-begin-seq
   (record-accessor struct:lifted-parsed-begin 0)))
(define lifted-parsed-begin-seq
  (|#%name|
   lifted-parsed-begin-seq
   (lambda (s)
     (if (lifted-parsed-begin?_2302 s)
       (lifted-parsed-begin-seq_2038 s)
       ($value
        (impersonate-ref
         lifted-parsed-begin-seq_2038
         struct:lifted-parsed-begin
         0
         s
         'seq))))))
(define lifted-parsed-begin-last_2385
  (|#%name|
   lifted-parsed-begin-last
   (record-accessor struct:lifted-parsed-begin 1)))
(define lifted-parsed-begin-last
  (|#%name|
   lifted-parsed-begin-last
   (lambda (s)
     (if (lifted-parsed-begin?_2302 s)
       (lifted-parsed-begin-last_2385 s)
       ($value
        (impersonate-ref
         lifted-parsed-begin-last_2385
         struct:lifted-parsed-begin
         1
         s
         'last))))))
(define compile-single.1
  (|#%name|
   compile-single
   (lambda (serializable?12_0
            to-correlated-linklet?13_0
            s16_0
            ns17_0
            expand18_0)
     (begin
       (let ((exp-s_0
              (|#%app|
               expand18_0
               s16_0
               ns17_0
               #f
               #t
               serializable?12_0
               to-correlated-linklet?13_0)))
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (exp-s_1)
               (begin
                 (if (parsed-module? exp-s_1)
                   (let ((temp85_0
                          (make-compile-context.1
                           #f
                           unsafe-undefined
                           #f
                           ns17_0
                           unsafe-undefined
                           unsafe-undefined)))
                     (compile-module.1
                      #f
                      unsafe-undefined
                      #t
                      serializable?12_0
                      to-correlated-linklet?13_0
                      exp-s_1
                      temp85_0))
                   (if (lifted-parsed-begin? exp-s_1)
                     (let ((temp90_0
                            (reverse$1
                             (let ((lst_0
                                    (let ((app_0
                                           (lifted-parsed-begin-seq exp-s_1)))
                                      (append
                                       app_0
                                       (list
                                        (lifted-parsed-begin-last exp-s_1))))))
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_1)
                                       (begin
                                         (if (pair? lst_1)
                                           (let ((e_0 (unsafe-car lst_1)))
                                             (let ((rest_0 (unsafe-cdr lst_1)))
                                               (let ((fold-var_1
                                                      (let ((fold-var_1
                                                             (cons
                                                              (loop_0 e_0)
                                                              fold-var_0)))
                                                        (values fold-var_1))))
                                                 (for-loop_0
                                                  fold-var_1
                                                  rest_0))))
                                           fold-var_0))))))
                                  (for-loop_0 null lst_0)))))))
                       (compiled-tops->compiled-top.1
                        #f
                        #f
                        to-correlated-linklet?13_0
                        temp90_0))
                     (let ((temp92_0
                            (make-compile-context.1
                             #f
                             unsafe-undefined
                             #f
                             ns17_0
                             unsafe-undefined
                             unsafe-undefined)))
                       (compile-top.1
                        serializable?12_0
                        #f
                        to-correlated-linklet?13_0
                        exp-s_1
                        temp92_0)))))))))
          (loop_0 exp-s_0)))))))
(define expand$1
  (let ((expand_0
         (|#%name|
          expand
          (lambda (s25_0
                   ns20_0
                   observable?21_0
                   to-parsed?22_0
                   serializable?23_0
                   to-correlated-linklet?24_0)
            (begin
              (let ((ns_0
                     (if (eq? ns20_0 unsafe-undefined)
                       (1/current-namespace)
                       ns20_0)))
                (let ((observer_0
                       (if observable?21_0 (current-expand-observe) #f)))
                  (begin
                    (if observer_0
                      (call-expand-observe observer_0 'start-top)
                      (void))
                    (with-continuation-mark*
                     authentic
                     parameterization-key
                     (extend-parameterization
                      (continuation-mark-set-first #f parameterization-key)
                      current-expand-observe
                      #f)
                     (let ((temp98_0
                            (lambda (s_0 ns_1 as-tail?_0)
                              (expand-single.1
                               serializable?23_0
                               to-correlated-linklet?24_0
                               s_0
                               ns_1
                               observer_0
                               to-parsed?22_0))))
                       (let ((re-pair100_0 re-pair))
                         (per-top-level.1
                          cons
                          #f
                          observer_0
                          #t
                          #f
                          temp98_0
                          re-pair100_0
                          s25_0
                          ns_0))))))))))))
    (|#%name|
     expand
     (case-lambda
      ((s_0) (begin (expand_0 s_0 unsafe-undefined #f #f #f #f)))
      ((s_0
        ns_0
        observable?_0
        to-parsed?_0
        serializable?_0
        to-correlated-linklet?24_0)
       (expand_0
        s_0
        ns_0
        observable?_0
        to-parsed?_0
        serializable?_0
        to-correlated-linklet?24_0))
      ((s_0 ns_0 observable?_0 to-parsed?_0 serializable?23_0)
       (expand_0 s_0 ns_0 observable?_0 to-parsed?_0 serializable?23_0 #f))
      ((s_0 ns_0 observable?_0 to-parsed?22_0)
       (expand_0 s_0 ns_0 observable?_0 to-parsed?22_0 #f #f))
      ((s_0 ns_0 observable?21_0) (expand_0 s_0 ns_0 observable?21_0 #f #f #f))
      ((s_0 ns20_0) (expand_0 s_0 ns20_0 #f #f #f #f))))))
(define expand-single.1
  (|#%name|
   expand-single
   (lambda (serializable?26_0
            to-correlated-linklet?27_0
            s30_0
            ns31_0
            observer32_0
            to-parsed?33_0)
     (begin
       (let ((rebuild-s_0 (keep-properties-only s30_0)))
         (let ((ctx_0
                (make-expand-context.1
                 serializable?26_0
                 observer32_0
                 #f
                 to-correlated-linklet?27_0
                 to-parsed?33_0
                 ns31_0)))
           (call-with-values
            (lambda () (expand-capturing-lifts s30_0 ctx_0))
            (case-lambda
             ((require-lifts_0 lifts_0 exp-s_0)
              (if (if (null? require-lifts_0) (null? lifts_0) #f)
                exp-s_0
                (if to-parsed?33_0
                  (let ((temp117_0
                         (lambda (form_0)
                           (expand-single.1
                            serializable?26_0
                            #f
                            form_0
                            ns31_0
                            observer32_0
                            to-parsed?33_0))))
                    (wrap-lifts-as-lifted-parsed-begin.1
                     temp117_0
                     require-lifts_0
                     lifts_0
                     exp-s_0
                     rebuild-s_0))
                  (let ((new-s_0
                         (let ((temp128_0
                                (append
                                 (map_1346 parsed-s require-lifts_0)
                                 lifts_0)))
                           (let ((temp130_0 (namespace-phase ns31_0)))
                             (let ((temp128_1 temp128_0))
                               (wrap-lifts-as-begin.1
                                unsafe-undefined
                                unsafe-undefined
                                temp128_1
                                exp-s_0
                                temp130_0))))))
                    (begin
                      (let ((obs_0
                             (begin-unsafe
                              (expand-context/inner-observer
                               (root-expand-context/outer-inner ctx_0)))))
                        (if obs_0
                          (call-expand-observe obs_0 'lift-loop new-s_0)
                          (void)))
                      (expand-single.1
                       serializable?26_0
                       #f
                       new-s_0
                       ns31_0
                       observer32_0
                       to-parsed?33_0))))))
             (args (raise-binding-result-arity-error 3 args))))))))))
(define expand-once$1
  (let ((expand-once_0
         (|#%name|
          expand-once
          (lambda (s36_0 ns35_0)
            (begin
              (let ((ns_0
                     (if (eq? ns35_0 unsafe-undefined)
                       (1/current-namespace)
                       ns35_0)))
                (let ((temp133_0
                       (lambda (s_0 ns_1 as-tail?_0)
                         (expand-single-once s_0 ns_1))))
                  (let ((re-pair135_0 re-pair))
                    (per-top-level.1
                     cons
                     #t
                     #f
                     #t
                     #f
                     temp133_0
                     re-pair135_0
                     s36_0
                     ns_0)))))))))
    (|#%name|
     expand-once
     (case-lambda
      ((s_0) (begin (expand-once_0 s_0 unsafe-undefined)))
      ((s_0 ns35_0) (expand-once_0 s_0 ns35_0))))))
(define expand-single-once
  (lambda (s_0 ns_0)
    (call-with-values
     (lambda ()
       (expand-capturing-lifts
        s_0
        (let ((v_0 (make-expand-context.1 #f #f #f #f #f ns_0)))
          (if (expand-context/outer? v_0)
            (let ((inner139_0
                   (let ((the-struct_0 (root-expand-context/outer-inner v_0)))
                     (if (expand-context/inner? the-struct_0)
                       (expand-context/inner2.1
                        (root-expand-context/inner-self-mpi the-struct_0)
                        (root-expand-context/inner-module-scopes the-struct_0)
                        (root-expand-context/inner-top-level-bind-scope
                         the-struct_0)
                        (root-expand-context/inner-all-scopes-stx the-struct_0)
                        (root-expand-context/inner-defined-syms the-struct_0)
                        (root-expand-context/inner-counter the-struct_0)
                        (root-expand-context/inner-lift-key the-struct_0)
                        (expand-context/inner-to-parsed? the-struct_0)
                        (expand-context/inner-phase the-struct_0)
                        (expand-context/inner-namespace the-struct_0)
                        #t
                        (expand-context/inner-module-begin-k the-struct_0)
                        (expand-context/inner-allow-unbound? the-struct_0)
                        (expand-context/inner-in-local-expand? the-struct_0)
                        (|expand-context/inner-keep-#%expression?|
                         the-struct_0)
                        (expand-context/inner-stops the-struct_0)
                        (expand-context/inner-declared-submodule-names
                         the-struct_0)
                        (expand-context/inner-lifts the-struct_0)
                        (expand-context/inner-lift-envs the-struct_0)
                        (expand-context/inner-module-lifts the-struct_0)
                        (expand-context/inner-require-lifts the-struct_0)
                        (expand-context/inner-to-module-lifts the-struct_0)
                        (expand-context/inner-requires+provides the-struct_0)
                        (expand-context/inner-observer the-struct_0)
                        (expand-context/inner-for-serializable? the-struct_0)
                        (expand-context/inner-to-correlated-linklet?
                         the-struct_0)
                        (expand-context/inner-normalize-locals? the-struct_0)
                        (expand-context/inner-parsing-expanded? the-struct_0)
                        (expand-context/inner-skip-visit-available?
                         the-struct_0))
                       (raise-argument-error
                        'struct-copy
                        "expand-context/inner?"
                        the-struct_0)))))
              (expand-context/outer1.1
               inner139_0
               (root-expand-context/outer-post-expansion v_0)
               (root-expand-context/outer-use-site-scopes v_0)
               (root-expand-context/outer-frame-id v_0)
               (expand-context/outer-context v_0)
               (expand-context/outer-env v_0)
               (expand-context/outer-scopes v_0)
               (expand-context/outer-def-ctx-scopes v_0)
               (expand-context/outer-binding-layer v_0)
               (expand-context/outer-reference-records v_0)
               (expand-context/outer-only-immediate? v_0)
               (expand-context/outer-need-eventually-defined v_0)
               (expand-context/outer-current-introduction-scopes v_0)
               (expand-context/outer-current-use-scopes v_0)
               (expand-context/outer-name v_0)))
            (raise-argument-error 'struct-copy "expand-context/outer?" v_0)))))
     (case-lambda
      ((require-lifts_0 lifts_0 exp-s_0)
       (if (if (null? require-lifts_0) (null? lifts_0) #f)
         exp-s_0
         (let ((temp141_0
                (append (map_1346 parsed-s require-lifts_0) lifts_0)))
           (let ((temp143_0 (namespace-phase ns_0)))
             (let ((temp141_1 temp141_0))
               (wrap-lifts-as-begin.1
                unsafe-undefined
                unsafe-undefined
                temp141_1
                exp-s_0
                temp143_0))))))
      (args (raise-binding-result-arity-error 3 args))))))
(define expand-to-top-form$1
  (let ((expand-to-top-form_0
         (|#%name|
          expand-to-top-form
          (lambda (s38_0 ns37_0)
            (begin
              (let ((ns_0
                     (if (eq? ns37_0 unsafe-undefined)
                       (1/current-namespace)
                       ns37_0)))
                (let ((observer_0 (current-expand-observe)))
                  (begin
                    (if observer_0
                      (call-expand-observe observer_0 'start-top)
                      (void))
                    (with-continuation-mark*
                     authentic
                     parameterization-key
                     (extend-parameterization
                      (continuation-mark-set-first #f parameterization-key)
                      current-expand-observe
                      #f)
                     (per-top-level.1
                      #f
                      #f
                      observer_0
                      #f
                      #f
                      #f
                      #f
                      s38_0
                      ns_0))))))))))
    (|#%name|
     expand-to-top-form
     (case-lambda
      ((s_0) (begin (expand-to-top-form_0 s_0 unsafe-undefined)))
      ((s_0 ns37_0) (expand-to-top-form_0 s_0 ns37_0))))))
(define per-top-level.1
  (|#%name|
   per-top-level
   (lambda (combine40_0
            just-once?42_0
            observer45_0
            quick-immediate?43_0
            serializable?44_0
            single39_0
            wrap41_0
            given-s53_0
            ns54_0)
     (begin
       (let ((s_0 (maybe-intro given-s53_0 ns54_0)))
         (let ((ctx_0 (make-expand-context.1 #f observer45_0 #f #f #f ns54_0)))
           (let ((phase_0 (namespace-phase ns54_0)))
             (letrec*
              ((loop_0
                (|#%name|
                 loop
                 (lambda (s_1 phase_1 ns_0 as-tail?_0)
                   (begin
                     (let ((tl-ctx_0
                            (if (expand-context/outer? ctx_0)
                              (let ((inner151_0
                                     (let ((the-struct_0
                                            (root-expand-context/outer-inner
                                             ctx_0)))
                                       (if (expand-context/inner? the-struct_0)
                                         (expand-context/inner2.1
                                          (root-expand-context/inner-self-mpi
                                           the-struct_0)
                                          (root-expand-context/inner-module-scopes
                                           the-struct_0)
                                          (root-expand-context/inner-top-level-bind-scope
                                           the-struct_0)
                                          (root-expand-context/inner-all-scopes-stx
                                           the-struct_0)
                                          (root-expand-context/inner-defined-syms
                                           the-struct_0)
                                          (root-expand-context/inner-counter
                                           the-struct_0)
                                          (root-expand-context/inner-lift-key
                                           the-struct_0)
                                          (expand-context/inner-to-parsed?
                                           the-struct_0)
                                          phase_1
                                          ns_0
                                          just-once?42_0
                                          (expand-context/inner-module-begin-k
                                           the-struct_0)
                                          (expand-context/inner-allow-unbound?
                                           the-struct_0)
                                          (expand-context/inner-in-local-expand?
                                           the-struct_0)
                                          (|expand-context/inner-keep-#%expression?|
                                           the-struct_0)
                                          (expand-context/inner-stops
                                           the-struct_0)
                                          (expand-context/inner-declared-submodule-names
                                           the-struct_0)
                                          (expand-context/inner-lifts
                                           the-struct_0)
                                          (expand-context/inner-lift-envs
                                           the-struct_0)
                                          (expand-context/inner-module-lifts
                                           the-struct_0)
                                          (expand-context/inner-require-lifts
                                           the-struct_0)
                                          (expand-context/inner-to-module-lifts
                                           the-struct_0)
                                          (expand-context/inner-requires+provides
                                           the-struct_0)
                                          (expand-context/inner-observer
                                           the-struct_0)
                                          serializable?44_0
                                          (expand-context/inner-to-correlated-linklet?
                                           the-struct_0)
                                          (expand-context/inner-normalize-locals?
                                           the-struct_0)
                                          (expand-context/inner-parsing-expanded?
                                           the-struct_0)
                                          (expand-context/inner-skip-visit-available?
                                           the-struct_0))
                                         (raise-argument-error
                                          'struct-copy
                                          "expand-context/inner?"
                                          the-struct_0)))))
                                (expand-context/outer1.1
                                 inner151_0
                                 (root-expand-context/outer-post-expansion
                                  ctx_0)
                                 (root-expand-context/outer-use-site-scopes
                                  ctx_0)
                                 (root-expand-context/outer-frame-id ctx_0)
                                 (expand-context/outer-context ctx_0)
                                 (expand-context/outer-env ctx_0)
                                 (expand-context/outer-scopes ctx_0)
                                 (expand-context/outer-def-ctx-scopes ctx_0)
                                 (expand-context/outer-binding-layer ctx_0)
                                 (expand-context/outer-reference-records ctx_0)
                                 (expand-context/outer-only-immediate? ctx_0)
                                 (expand-context/outer-need-eventually-defined
                                  ctx_0)
                                 (expand-context/outer-current-introduction-scopes
                                  ctx_0)
                                 (expand-context/outer-current-use-scopes
                                  ctx_0)
                                 (expand-context/outer-name ctx_0)))
                              (raise-argument-error
                               'struct-copy
                               "expand-context/outer?"
                               ctx_0))))
                       (let ((wb-s_0 (if just-once?42_0 s_1 #f)))
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     tl-ctx_0)))))
                             (if obs_0
                               (call-expand-observe obs_0 'visit s_1)
                               (void)))
                           (call-with-values
                            (lambda ()
                              (expand-capturing-lifts
                               s_1
                               (if (expand-context/outer? tl-ctx_0)
                                 (let ((inner157_0
                                        (let ((the-struct_0
                                               (root-expand-context/outer-inner
                                                tl-ctx_0)))
                                          (if (expand-context/inner?
                                               the-struct_0)
                                            (expand-context/inner2.1
                                             (root-expand-context/inner-self-mpi
                                              the-struct_0)
                                             (root-expand-context/inner-module-scopes
                                              the-struct_0)
                                             (root-expand-context/inner-top-level-bind-scope
                                              the-struct_0)
                                             (root-expand-context/inner-all-scopes-stx
                                              the-struct_0)
                                             (root-expand-context/inner-defined-syms
                                              the-struct_0)
                                             (root-expand-context/inner-counter
                                              the-struct_0)
                                             (root-expand-context/inner-lift-key
                                              the-struct_0)
                                             (expand-context/inner-to-parsed?
                                              the-struct_0)
                                             phase_1
                                             ns_0
                                             (expand-context/inner-just-once?
                                              the-struct_0)
                                             (expand-context/inner-module-begin-k
                                              the-struct_0)
                                             (expand-context/inner-allow-unbound?
                                              the-struct_0)
                                             (expand-context/inner-in-local-expand?
                                              the-struct_0)
                                             (|expand-context/inner-keep-#%expression?|
                                              the-struct_0)
                                             (expand-context/inner-stops
                                              the-struct_0)
                                             (expand-context/inner-declared-submodule-names
                                              the-struct_0)
                                             (expand-context/inner-lifts
                                              the-struct_0)
                                             (expand-context/inner-lift-envs
                                              the-struct_0)
                                             (expand-context/inner-module-lifts
                                              the-struct_0)
                                             (expand-context/inner-require-lifts
                                              the-struct_0)
                                             (expand-context/inner-to-module-lifts
                                              the-struct_0)
                                             (expand-context/inner-requires+provides
                                              the-struct_0)
                                             (expand-context/inner-observer
                                              the-struct_0)
                                             (expand-context/inner-for-serializable?
                                              the-struct_0)
                                             (expand-context/inner-to-correlated-linklet?
                                              the-struct_0)
                                             (expand-context/inner-normalize-locals?
                                              the-struct_0)
                                             (expand-context/inner-parsing-expanded?
                                              the-struct_0)
                                             (expand-context/inner-skip-visit-available?
                                              the-struct_0))
                                            (raise-argument-error
                                             'struct-copy
                                             "expand-context/inner?"
                                             the-struct_0)))))
                                   (expand-context/outer1.1
                                    inner157_0
                                    (root-expand-context/outer-post-expansion
                                     tl-ctx_0)
                                    (root-expand-context/outer-use-site-scopes
                                     tl-ctx_0)
                                    (root-expand-context/outer-frame-id
                                     tl-ctx_0)
                                    (expand-context/outer-context tl-ctx_0)
                                    (expand-context/outer-env tl-ctx_0)
                                    (expand-context/outer-scopes tl-ctx_0)
                                    (expand-context/outer-def-ctx-scopes
                                     tl-ctx_0)
                                    (expand-context/outer-binding-layer
                                     tl-ctx_0)
                                    (expand-context/outer-reference-records
                                     tl-ctx_0)
                                    #t
                                    (expand-context/outer-need-eventually-defined
                                     tl-ctx_0)
                                    (expand-context/outer-current-introduction-scopes
                                     tl-ctx_0)
                                    (expand-context/outer-current-use-scopes
                                     tl-ctx_0)
                                    (expand-context/outer-name tl-ctx_0)))
                                 (raise-argument-error
                                  'struct-copy
                                  "expand-context/outer?"
                                  tl-ctx_0))))
                            (case-lambda
                             ((require-lifts_0 lifts_0 exp-s_0)
                              (if (let ((or-part_0 (pair? require-lifts_0)))
                                    (if or-part_0 or-part_0 (pair? lifts_0)))
                                (let ((new-s_0
                                       (let ((temp160_0
                                              (append
                                               (map_1346
                                                parsed-s
                                                require-lifts_0)
                                               lifts_0)))
                                         (wrap-lifts-as-begin.1
                                          unsafe-undefined
                                          unsafe-undefined
                                          temp160_0
                                          exp-s_0
                                          phase_1))))
                                  (begin
                                    (let ((obs_0
                                           (begin-unsafe
                                            (expand-context/inner-observer
                                             (root-expand-context/outer-inner
                                              tl-ctx_0)))))
                                      (if obs_0
                                        (call-expand-observe
                                         obs_0
                                         'lift-loop
                                         new-s_0)
                                        (void)))
                                    (if just-once?42_0
                                      new-s_0
                                      (loop_0
                                       new-s_0
                                       phase_1
                                       ns_0
                                       as-tail?_0))))
                                (if (not single39_0)
                                  (begin
                                    (let ((obs_0
                                           (begin-unsafe
                                            (expand-context/inner-observer
                                             (root-expand-context/outer-inner
                                              tl-ctx_0)))))
                                      (if obs_0
                                        (call-expand-observe
                                         obs_0
                                         'return
                                         exp-s_0)
                                        (void)))
                                    exp-s_0)
                                  (if (if just-once?42_0
                                        (not (eq? exp-s_0 wb-s_0))
                                        #f)
                                    exp-s_0
                                    (let ((tmp_0
                                           (core-form-sym exp-s_0 phase_1)))
                                      (if (eq? tmp_0 'begin)
                                        (begin
                                          (let ((obs_0
                                                 (begin-unsafe
                                                  (expand-context/inner-observer
                                                   (root-expand-context/outer-inner
                                                    ctx_0)))))
                                            (if obs_0
                                              (call-expand-observe
                                               obs_0
                                               'prim-begin
                                               exp-s_0)
                                              (void)))
                                          (call-with-values
                                           (lambda ()
                                             (call-with-values
                                              (lambda ()
                                                (let ((s_2
                                                       (if (syntax?$1 exp-s_0)
                                                         (syntax-e$1 exp-s_0)
                                                         exp-s_0)))
                                                  (if (pair? s_2)
                                                    (let ((begin165_0
                                                           (let ((s_3
                                                                  (car s_2)))
                                                             s_3)))
                                                      (let ((e166_0
                                                             (let ((s_3
                                                                    (cdr s_2)))
                                                               (let ((s_4
                                                                      (if (syntax?$1
                                                                           s_3)
                                                                        (syntax-e$1
                                                                         s_3)
                                                                        s_3)))
                                                                 (let ((flat-s_0
                                                                        (to-syntax-list.1
                                                                         s_4)))
                                                                   (if (not
                                                                        flat-s_0)
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      exp-s_0)
                                                                     flat-s_0))))))
                                                        (let ((begin165_1
                                                               begin165_0))
                                                          (values
                                                           begin165_1
                                                           e166_0))))
                                                    (raise-syntax-error$1
                                                     #f
                                                     "bad syntax"
                                                     exp-s_0))))
                                              (case-lambda
                                               ((begin163_0 e164_0)
                                                (values #t begin163_0 e164_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                           (case-lambda
                                            ((ok?_0 begin163_0 e164_0)
                                             (letrec*
                                              ((begin-loop_0
                                                (|#%name|
                                                 begin-loop
                                                 (lambda (es_0)
                                                   (begin
                                                     (if (null? es_0)
                                                       (if combine40_0
                                                         null
                                                         (void))
                                                       (if (if (not
                                                                combine40_0)
                                                             (null? (cdr es_0))
                                                             #f)
                                                         (loop_0
                                                          (car es_0)
                                                          phase_1
                                                          ns_0
                                                          as-tail?_0)
                                                         (begin
                                                           (let ((obs_0
                                                                  (begin-unsafe
                                                                   (expand-context/inner-observer
                                                                    (root-expand-context/outer-inner
                                                                     tl-ctx_0)))))
                                                             (if obs_0
                                                               (call-expand-observe
                                                                obs_0
                                                                'next)
                                                               (void)))
                                                           (let ((a_0
                                                                  (if combine40_0
                                                                    (loop_0
                                                                     (car es_0)
                                                                     phase_1
                                                                     ns_0
                                                                     #f)
                                                                    (begin
                                                                      (loop_0
                                                                       (car
                                                                        es_0)
                                                                       phase_1
                                                                       ns_0
                                                                       #f)
                                                                      (void)))))
                                                             (if combine40_0
                                                               (|#%app|
                                                                combine40_0
                                                                a_0
                                                                (begin-loop_0
                                                                 (cdr es_0)))
                                                               (begin-loop_0
                                                                (cdr
                                                                 es_0))))))))))))
                                              (if wrap41_0
                                                (let ((new-s_0
                                                       (|#%app|
                                                        wrap41_0
                                                        begin163_0
                                                        exp-s_0
                                                        (begin-loop_0
                                                         e164_0))))
                                                  (begin
                                                    (let ((obs_0
                                                           (begin-unsafe
                                                            (expand-context/inner-observer
                                                             (root-expand-context/outer-inner
                                                              tl-ctx_0)))))
                                                      (if obs_0
                                                        (call-expand-observe
                                                         obs_0
                                                         'return
                                                         new-s_0)
                                                        (void)))
                                                    new-s_0))
                                                (begin-loop_0 e164_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              3
                                              args)))))
                                        (if (eq? tmp_0 'begin-for-syntax)
                                          (begin
                                            (let ((obs_0
                                                   (begin-unsafe
                                                    (expand-context/inner-observer
                                                     (root-expand-context/outer-inner
                                                      tl-ctx_0)))))
                                              (if obs_0
                                                (call-expand-observe
                                                 obs_0
                                                 'prim-begin-for-syntax
                                                 exp-s_0)
                                                (void)))
                                            (call-with-values
                                             (lambda ()
                                               (call-with-values
                                                (lambda ()
                                                  (let ((s_2
                                                         (if (syntax?$1
                                                              exp-s_0)
                                                           (syntax-e$1 exp-s_0)
                                                           exp-s_0)))
                                                    (if (pair? s_2)
                                                      (let ((begin-for-syntax169_0
                                                             (let ((s_3
                                                                    (car s_2)))
                                                               s_3)))
                                                        (let ((e170_0
                                                               (let ((s_3
                                                                      (cdr
                                                                       s_2)))
                                                                 (let ((s_4
                                                                        (if (syntax?$1
                                                                             s_3)
                                                                          (syntax-e$1
                                                                           s_3)
                                                                          s_3)))
                                                                   (let ((flat-s_0
                                                                          (to-syntax-list.1
                                                                           s_4)))
                                                                     (if (not
                                                                          flat-s_0)
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        exp-s_0)
                                                                       flat-s_0))))))
                                                          (let ((begin-for-syntax169_1
                                                                 begin-for-syntax169_0))
                                                            (values
                                                             begin-for-syntax169_1
                                                             e170_0))))
                                                      (raise-syntax-error$1
                                                       #f
                                                       "bad syntax"
                                                       exp-s_0))))
                                                (case-lambda
                                                 ((begin-for-syntax167_0
                                                   e168_0)
                                                  (values
                                                   #t
                                                   begin-for-syntax167_0
                                                   e168_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args)))))
                                             (case-lambda
                                              ((ok?_0
                                                begin-for-syntax167_0
                                                e168_0)
                                               (let ((next-phase_0
                                                      (add1 phase_1)))
                                                 (let ((next-ns_0
                                                        (namespace->namespace-at-phase
                                                         ns_0
                                                         next-phase_0)))
                                                   (begin
                                                     (let ((obs_0
                                                            (begin-unsafe
                                                             (expand-context/inner-observer
                                                              (root-expand-context/outer-inner
                                                               tl-ctx_0)))))
                                                       (if obs_0
                                                         (call-expand-observe
                                                          obs_0
                                                          'prepare-env)
                                                         (void)))
                                                     (begin
                                                       (if quick-immediate?43_0
                                                         (namespace-visit-available-modules!
                                                          ns_0)
                                                         (void))
                                                       (begin
                                                         (namespace-visit-available-modules!
                                                          next-ns_0)
                                                         (let ((l_0
                                                                (reverse$1
                                                                 (begin
                                                                   (letrec*
                                                                    ((for-loop_0
                                                                      (|#%name|
                                                                       for-loop
                                                                       (lambda (fold-var_0
                                                                                lst_0)
                                                                         (begin
                                                                           (if (pair?
                                                                                lst_0)
                                                                             (let ((s_2
                                                                                    (unsafe-car
                                                                                     lst_0)))
                                                                               (let ((rest_0
                                                                                      (unsafe-cdr
                                                                                       lst_0)))
                                                                                 (let ((fold-var_1
                                                                                        (let ((fold-var_1
                                                                                               (cons
                                                                                                (begin
                                                                                                  (let ((obs_0
                                                                                                         (begin-unsafe
                                                                                                          (expand-context/inner-observer
                                                                                                           (root-expand-context/outer-inner
                                                                                                            tl-ctx_0)))))
                                                                                                    (if obs_0
                                                                                                      (call-expand-observe
                                                                                                       obs_0
                                                                                                       'next)
                                                                                                      (void)))
                                                                                                  (loop_0
                                                                                                   s_2
                                                                                                   next-phase_0
                                                                                                   next-ns_0
                                                                                                   #f))
                                                                                                fold-var_0)))
                                                                                          (values
                                                                                           fold-var_1))))
                                                                                   (for-loop_0
                                                                                    fold-var_1
                                                                                    rest_0))))
                                                                             fold-var_0))))))
                                                                    (for-loop_0
                                                                     null
                                                                     e168_0))))))
                                                           (if wrap41_0
                                                             (let ((new-s_0
                                                                    (|#%app|
                                                                     wrap41_0
                                                                     begin-for-syntax167_0
                                                                     exp-s_0
                                                                     l_0)))
                                                               (begin
                                                                 (let ((obs_0
                                                                        (begin-unsafe
                                                                         (expand-context/inner-observer
                                                                          (root-expand-context/outer-inner
                                                                           tl-ctx_0)))))
                                                                   (if obs_0
                                                                     (call-expand-observe
                                                                      obs_0
                                                                      'return
                                                                      new-s_0)
                                                                     (void)))
                                                                 new-s_0))
                                                             (if combine40_0
                                                               (apply
                                                                append
                                                                l_0)
                                                               (void))))))))))
                                              (args
                                               (raise-binding-result-arity-error
                                                3
                                                args)))))
                                          (|#%app|
                                           single39_0
                                           exp-s_0
                                           ns_0
                                           as-tail?_0))))))))
                             (args
                              (raise-binding-result-arity-error
                               3
                               args))))))))))))
              (loop_0 s_0 phase_0 ns54_0 #t)))))))))
(define maybe-intro
  (lambda (s_0 ns_0)
    (if (syntax?$1 s_0)
      s_0
      (1/namespace-syntax-introduce (1/datum->syntax #f s_0) ns_0))))
(define re-pair
  (lambda (form-id_0 s_0 r_0)
    (1/datum->syntax s_0 (cons form-id_0 r_0) s_0 s_0)))
(define expand-capturing-lifts
  (lambda (s_0 ctx_0)
    (begin
      (if log-performance? (start-performance-region 'expand 'top) (void))
      (begin0
        (let ((ns_0
               (begin-unsafe
                (expand-context/inner-namespace
                 (root-expand-context/outer-inner ctx_0)))))
          (begin
            (namespace-visit-available-modules! ns_0)
            (let ((lift-ctx_0
                   (let ((temp171_0 (make-top-level-lift ctx_0)))
                     (make-lift-context.1 #f temp171_0))))
              (let ((require-lift-ctx_0
                     (make-require-lift-context
                      (namespace-phase ns_0)
                      (make-parse-top-lifted-require ns_0 ctx_0))))
                (let ((exp-s_0
                       (let ((temp173_0
                              (if (expand-context/outer? ctx_0)
                                (let ((inner174_0
                                       (let ((the-struct_0
                                              (root-expand-context/outer-inner
                                               ctx_0)))
                                         (if (expand-context/inner?
                                              the-struct_0)
                                           (expand-context/inner2.1
                                            (root-expand-context/inner-self-mpi
                                             the-struct_0)
                                            (root-expand-context/inner-module-scopes
                                             the-struct_0)
                                            (root-expand-context/inner-top-level-bind-scope
                                             the-struct_0)
                                            (root-expand-context/inner-all-scopes-stx
                                             the-struct_0)
                                            (root-expand-context/inner-defined-syms
                                             the-struct_0)
                                            (root-expand-context/inner-counter
                                             the-struct_0)
                                            (root-expand-context/inner-lift-key
                                             the-struct_0)
                                            (expand-context/inner-to-parsed?
                                             the-struct_0)
                                            (expand-context/inner-phase
                                             the-struct_0)
                                            (expand-context/inner-namespace
                                             the-struct_0)
                                            (expand-context/inner-just-once?
                                             the-struct_0)
                                            (expand-context/inner-module-begin-k
                                             the-struct_0)
                                            (expand-context/inner-allow-unbound?
                                             the-struct_0)
                                            (expand-context/inner-in-local-expand?
                                             the-struct_0)
                                            (|expand-context/inner-keep-#%expression?|
                                             the-struct_0)
                                            (expand-context/inner-stops
                                             the-struct_0)
                                            (expand-context/inner-declared-submodule-names
                                             the-struct_0)
                                            lift-ctx_0
                                            (expand-context/inner-lift-envs
                                             the-struct_0)
                                            lift-ctx_0
                                            require-lift-ctx_0
                                            (expand-context/inner-to-module-lifts
                                             the-struct_0)
                                            (expand-context/inner-requires+provides
                                             the-struct_0)
                                            (expand-context/inner-observer
                                             the-struct_0)
                                            (expand-context/inner-for-serializable?
                                             the-struct_0)
                                            (expand-context/inner-to-correlated-linklet?
                                             the-struct_0)
                                            (expand-context/inner-normalize-locals?
                                             the-struct_0)
                                            (expand-context/inner-parsing-expanded?
                                             the-struct_0)
                                            (expand-context/inner-skip-visit-available?
                                             the-struct_0))
                                           (raise-argument-error
                                            'struct-copy
                                            "expand-context/inner?"
                                            the-struct_0)))))
                                  (expand-context/outer1.1
                                   inner174_0
                                   (root-expand-context/outer-post-expansion
                                    ctx_0)
                                   (root-expand-context/outer-use-site-scopes
                                    ctx_0)
                                   (root-expand-context/outer-frame-id ctx_0)
                                   (expand-context/outer-context ctx_0)
                                   (expand-context/outer-env ctx_0)
                                   (expand-context/outer-scopes ctx_0)
                                   (expand-context/outer-def-ctx-scopes ctx_0)
                                   (expand-context/outer-binding-layer ctx_0)
                                   (expand-context/outer-reference-records
                                    ctx_0)
                                   (expand-context/outer-only-immediate? ctx_0)
                                   (expand-context/outer-need-eventually-defined
                                    ctx_0)
                                   (expand-context/outer-current-introduction-scopes
                                    ctx_0)
                                   (expand-context/outer-current-use-scopes
                                    ctx_0)
                                   (expand-context/outer-name ctx_0)))
                                (raise-argument-error
                                 'struct-copy
                                 "expand-context/outer?"
                                 ctx_0))))
                         (expand.1 #f #f s_0 temp173_0))))
                  (let ((app_0
                         (begin-unsafe
                          (box-clear!
                           (require-lift-context-requires
                            require-lift-ctx_0)))))
                    (values
                     app_0
                     (begin-unsafe
                      (box-clear! (lift-context-lifts lift-ctx_0)))
                     exp-s_0)))))))
        (if log-performance? (end-performance-region) (void))))))
(define make-parse-top-lifted-require
  (lambda (ns_0 ctx_0)
    (lambda (s_0 phase_0)
      (call-with-values
       (lambda ()
         (call-with-values
          (lambda ()
            (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
              (if (pair? s_1)
                (let ((|#%require180_0| (let ((s_2 (car s_1))) s_2)))
                  (let ((req181_0
                         (let ((s_2 (cdr s_1)))
                           (let ((s_3
                                  (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                             (if (pair? s_3)
                               (let ((req182_0 (let ((s_4 (car s_3))) s_4)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((s_4 (cdr s_3)))
                                      (let ((s_5
                                             (if (syntax?$1 s_4)
                                               (syntax-e$1 s_4)
                                               s_4)))
                                        (if (null? s_5)
                                          (values)
                                          (raise-syntax-error$1
                                           #f
                                           "bad syntax"
                                           s_0)))))
                                  (case-lambda
                                   (()
                                    (let ((req182_1 req182_0))
                                      (values req182_1)))
                                   (args
                                    (raise-binding-result-arity-error
                                     0
                                     args)))))
                               (raise-syntax-error$1 #f "bad syntax" s_0))))))
                    (let ((|#%require180_1| |#%require180_0|))
                      (values |#%require180_1| req181_0))))
                (raise-syntax-error$1 #f "bad syntax" s_0))))
          (case-lambda
           ((|#%require178_0| req179_0) (values #t |#%require178_0| req179_0))
           (args (raise-binding-result-arity-error 2 args)))))
       (case-lambda
        ((ok?_0 |#%require178_0| req179_0)
         (let ((syms_0 (box null)))
           (begin
             (let ((temp183_0 (list req179_0)))
               (let ((temp188_0
                      (make-requires+provides.1 #f unsafe-undefined #f)))
                 (let ((temp189_0
                        (make-top-add-defined-portal ns_0 ctx_0 syms_0)))
                   (let ((temp188_1 temp188_0) (temp183_1 temp183_0))
                     (parse-and-perform-requires!.1
                      temp189_0
                      #f
                      #f
                      #f
                      hash2610
                      #f
                      phase_0
                      #f
                      #f
                      #f
                      #t
                      'require
                      temp183_1
                      s_0
                      ns_0
                      phase_0
                      temp188_1)))))
             (parsed-require23.1 s_0 (reverse$1 (unbox syms_0))))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define wrap-lifts-as-lifted-parsed-begin.1
  (|#%name|
   wrap-lifts-as-lifted-parsed-begin
   (lambda (adjust-form56_0
            require-lifts58_0
            lifts59_0
            exp-s60_0
            rebuild-s61_0)
     (begin
       (lifted-parsed-begin11.1
        (append
         require-lifts58_0
         (reverse$1
          (let ((lst_0 (get-lifts-as-lists lifts59_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((ids+syms+rhs_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (let ((fold-var_1
                                   (let ((fold-var_1
                                          (cons
                                           (let ((exp-rhs_0
                                                  (|#%app|
                                                   adjust-form56_0
                                                   (caddr ids+syms+rhs_0))))
                                             (let ((just-rhs_0
                                                    (if (lifted-parsed-begin?
                                                         exp-rhs_0)
                                                      (lifted-parsed-begin-last
                                                       exp-rhs_0)
                                                      exp-rhs_0)))
                                               (let ((dv_0
                                                      (let ((app_0
                                                             (car
                                                              ids+syms+rhs_0)))
                                                        (parsed-define-values19.1
                                                         rebuild-s61_0
                                                         app_0
                                                         (cadr ids+syms+rhs_0)
                                                         just-rhs_0))))
                                                 (if (lifted-parsed-begin?
                                                      exp-rhs_0)
                                                   (if (lifted-parsed-begin?
                                                        exp-rhs_0)
                                                     (lifted-parsed-begin11.1
                                                      (lifted-parsed-begin-seq
                                                       exp-rhs_0)
                                                      dv_0)
                                                     (raise-argument-error
                                                      'struct-copy
                                                      "lifted-parsed-begin?"
                                                      exp-rhs_0))
                                                   dv_0))))
                                           fold-var_0)))
                                     (values fold-var_1))))
                              (for-loop_0 fold-var_1 rest_0))))
                        fold-var_0))))))
               (for-loop_0 null lst_0))))))
        exp-s60_0)))))
(define replace-me
  (lambda (who_0) (lambda args_0 (error who_0 "this stub must be replaced"))))
(define 1/current-eval
  (make-parameter
   (replace-me 'current-eval)
   (lambda (p_0)
     (begin
       (if (if (procedure? p_0) (procedure-arity-includes? p_0 1) #f)
         (void)
         (raise-argument-error
          'current-eval
          "(procedure-arity-includes/c 1)"
          p_0))
       p_0))
   'current-eval))
(define 1/current-compile
  (make-parameter
   (replace-me 'current-compile)
   (lambda (p_0)
     (begin
       (if (if (procedure? p_0) (procedure-arity-includes? p_0 2) #f)
         (void)
         (raise-argument-error
          'current-compile
          "(procedure-arity-includes/c 2)"
          p_0))
       p_0))
   'current-compile))
(define 1/current-load
  (make-parameter
   (replace-me 'current-load)
   (lambda (p_0)
     (begin
       (if (if (procedure? p_0) (procedure-arity-includes? p_0 2) #f)
         (void)
         (raise-argument-error
          'current-load
          "(procedure-arity-includes/c 2)"
          p_0))
       p_0))
   'current-load))
(define 1/current-load/use-compiled
  (make-parameter
   (replace-me 'current-load/use-compiled)
   (lambda (p_0)
     (begin
       (if (if (procedure? p_0) (procedure-arity-includes? p_0 2) #f)
         (void)
         (raise-argument-error
          'current-load/use-compiled
          "(procedure-arity-includes/c 2)"
          p_0))
       p_0))
   'current-load/use-compiled))
(define 1/current-library-collection-paths
  (make-parameter
   null
   (lambda (l_0)
     (begin
       (if (if (list? l_0) (andmap_2344 complete-path-string? l_0) #f)
         (void)
         (raise-argument-error
          'current-library-collection-paths
          "(listof (and/c path-string? complete-path?))"
          l_0))
       (map_1346 to-path l_0)))
   'current-library-collection-paths))
(define 1/current-library-collection-links
  (make-parameter
   null
   (lambda (l_0)
     (begin
       (if (if (list? l_0)
             (andmap_2344
              (lambda (p_0)
                (let ((or-part_0 (not p_0)))
                  (if or-part_0
                    or-part_0
                    (let ((or-part_1 (complete-path-string? p_0)))
                      (if or-part_1
                        or-part_1
                        (if (hash? p_0)
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (result_0 i_0)
                                  (begin
                                    (if i_0
                                      (call-with-values
                                       (lambda ()
                                         (hash-iterate-key+value p_0 i_0))
                                       (case-lambda
                                        ((k_0 v_0)
                                         (let ((result_1
                                                (let ((result_1
                                                       (if (let ((or-part_2
                                                                  (not k_0)))
                                                             (if or-part_2
                                                               or-part_2
                                                               (if (symbol?
                                                                    k_0)
                                                                 (1/module-path?
                                                                  k_0)
                                                                 #f)))
                                                         (if (list? v_0)
                                                           (andmap_2344
                                                            complete-path-string?
                                                            v_0)
                                                           #f)
                                                         #f)))
                                                  (values result_1))))
                                           (if (if (not
                                                    (let ((x_0 (list k_0 v_0)))
                                                      (not result_1)))
                                                 #t
                                                 #f)
                                             (for-loop_0
                                              result_1
                                              (hash-iterate-next p_0 i_0))
                                             result_1)))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      result_0))))))
                             (for-loop_0 #t (hash-iterate-first p_0))))
                          #f))))))
              l_0)
             #f)
         (void)
         (raise-argument-error
          'current-library-collection-links
          (string-append
           "(listof (or/c #f\n"
           "              (and/c path-string? complete-path?)\n"
           "              (hash/c (or/c (and/c symbol? module-path?) #f)\n"
           "                      (listof (and/c path-string? complete-path?)))))")
          l_0))
       (map_1346
        (lambda (p_0)
          (if (not p_0)
            #f
            (if (path? p_0)
              p_0
              (if (string? p_0)
                (string->path p_0)
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (table_0 i_0)
                        (begin
                          (if i_0
                            (call-with-values
                             (lambda () (hash-iterate-key+value p_0 i_0))
                             (case-lambda
                              ((k_0 v_0)
                               (let ((table_1
                                      (let ((table_1
                                             (call-with-values
                                              (lambda ()
                                                (values k_0 (to-path v_0)))
                                              (case-lambda
                                               ((key_0 val_0)
                                                (hash-set table_0 key_0 val_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))))
                                        (values table_1))))
                                 (for-loop_0
                                  table_1
                                  (hash-iterate-next p_0 i_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            table_0))))))
                   (for-loop_0 hash2725 (hash-iterate-first p_0))))))))
        l_0)))
   'current-library-collection-links))
(define 1/use-compiled-file-paths
  (make-parameter
   (list (string->path "compiled"))
   (lambda (l_0)
     (begin
       (if (if (list? l_0) (andmap_2344 relative-path-string?$1 l_0) #f)
         (void)
         (raise-argument-error
          'use-compiled-file-paths
          "(listof (and/c path-string? relative-path?))"
          l_0))
       (map_1346 to-path l_0)))
   'use-compiled-file-paths))
(define 1/current-compiled-file-roots
  (make-parameter
   '(same)
   (lambda (l_0)
     (begin
       (if (if (list? l_0)
             (andmap_2344
              (lambda (p_0)
                (let ((or-part_0 (path-string? p_0)))
                  (if or-part_0 or-part_0 (eq? p_0 'same))))
              l_0)
             #f)
         (void)
         (raise-argument-error
          'current-compiled-file-roots
          "(listof (or/c path-string? 'same))"
          l_0))
       (map_1346 to-path l_0)))
   'current-compiled-file-roots))
(define 1/use-compiled-file-check
  (make-parameter
   'modify-seconds
   (lambda (v_0)
     (begin
       (if (let ((or-part_0 (eq? v_0 'modify-seconds)))
             (if or-part_0 or-part_0 (eq? v_0 'exists)))
         (void)
         (raise-argument-error
          'use-compiled-file-check
          "(or/c 'modify-seconds 'exists)"
          v_0))
       v_0))
   'use-compiled-file-check))
(define 1/use-collection-link-paths
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'use-collection-link-paths))
(define 1/use-user-specific-search-paths
  (make-parameter
   #t
   (lambda (v_0) (if v_0 #t #f))
   'use-user-specific-search-paths))
(define complete-path-string?
  (lambda (p_0) (if (path-string? p_0) (complete-path? p_0) #f)))
(define relative-path-string?$1
  (|#%name|
   relative-path-string?
   (lambda (p_0) (begin (if (path-string? p_0) (relative-path? p_0) #f)))))
(define to-path (lambda (p_0) (if (string? p_0) (string->path p_0) p_0)))
(define eval$1
  (|#%name|
   eval
   (case-lambda
    ((s_0)
     (begin (let ((app_0 (1/current-eval))) (|#%app| app_0 (intro s_0)))))
    ((s_0 ns_0)
     (begin
       (if (1/namespace? ns_0)
         (void)
         (raise-argument-error 'eval "namespace?" ns_0))
       (with-continuation-mark*
        authentic
        parameterization-key
        (extend-parameterization
         (continuation-mark-set-first #f parameterization-key)
         1/current-namespace
         ns_0)
        (let ((app_0 (1/current-eval))) (|#%app| app_0 (intro s_0 ns_0)))))))))
(define 1/eval-syntax
  (|#%name|
   eval-syntax
   (case-lambda
    ((s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'eval-syntax "syntax?" s_0))
         (|#%app| (1/current-eval) s_0))))
    ((s_0 ns_0)
     (begin
       (if (syntax?$1 s_0)
         (void)
         (raise-argument-error 'eval-syntax "syntax?" s_0))
       (if (1/namespace? ns_0)
         (void)
         (raise-argument-error 'eval-syntax "namespace?" ns_0))
       (with-continuation-mark*
        authentic
        parameterization-key
        (extend-parameterization
         (continuation-mark-set-first #f parameterization-key)
         1/current-namespace
         ns_0)
        (|#%app| (1/current-eval) s_0)))))))
(define compile$1
  (|#%name|
   compile
   (lambda (s_0)
     (begin
       (let ((app_0 (1/current-compile))) (|#%app| app_0 (intro s_0) #f))))))
(define 1/compile-syntax
  (|#%name|
   compile-syntax
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'compile-syntax "syntax?" s_0))
         (|#%app| (1/current-compile) s_0 #f))))))
(define 1/expand
  (let ((expand_0
         (|#%name|
          expand
          (lambda (s2_0 insp1_0)
            (begin
              (let ((insp_0
                     (if (eq? insp1_0 unsafe-undefined)
                       (current-code-inspector)
                       insp1_0)))
                (begin
                  (if (inspector? insp_0)
                    (void)
                    (raise-argument-error 'expand "inspector?" insp_0))
                  (maybe-taint-expanded
                   insp_0
                   (let ((app_0 (intro s2_0)))
                     (expand$1 app_0 (1/current-namespace) #t))))))))))
    (|#%name|
     expand
     (case-lambda
      ((s_0) (begin (expand_0 s_0 unsafe-undefined)))
      ((s_0 insp1_0) (expand_0 s_0 insp1_0))))))
(define 1/expand-syntax
  (let ((expand-syntax_0
         (|#%name|
          expand-syntax
          (lambda (s4_0 insp3_0)
            (begin
              (let ((insp_0
                     (if (eq? insp3_0 unsafe-undefined)
                       (current-code-inspector)
                       insp3_0)))
                (begin
                  (if (syntax?$1 s4_0)
                    (void)
                    (raise-argument-error 'expand-syntax "syntax?" s4_0))
                  (if (inspector? insp_0)
                    (void)
                    (raise-argument-error 'expand-syntax "inspector?" insp_0))
                  (maybe-taint-expanded
                   insp_0
                   (expand$1 s4_0 (1/current-namespace) #t)))))))))
    (|#%name|
     expand-syntax
     (case-lambda
      ((s_0) (begin (expand-syntax_0 s_0 unsafe-undefined)))
      ((s_0 insp3_0) (expand-syntax_0 s_0 insp3_0))))))
(define 1/expand-once
  (let ((expand-once_0
         (|#%name|
          expand-once
          (lambda (s6_0 insp5_0)
            (begin
              (let ((insp_0
                     (if (eq? insp5_0 unsafe-undefined)
                       (current-code-inspector)
                       insp5_0)))
                (begin
                  (if (inspector? insp_0)
                    (void)
                    (raise-argument-error 'expand-once "inspector?" insp_0))
                  (maybe-taint-expanded
                   insp_0
                   (expand-once$1 (intro s6_0))))))))))
    (|#%name|
     expand-once
     (case-lambda
      ((s_0) (begin (expand-once_0 s_0 unsafe-undefined)))
      ((s_0 insp5_0) (expand-once_0 s_0 insp5_0))))))
(define 1/expand-syntax-once
  (let ((expand-syntax-once_0
         (|#%name|
          expand-syntax-once
          (lambda (s8_0 insp7_0)
            (begin
              (let ((insp_0
                     (if (eq? insp7_0 unsafe-undefined)
                       (current-code-inspector)
                       insp7_0)))
                (begin
                  (if (syntax?$1 s8_0)
                    (void)
                    (raise-argument-error 'expand-syntax-once "syntax?" s8_0))
                  (if (inspector? insp_0)
                    (void)
                    (raise-argument-error
                     'expand-syntax-once
                     "inspector?"
                     insp_0))
                  (maybe-taint-expanded insp_0 (expand-once$1 s8_0)))))))))
    (|#%name|
     expand-syntax-once
     (case-lambda
      ((s_0) (begin (expand-syntax-once_0 s_0 unsafe-undefined)))
      ((s_0 insp7_0) (expand-syntax-once_0 s_0 insp7_0))))))
(define 1/expand-to-top-form
  (let ((expand-to-top-form_0
         (|#%name|
          expand-to-top-form
          (lambda (s10_0 insp9_0)
            (begin
              (let ((insp_0
                     (if (eq? insp9_0 unsafe-undefined)
                       (current-code-inspector)
                       insp9_0)))
                (begin
                  (if (inspector? insp_0)
                    (void)
                    (raise-argument-error
                     'expand-to-top-form
                     "inspector?"
                     insp_0))
                  (maybe-taint-expanded
                   insp_0
                   (expand-to-top-form$1 (intro s10_0))))))))))
    (|#%name|
     expand-to-top-form
     (case-lambda
      ((s_0) (begin (expand-to-top-form_0 s_0 unsafe-undefined)))
      ((s_0 insp9_0) (expand-to-top-form_0 s_0 insp9_0))))))
(define 1/expand-syntax-to-top-form
  (let ((expand-syntax-to-top-form_0
         (|#%name|
          expand-syntax-to-top-form
          (lambda (s12_0 insp11_0)
            (begin
              (let ((insp_0
                     (if (eq? insp11_0 unsafe-undefined)
                       (current-code-inspector)
                       insp11_0)))
                (begin
                  (if (syntax?$1 s12_0)
                    (void)
                    (raise-argument-error
                     'expand-syntax-to-top-form
                     "syntax?"
                     s12_0))
                  (if (inspector? insp_0)
                    (void)
                    (raise-argument-error
                     'expand-syntax-to-top-form
                     "inspector?"
                     insp_0))
                  (maybe-taint-expanded
                   insp_0
                   (expand-to-top-form$1 s12_0)))))))))
    (|#%name|
     expand-syntax-to-top-form
     (case-lambda
      ((s_0) (begin (expand-syntax-to-top-form_0 s_0 unsafe-undefined)))
      ((s_0 insp11_0) (expand-syntax-to-top-form_0 s_0 insp11_0))))))
(define intro
  (let ((intro_0
         (|#%name|
          intro
          (lambda (given-s14_0 ns13_0)
            (begin
              (let ((ns_0
                     (if (eq? ns13_0 unsafe-undefined)
                       (1/current-namespace)
                       ns13_0)))
                (let ((s_0
                       (if (syntax?$1 given-s14_0)
                         given-s14_0
                         (1/datum->syntax #f given-s14_0))))
                  (1/namespace-syntax-introduce s_0 ns_0))))))))
    (case-lambda
     ((given-s_0) (intro_0 given-s_0 unsafe-undefined))
     ((given-s_0 ns13_0) (intro_0 given-s_0 ns13_0)))))
(define maybe-taint-expanded
  (lambda (insp_0 s_0)
    (if (eq? insp_0 initial-code-inspector) s_0 (syntax-taint$1 s_0))))
(define do-dynamic-require
  (let ((do-dynamic-require_0
         (|#%name|
          do-dynamic-require
          (lambda (who2_0 mod-path3_0 sym4_0 fail-k1_0)
            (begin
              (let ((fail-k_0
                     (if (eq? fail-k1_0 unsafe-undefined)
                       default-dynamic-require-fail-thunk
                       fail-k1_0)))
                (begin
                  (if (let ((or-part_0 (1/module-path? mod-path3_0)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (1/module-path-index? mod-path3_0)))
                            (if or-part_1
                              or-part_1
                              (1/resolved-module-path? mod-path3_0)))))
                    (void)
                    (raise-argument-error
                     who2_0
                     "(or/c module-path? module-path-index? resolved-module-path?)"
                     mod-path3_0))
                  (begin
                    (if (let ((or-part_0 (symbol? sym4_0)))
                          (if or-part_0
                            or-part_0
                            (let ((or-part_1 (not sym4_0)))
                              (if or-part_1
                                or-part_1
                                (let ((or-part_2 (eq? sym4_0 0)))
                                  (if or-part_2 or-part_2 (void? sym4_0)))))))
                      (void)
                      (raise-argument-error
                       who2_0
                       "(or/c symbol? #f 0 void?)"
                       sym4_0))
                    (begin
                      (if (if (procedure? fail-k_0)
                            (procedure-arity-includes? fail-k_0 0)
                            #f)
                        (void)
                        (raise-argument-error who2_0 "(-> any)" fail-k_0))
                      (let ((ns_0 (1/current-namespace)))
                        (let ((mpi_0
                               (if (1/module-path? mod-path3_0)
                                 (1/module-path-index-join mod-path3_0 #f)
                                 (if (1/module-path-index? mod-path3_0)
                                   mod-path3_0
                                   (1/module-path-index-join
                                    (resolved-module-path->module-path
                                     mod-path3_0)
                                    #f)))))
                          (let ((mod-name_0
                                 (1/module-path-index-resolve mpi_0 #t)))
                            (let ((phase_0 (namespace-phase ns_0)))
                              (if (not sym4_0)
                                (namespace-module-instantiate!.1
                                 #f
                                 #f
                                 phase_0
                                 hash2610
                                 null
                                 #f
                                 #f
                                 ns_0
                                 mpi_0
                                 phase_0)
                                (if (eq? sym4_0 0)
                                  (namespace-module-instantiate!.1
                                   #f
                                   #t
                                   phase_0
                                   hash2610
                                   null
                                   #f
                                   #f
                                   ns_0
                                   mpi_0
                                   phase_0)
                                  (if (void? sym4_0)
                                    (begin
                                      (namespace-visit-available-modules!
                                       ns_0
                                       phase_0)
                                      (namespace-module-visit!.1
                                       #f
                                       phase_0
                                       ns_0
                                       mpi_0
                                       phase_0))
                                    (let ((m_0
                                           (namespace->module
                                            ns_0
                                            mod-name_0)))
                                      (begin
                                        (if m_0
                                          (void)
                                          (begin-unsafe
                                           (raise-arguments-error
                                            'dynamic-require
                                            "unknown module"
                                            "module name"
                                            (module-name->error-string
                                             mod-name_0))))
                                        (let ((binding/p_0
                                               (hash-ref
                                                (hash-ref
                                                 (module-provides m_0)
                                                 0
                                                 hash2610)
                                                sym4_0
                                                #f)))
                                          (if (not binding/p_0)
                                            (if (eq?
                                                 fail-k_0
                                                 default-dynamic-require-fail-thunk)
                                              (raise-arguments-error
                                               'dynamic-require
                                               "name is not provided"
                                               "name"
                                               sym4_0
                                               "module"
                                               mod-name_0)
                                              (|#%app| fail-k_0))
                                            (let ((binding_0
                                                   (provided-as-binding
                                                    binding/p_0)))
                                              (let ((ex-sym_0
                                                     (module-binding-sym
                                                      binding_0)))
                                                (let ((ex-phase_0
                                                       (module-binding-phase
                                                        binding_0)))
                                                  (begin
                                                    (namespace-module-instantiate!.1
                                                     #f
                                                     #f
                                                     phase_0
                                                     hash2610
                                                     null
                                                     #f
                                                     #f
                                                     ns_0
                                                     mpi_0
                                                     phase_0)
                                                    (let ((ex-mod-name_0
                                                           (1/module-path-index-resolve
                                                            (let ((app_0
                                                                   (module-binding-module
                                                                    binding_0)))
                                                              (module-path-index-shift
                                                               app_0
                                                               (module-self
                                                                m_0)
                                                               mpi_0)))))
                                                      (let ((m-ns_0
                                                             (let ((temp31_0
                                                                    (phase-
                                                                     phase_0
                                                                     ex-phase_0)))
                                                               (namespace->module-namespace.1
                                                                #f
                                                                #t
                                                                void
                                                                ns_0
                                                                ex-mod-name_0
                                                                temp31_0))))
                                                        (let ((ex-m_0
                                                               (namespace->module
                                                                ns_0
                                                                ex-mod-name_0)))
                                                          (let ((access_0
                                                                 (let ((or-part_0
                                                                        (module-access
                                                                         ex-m_0)))
                                                                   (if or-part_0
                                                                     or-part_0
                                                                     (module-compute-access!
                                                                      ex-m_0)))))
                                                            (begin
                                                              (if (if (not
                                                                       (eq?
                                                                        'provided
                                                                        (hash-ref
                                                                         (hash-ref
                                                                          access_0
                                                                          ex-phase_0
                                                                          hash2610)
                                                                         ex-sym_0
                                                                         #f)))
                                                                    (if (not
                                                                         (let ((app_0
                                                                                (current-code-inspector)))
                                                                           (inspector-superior?
                                                                            app_0
                                                                            (namespace-inspector
                                                                             m-ns_0))))
                                                                      (not
                                                                       (if (module-binding-extra-inspector
                                                                            binding_0)
                                                                         (let ((app_0
                                                                                (module-binding-extra-inspector
                                                                                 binding_0)))
                                                                           (inspector-superior?
                                                                            app_0
                                                                            (namespace-inspector
                                                                             m-ns_0)))
                                                                         #f))
                                                                      #f)
                                                                    #f)
                                                                (raise-arguments-error
                                                                 'dynamic-require
                                                                 "name is protected"
                                                                 "name"
                                                                 sym4_0
                                                                 "module"
                                                                 mod-name_0)
                                                                (void))
                                                              (let ((fail_0
                                                                     (|#%name|
                                                                      fail
                                                                      (lambda ()
                                                                        (begin
                                                                          (if (eq?
                                                                               fail-k_0
                                                                               default-dynamic-require-fail-thunk)
                                                                            (raise-arguments-error
                                                                             'dynamic-require
                                                                             "name's binding is missing"
                                                                             "name"
                                                                             sym4_0
                                                                             "module"
                                                                             mod-name_0)
                                                                            (|#%app|
                                                                             fail-k_0)))))))
                                                                (if (not
                                                                     (provided-as-transformer?
                                                                      binding/p_0))
                                                                  (namespace-get-variable
                                                                   m-ns_0
                                                                   ex-phase_0
                                                                   ex-sym_0
                                                                   fail_0)
                                                                  (let ((missing_0
                                                                         (gensym
                                                                          'missing)))
                                                                    (begin
                                                                      (namespace-module-visit!.1
                                                                       #f
                                                                       phase_0
                                                                       ns_0
                                                                       mpi_0
                                                                       phase_0)
                                                                      (let ((t_0
                                                                             (namespace-get-transformer
                                                                              m-ns_0
                                                                              ex-phase_0
                                                                              ex-sym_0
                                                                              missing_0)))
                                                                        (if (eq?
                                                                             t_0
                                                                             missing_0)
                                                                          (fail_0)
                                                                          (let ((tmp-ns_0
                                                                                 (new-namespace.1
                                                                                  #t
                                                                                  unsafe-undefined
                                                                                  ns_0)))
                                                                            (let ((mod-path_0
                                                                                   (resolved-module-path->module-path
                                                                                    mod-name_0)))
                                                                              (begin
                                                                                (1/namespace-require
                                                                                 mod-path_0
                                                                                 tmp-ns_0)
                                                                                (with-continuation-mark*
                                                                                 authentic
                                                                                 parameterization-key
                                                                                 (extend-parameterization
                                                                                  (continuation-mark-set-first
                                                                                   #f
                                                                                   parameterization-key)
                                                                                  1/current-namespace
                                                                                  tmp-ns_0)
                                                                                 (1/eval
                                                                                  sym4_0
                                                                                  tmp-ns_0))))))))))))))))))))))))))))))))))))))))
    (case-lambda
     ((who_0 mod-path_0 sym_0)
      (do-dynamic-require_0 who_0 mod-path_0 sym_0 unsafe-undefined))
     ((who_0 mod-path_0 sym_0 fail-k1_0)
      (do-dynamic-require_0 who_0 mod-path_0 sym_0 fail-k1_0)))))
(define default-dynamic-require-fail-thunk (lambda () (error "failed")))
(define 1/dynamic-require
  (let ((dynamic-require_0
         (|#%name|
          dynamic-require
          (lambda (mod-path6_0 sym7_0 fail-k5_0)
            (begin
              (let ((fail-k_0
                     (if (eq? fail-k5_0 unsafe-undefined)
                       default-dynamic-require-fail-thunk
                       fail-k5_0)))
                (do-dynamic-require
                 'dynamic-require
                 mod-path6_0
                 sym7_0
                 fail-k_0)))))))
    (|#%name|
     dynamic-require
     (case-lambda
      ((mod-path_0 sym_0)
       (begin (dynamic-require_0 mod-path_0 sym_0 unsafe-undefined)))
      ((mod-path_0 sym_0 fail-k5_0)
       (dynamic-require_0 mod-path_0 sym_0 fail-k5_0))))))
(define 1/dynamic-require-for-syntax
  (let ((dynamic-require-for-syntax_0
         (|#%name|
          dynamic-require-for-syntax
          (lambda (mod-path9_0 sym10_0 fail-k8_0)
            (begin
              (let ((fail-k_0
                     (if (eq? fail-k8_0 unsafe-undefined)
                       default-dynamic-require-fail-thunk
                       fail-k8_0)))
                (with-continuation-mark*
                 authentic
                 parameterization-key
                 (let ((app_0
                        (continuation-mark-set-first #f parameterization-key)))
                   (extend-parameterization
                    app_0
                    1/current-namespace
                    (let ((ns_0 (1/current-namespace)))
                      (namespace->namespace-at-phase
                       ns_0
                       (add1 (namespace-phase ns_0))))))
                 (do-dynamic-require
                  'dynamic-require-for-syntax
                  mod-path9_0
                  sym10_0
                  fail-k_0))))))))
    (|#%name|
     dynamic-require-for-syntax
     (case-lambda
      ((mod-path_0 sym_0)
       (begin
         (dynamic-require-for-syntax_0 mod-path_0 sym_0 unsafe-undefined)))
      ((mod-path_0 sym_0 fail-k8_0)
       (dynamic-require-for-syntax_0 mod-path_0 sym_0 fail-k8_0))))))
(define 1/load
  (|#%name|
   load
   (lambda (s_0)
     (begin
       (begin
         (if (path-string? s_0)
           (void)
           (raise-argument-error 'load "path-string?" s_0))
         (let ((p_0 (->path s_0)))
           (call-with-current-load-relative-directory
            p_0
            (lambda () (|#%app| (1/current-load) p_0 #f)))))))))
(define 1/load-extension
  (|#%name|
   load-extension
   (lambda (s_0)
     (begin
       (begin
         (if (path-string? s_0)
           (void)
           (raise-argument-error 'load-extension "path-string?" s_0))
         (let ((p_0 (->path s_0)))
           (call-with-current-load-relative-directory
            p_0
            (lambda () (|#%app| (current-load-extension) p_0 #f)))))))))
(define call-with-current-load-relative-directory
  (lambda (p_0 thunk_0)
    (call-with-values
     (lambda () (split-path p_0))
     (case-lambda
      ((base_0 name_0 dir?_0)
       (with-continuation-mark*
        authentic
        parameterization-key
        (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
          (extend-parameterization
           app_0
           current-load-relative-directory
           (if (eq? base_0 'relative)
             (current-directory)
             (path->complete-path base_0))))
        (|#%app| thunk_0)))
      (args (raise-binding-result-arity-error 3 args))))))
(define 1/load/use-compiled
  (|#%name|
   load/use-compiled
   (lambda (f_0)
     (begin
       (begin
         (if (path-string? f_0)
           (void)
           (raise-argument-error 'load/use-compiled "path-string?" f_0))
         (let ((p_0 (->path f_0)))
           (|#%app| (1/current-load/use-compiled) p_0 #f)))))))
(define embedded-load
  (let ((embedded-load_0
         (|#%name|
          embedded-load
          (lambda (start2_0 end3_0 bstr4_0 as-predefined?5_0 in-path1_0)
            (begin
              (let ((s_0
                     (if bstr4_0
                       bstr4_0
                       (let ((path_0
                              (if (bytes? in-path1_0)
                                (bytes->path in-path1_0)
                                (if (string? in-path1_0)
                                  in-path1_0
                                  (find-executable-path
                                   (find-system-path 'exec-file)
                                   #f)))))
                         (let ((start_0
                                (if (string? start2_0)
                                  (let ((or-part_0
                                         (1/string->number start2_0)))
                                    (if or-part_0 or-part_0 0))
                                  start2_0)))
                           (let ((end_0
                                  (if (string? end3_0)
                                    (let ((or-part_0
                                           (1/string->number end3_0)))
                                      (if or-part_0 or-part_0 0))
                                    (if end3_0 end3_0 (file-size path_0)))))
                             (let ((temp10_0
                                    (lambda ()
                                      (begin
                                        (file-position
                                         (current-input-port)
                                         start_0)
                                        (read-bytes
                                         (max 0 (- end_0 start_0)))))))
                               (with-input-from-file.1
                                'binary
                                path_0
                                temp10_0))))))))
                (let ((p_0 (open-input-bytes s_0)))
                  (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda ()
                        (begin
                          (let ((e_0
                                 (with-continuation-mark*
                                  push-authentic
                                  parameterization-key
                                  (extend-parameterization
                                   (continuation-mark-set-first
                                    #f
                                    parameterization-key)
                                   1/read-accept-compiled
                                   #t
                                   1/read-accept-reader
                                   #t
                                   1/read-accept-lang
                                   #t
                                   read-on-demand-source
                                   #t)
                                  (1/read p_0))))
                            (if (eof-object? e_0)
                              (void)
                              (begin
                                (with-continuation-mark*
                                 push-authentic
                                 parameterization-key
                                 (extend-parameterization
                                  (continuation-mark-set-first
                                   #f
                                   parameterization-key)
                                  current-module-declare-as-predefined
                                  as-predefined?5_0)
                                 (|#%app| (1/current-eval) e_0))
                                (loop_0)))))))))
                   (loop_0)))))))))
    (case-lambda
     ((start_0 end_0 bstr_0 as-predefined?_0)
      (embedded-load_0 start_0 end_0 bstr_0 as-predefined?_0 #f))
     ((start_0 end_0 bstr_0 as-predefined?_0 in-path1_0)
      (embedded-load_0 start_0 end_0 bstr_0 as-predefined?_0 in-path1_0)))))
(define ->path (lambda (s_0) (if (string? s_0) (string->path s_0) s_0)))
(define find-main-collects
  (lambda ()
    (cache-configuration
     0
     (lambda ()
       (exe-relative-path->complete-path (find-system-path 'collects-dir))))))
(define find-main-config
  (lambda ()
    (cache-configuration
     1
     (lambda ()
       (exe-relative-path->complete-path (find-system-path 'config-dir))))))
(define exe-relative-path->complete-path
  (lambda (collects-path_0)
    (if (complete-path? collects-path_0)
      (simplify-path collects-path_0)
      (if (absolute-path? collects-path_0)
        (let ((exec_0
               (call-in-original-directory
                (lambda ()
                  (let ((app_0
                         (find-executable-path (find-system-path 'exec-file))))
                    (path->complete-path
                     app_0
                     (find-system-path 'orig-dir)))))))
          (call-with-values
           (lambda () (split-path exec_0))
           (case-lambda
            ((base_0 name_0 dir?_0)
             (simplify-path (path->complete-path collects-path_0 base_0)))
            (args (raise-binding-result-arity-error 3 args)))))
        (let ((p_0
               (call-in-original-directory
                (lambda ()
                  (find-executable-path
                   (find-system-path 'exec-file)
                   collects-path_0
                   #t)))))
          (if p_0 (simplify-path p_0) #f))))))
(define call-in-original-directory
  (lambda (thunk_0)
    (with-continuation-mark*
     authentic
     parameterization-key
     (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
       (extend-parameterization
        app_0
        current-directory
        (find-system-path 'orig-dir)))
     (|#%app| thunk_0))))
(define encoded-link-path?
  (lambda (p_0)
    (let ((or-part_0 (path-string? p_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (path-bytes? p_0)))
          (if or-part_1
            or-part_1
            (if (pair? p_0)
              (if (list? p_0) (andmap_2344 path-element-bytes/same/up? p_0) #f)
              #f)))))))
(define path-bytes?
  (lambda (p_0)
    (if (bytes? p_0)
      (if (positive? (unsafe-bytes-length p_0))
        (call-with-values
         (lambda ()
           (begin (check-bytes p_0) (values p_0 (unsafe-bytes-length p_0))))
         (case-lambda
          ((vec_0 len_0)
           (begin
             #f
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (result_0 pos_0)
                   (begin
                     (if (unsafe-fx< pos_0 len_0)
                       (let ((c_0 (unsafe-bytes-ref vec_0 pos_0)))
                         (let ((result_1 (not (eqv? c_0 0))))
                           (let ((result_2 (values result_1)))
                             (if (if (not
                                      (let ((x_0 (list c_0))) (not result_2)))
                                   #t
                                   #f)
                               (for-loop_0 result_2 (unsafe-fx+ 1 pos_0))
                               result_2))))
                       result_0))))))
              (for-loop_0 #t 0))))
          (args (raise-binding-result-arity-error 2 args))))
        #f)
      #f)))
(define path-element-bytes/same/up?
  (lambda (p_0)
    (let ((or-part_0 (eq? p_0 'up)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? p_0 'same)))
          (if or-part_1
            or-part_1
            (if (path-bytes? p_0)
              (let ((p_1
                     (bytes->path-element
                      p_0
                      (system-path-convention-type)
                      #t)))
                (if p_1 (relative-path? p_1) #f))
              #f)))))))
(define decode-link-path
  (lambda (p_0)
    (if (path-string? p_0)
      p_0
      (if (bytes? p_0)
        (bytes->path p_0)
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (path_0 p_1)
              (begin
                (if (null? p_1)
                  path_0
                  (let ((elem_0
                         (if (bytes? (car p_1))
                           (bytes->path-element (car p_1))
                           (car p_1))))
                    (let ((app_0
                           (if path_0 (build-path path_0 elem_0) elem_0)))
                      (loop_0 app_0 (cdr p_1))))))))))
         (loop_0 #f p_0))))))
(define finish_3090
  (make-struct-type-install-properties
   '(shadow-directory)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'shadow-directory))
(define struct:shadow-directory
  (make-record-type-descriptor
   'shadow-directory
   #f
   (|#%nongenerative-uid| shadow-directory)
   #f
   #f
   '(2 . 0)))
(define effect_2776 (finish_3090 struct:shadow-directory))
(define shadow-directory1.1
  (|#%name|
   shadow-directory
   (record-constructor
    (make-record-constructor-descriptor struct:shadow-directory #f #f))))
(define shadow-directory?
  (|#%name| shadow-directory? (record-predicate struct:shadow-directory)))
(define shadow-directory-evt
  (|#%name| shadow-directory-evt (record-accessor struct:shadow-directory 0)))
(define shadow-directory-table
  (|#%name|
   shadow-directory-table
   (record-accessor struct:shadow-directory 1)))
(define use-shadow-directory?
  (let ((v_0 (system-type 'fs-change)))
    (if (eq? 'scalable (vector-ref v_0 1))
      (eq? 'low-latency (vector-ref v_0 2))
      #f)))
(define make-cache (lambda () (if use-shadow-directory? (make-weak-hash) #f)))
(define cell.1$2 (unsafe-make-place-local (make-cache)))
(define shadow-directory-place-init!
  (lambda () (unsafe-place-local-set! cell.1$2 (make-cache))))
(define lookup-shadow-directory
  (lambda (orig_0)
    (let ((sd_0
           (call-as-atomic
            (lambda ()
              (hash-ref (unsafe-place-local-ref cell.1$2) orig_0 #f)))))
      (if sd_0
        (if (sync/timeout 0 (shadow-directory-evt sd_0))
          (begin
            (call-as-atomic
             (lambda ()
               (hash-remove! (unsafe-place-local-ref cell.1$2) orig_0)))
            (lookup-shadow-directory orig_0))
          sd_0)
        (let ((evt_0 (filesystem-change-evt orig_0 (lambda () #f))))
          (if evt_0
            (let ((table_0
                   (let ((lst_0 (directory-list orig_0)))
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (table_0 lst_1)
                             (begin
                               (if (pair? lst_1)
                                 (let ((p_0 (unsafe-car lst_1)))
                                   (let ((rest_0 (unsafe-cdr lst_1)))
                                     (let ((table_1
                                            (if (directory-exists?
                                                 (build-path orig_0 p_0))
                                              (let ((table_1
                                                     (call-with-values
                                                      (lambda ()
                                                        (values
                                                         (normal-case-path p_0)
                                                         #t))
                                                      (case-lambda
                                                       ((key_0 val_0)
                                                        (hash-set
                                                         table_0
                                                         key_0
                                                         val_0))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))))
                                                (values table_1))
                                              table_0)))
                                       (for-loop_0 table_1 rest_0))))
                                 table_0))))))
                        (for-loop_0 hash2725 lst_0))))))
              (let ((sd_1 (shadow-directory1.1 evt_0 table_0)))
                (begin
                  (call-as-atomic
                   (lambda ()
                     (hash-set!
                      (unsafe-place-local-ref cell.1$2)
                      orig_0
                      sd_1)))
                  sd_1)))
            #f))))))
(define directory-exists?/shadow-filesystem
  (lambda (p_0 orig_0 subpath_0)
    (if (not (unsafe-place-local-ref cell.1$2))
      (directory-exists? p_0)
      (let ((sd_0 (lookup-shadow-directory orig_0)))
        (if (not sd_0)
          (directory-exists? p_0)
          (if sd_0
            (let ((ht_0 (shadow-directory-table sd_0)))
              (hash-ref ht_0 (normal-case-path subpath_0) #f))
            (void)))))))
(define relative-path-string?
  (lambda (s_0) (if (path-string? s_0) (relative-path? s_0) #f)))
(define check-collection
  (lambda (who_0 s_0 l_0)
    (begin
      (if (relative-path-string? s_0)
        (void)
        (raise-argument-error who_0 "(and/c path-string? relative-path?)" s_0))
      (if (if (list? l_0) (andmap_2344 relative-path-string? l_0) #f)
        (void)
        (raise-argument-error
         who_0
         "(listof (and/c path-string? relative-path?))"
         l_0)))))
(define check-fail
  (lambda (who_0 fail_0)
    (if (if (procedure? fail_0) (procedure-arity-includes? fail_0 1) #f)
      (void)
      (raise-argument-error who_0 "(procedure-arity-includes/c 1)" fail_0))))
(define 1/collection-path
  (|#%name|
   collection-path
   (lambda (fail_0 collection_0 collection-path_0)
     (begin
       (begin
         (check-collection 'collection-path collection_0 collection-path_0)
         (check-fail 'collection-path fail_0)
         (find-col-file fail_0 collection_0 collection-path_0 #f #f))))))
(define 1/collection-file-path
  (|#%name|
   collection-file-path
   (lambda (fail_0
            check-compiled?_0
            file-name_0
            collection_0
            collection-path_0)
     (begin
       (begin
         (if (relative-path-string? file-name_0)
           (void)
           (raise-argument-error
            'collection-file-path
            "(and/c path-string? relative-path?)"
            file-name_0))
         (check-collection
          'collection-file-path
          collection_0
          collection-path_0)
         (check-fail 'collection-file-path fail_0)
         (find-col-file
          fail_0
          collection_0
          collection-path_0
          file-name_0
          check-compiled?_0))))))
(define 1/read-installation-configuration-table
  (|#%name|
   read-installation-configuration-table
   (lambda ()
     (begin
       (let ((d_0 (find-main-config)))
         (let ((p_0 (if d_0 (build-path d_0 "config.rktd") #f)))
           (let ((or-part_0
                  (if p_0
                    (if (file-exists? p_0)
                      (let ((with-handlers-handler12_0
                             (|#%name|
                              with-handlers-handler12
                              (lambda (exn_0) (begin hash2725)))))
                        (let ((bpz_0
                               (continuation-mark-set-first
                                #f
                                break-enabled-key)))
                          (call-handled-body
                           bpz_0
                           (lambda (e_0)
                             (select-handler/no-breaks
                              e_0
                              bpz_0
                              (list
                               (cons exn:fail? with-handlers-handler12_0))))
                           (lambda ()
                             (let ((temp14_0
                                    (lambda ()
                                      (let ((v_0
                                             (call-with-default-reading-parameterization
                                              1/read)))
                                        (if (hash? v_0) v_0 #f)))))
                               (with-input-from-file.1
                                'binary
                                p_0
                                temp14_0))))))
                      #f)
                    #f)))
             (if or-part_0 or-part_0 hash2725))))))))
(define get-installation-name
  (let ((get-installation-name_0
         (|#%name|
          get-installation-name
          (lambda (config-table1_0)
            (begin
              (let ((config-table_0
                     (if (eq? config-table1_0 unsafe-undefined)
                       (1/read-installation-configuration-table)
                       config-table1_0)))
                (begin
                  (if (hash? config-table_0)
                    (void)
                    (raise-argument-error
                     'get-installation-name
                     "hash?"
                     config-table_0))
                  (let ((base-name_0
                         (hash-ref
                          config-table_0
                          'installation-name
                          (version))))
                    (if (not (1/use-user-specific-search-paths))
                      base-name_0
                      (let ((addon-dir_0 (find-system-path 'addon-dir)))
                        (let ((other-version-name_0 "other-version"))
                          (if (directory-exists?
                               (build-path addon-dir_0 base-name_0))
                            base-name_0
                            (if (directory-exists?
                                 (build-path addon-dir_0 other-version-name_0))
                              other-version-name_0
                              base-name_0)))))))))))))
    (case-lambda
     (() (get-installation-name_0 unsafe-undefined))
     ((config-table1_0) (get-installation-name_0 config-table1_0)))))
(define coerce-to-relative-path
  (lambda (p_0)
    (if (string? p_0)
      (string->path p_0)
      (if (bytes? p_0) (bytes->path p_0) p_0))))
(define coerce-to-path
  (lambda (p_0)
    (if (string? p_0)
      (collects-relative-path->complete-path (string->path p_0))
      (if (bytes? p_0)
        (collects-relative-path->complete-path (bytes->path p_0))
        (if (path? p_0) (collects-relative-path->complete-path p_0) p_0)))))
(define collects-relative-path->complete-path
  (lambda (p_0)
    (if (complete-path? p_0)
      p_0
      (path->complete-path
       p_0
       (let ((or-part_0 (find-main-collects)))
         (if or-part_0 or-part_0 (current-directory)))))))
(define add-config-search
  (lambda (ht_0 key_0 orig-l_0)
    (let ((l_0 (hash-ref ht_0 key_0 #f)))
      (if l_0
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (l_1)
              (begin
                (if (null? l_1)
                  null
                  (if (not (car l_1))
                    (append orig-l_0 (loop_0 (cdr l_1)))
                    (let ((app_0 (coerce-to-path (car l_1))))
                      (cons app_0 (loop_0 (cdr l_1)))))))))))
         (loop_0 l_0))
        orig-l_0))))
(define 1/find-library-collection-links
  (let ((find-library-collection-links_0
         (|#%name|
          find-library-collection-links
          (lambda (config-table2_0 installation-name3_0)
            (begin
              (let ((config-table_0
                     (if (eq? config-table2_0 unsafe-undefined)
                       (1/read-installation-configuration-table)
                       config-table2_0)))
                (let ((installation-name_0
                       (if (eq? installation-name3_0 unsafe-undefined)
                         (if (hash? config-table_0)
                           (get-installation-name config-table_0)
                           #f)
                         installation-name3_0)))
                  (begin
                    (if (hash? config-table_0)
                      (void)
                      (raise-argument-error
                       'find-library-collection-links
                       "hash?"
                       config-table_0))
                    (begin
                      (if (string? installation-name_0)
                        (void)
                        (raise-argument-error
                         'find-library-collection-links
                         "string?"
                         installation-name_0))
                      (let ((lf_0
                             (coerce-to-path
                              (let ((or-part_0
                                     (hash-ref config-table_0 'links-file #f)))
                                (if or-part_0
                                  or-part_0
                                  (build-path
                                   (let ((or-part_1
                                          (hash-ref
                                           config-table_0
                                           'share-dir
                                           #f)))
                                     (if or-part_1
                                       or-part_1
                                       (build-path 'up "share")))
                                   "links.rktd"))))))
                        (let ((app_0 (list #f)))
                          (let ((app_1
                                 (if (if (1/use-user-specific-search-paths)
                                       (1/use-collection-link-paths)
                                       #f)
                                   (list
                                    (build-path
                                     (find-system-path 'addon-dir)
                                     installation-name_0
                                     "links.rktd"))
                                   null)))
                            (append
                             app_0
                             app_1
                             (if (1/use-collection-link-paths)
                               (add-config-search
                                config-table_0
                                'links-search-files
                                (list lf_0))
                               null))))))))))))))
    (|#%name|
     find-library-collection-links
     (case-lambda
      (()
       (begin
         (find-library-collection-links_0 unsafe-undefined unsafe-undefined)))
      ((config-table_0 installation-name3_0)
       (find-library-collection-links_0 config-table_0 installation-name3_0))
      ((config-table2_0)
       (find-library-collection-links_0 config-table2_0 unsafe-undefined))))))
(define cell.1$1 (unsafe-make-place-local (make-weak-hash)))
(define collection-place-init!
  (lambda () (unsafe-place-local-set! cell.1$1 (make-weak-hash))))
(define stamp-prompt-tag (make-continuation-prompt-tag 'stamp))
(define file->stamp
  (lambda (path_0 old-stamp_0)
    (if (if old-stamp_0
          (if (cdr old-stamp_0) (not (sync/timeout 0 (cdr old-stamp_0))) #f)
          #f)
      old-stamp_0
      (call-with-continuation-prompt
       (lambda ()
         (call-with-exception-handler
          (lambda (exn_0)
            (abort-current-continuation
             stamp-prompt-tag
             (if (exn:fail:filesystem? exn_0)
               (lambda () #f)
               (lambda () (raise exn_0)))))
          (lambda ()
            (let ((dir-evt_0
                   (if (vector-ref (system-type 'fs-change) 2)
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (path_1)
                           (begin
                             (call-with-values
                              (lambda () (split-path path_1))
                              (case-lambda
                               ((base_0 name_0 dir?_0)
                                (if (path? base_0)
                                  (if (directory-exists? base_0)
                                    (filesystem-change-evt
                                     base_0
                                     (lambda () #f))
                                    (loop_0 base_0))
                                  #f))
                               (args
                                (raise-binding-result-arity-error
                                 3
                                 args)))))))))
                      (loop_0 path_0))
                     #f)))
              (if (not (file-exists? path_0))
                (cons #f dir-evt_0)
                (let ((evt_0
                       (if (vector-ref (system-type 'fs-change) 2)
                         (filesystem-change-evt path_0 (lambda () #f))
                         #f)))
                  (begin
                    (if dir-evt_0
                      (filesystem-change-evt-cancel dir-evt_0)
                      (void))
                    (cons (file->bytes path_0) evt_0))))))))
       stamp-prompt-tag))))
(define file->bytes
  (lambda (path_0)
    (let ((temp16_0
           (lambda (p_0)
             (let ((bstr_0 (read-bytes 8192 p_0)))
               (if (if (bytes? bstr_0)
                     (>= (unsafe-bytes-length bstr_0) 8192)
                     #f)
                 (apply
                  bytes-append
                  (cons
                   bstr_0
                   (letrec*
                    ((loop_0
                      (|#%name|
                       loop
                       (lambda ()
                         (begin
                           (let ((bstr_1 (read-bytes 8192 p_0)))
                             (if (eof-object? bstr_1)
                               null
                               (cons bstr_1 (loop_0)))))))))
                    (loop_0))))
                 bstr_0)))))
      (call-with-input-file*.1 'binary path_0 temp16_0))))
(define no-file-stamp?
  (lambda (a_0)
    (let ((or-part_0 (not a_0))) (if or-part_0 or-part_0 (not (car a_0))))))
(define get-linked-collections
  (lambda (links-path_0)
    (call-with-escape-continuation
     (lambda (esc_0)
       (let ((make-handler_0
              (|#%name|
               make-handler
               (lambda (ts_0)
                 (begin
                   (lambda (exn_0)
                     (begin
                       (if (exn:fail? exn_0)
                         (let ((l_0 (current-logger)))
                           (if (log-level? l_0 'error)
                             (let ((app_0
                                    (format
                                     "error reading collection links file ~s: ~a"
                                     links-path_0
                                     (exn-message exn_0))))
                               (log-message
                                l_0
                                'error
                                app_0
                                (current-continuation-marks)))
                             (void)))
                         (void))
                       (if ts_0
                         (call-as-atomic
                          (lambda ()
                            (hash-set!
                             (unsafe-place-local-ref cell.1$1)
                             links-path_0
                             (cons ts_0 hash2610))))
                         (void))
                       (if (exn:fail? exn_0)
                         (|#%app| esc_0 (make-hasheq))
                         exn_0))))))))
         (call-with-exception-handler
          (make-handler_0 #f)
          (lambda ()
            (let ((links-stamp+cache_0
                   (call-as-atomic
                    (lambda ()
                      (hash-ref
                       (unsafe-place-local-ref cell.1$1)
                       links-path_0
                       nhash2607)))))
              (let ((a-links-stamp_0 (car links-stamp+cache_0)))
                (let ((ts_0 (file->stamp links-path_0 a-links-stamp_0)))
                  (if (equal? ts_0 a-links-stamp_0)
                    (cdr links-stamp+cache_0)
                    (call-with-exception-handler
                     (make-handler_0 ts_0)
                     (lambda ()
                       (call-with-default-reading-parameterization
                        (lambda ()
                          (let ((v_0
                                 (if (no-file-stamp? ts_0)
                                   null
                                   (let ((temp18_0
                                          (lambda (p_0)
                                            (begin0
                                              (1/read p_0)
                                              (if (eof-object? (1/read p_0))
                                                (void)
                                                (error
                                                 "expected a single S-expression"))))))
                                     (call-with-input-file*.1
                                      'binary
                                      links-path_0
                                      temp18_0)))))
                            (begin
                              (if (if (list? v_0)
                                    (andmap_2344
                                     (lambda (p_0)
                                       (if (list? p_0)
                                         (if (let ((or-part_0
                                                    (= 2 (length p_0))))
                                               (if or-part_0
                                                 or-part_0
                                                 (= 3 (length p_0))))
                                           (if (let ((or-part_0
                                                      (string? (car p_0))))
                                                 (if or-part_0
                                                   or-part_0
                                                   (let ((or-part_1
                                                          (eq?
                                                           'root
                                                           (car p_0))))
                                                     (if or-part_1
                                                       or-part_1
                                                       (eq?
                                                        'static-root
                                                        (car p_0))))))
                                             (if (encoded-link-path?
                                                  (cadr p_0))
                                               (let ((or-part_0
                                                      (null? (cddr p_0))))
                                                 (if or-part_0
                                                   or-part_0
                                                   (regexp? (caddr p_0))))
                                               #f)
                                             #f)
                                           #f)
                                         #f))
                                     v_0)
                                    #f)
                                (void)
                                (error "ill-formed content"))
                              (let ((ht_0 (make-hasheq)))
                                (let ((dir_0
                                       (call-with-values
                                        (lambda () (split-path links-path_0))
                                        (case-lambda
                                         ((base_0 name_0 dir?_0) base_0)
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args))))))
                                  (begin
                                    (for-each_2380
                                     (lambda (p_0)
                                       (if (let ((or-part_0
                                                  (null? (cddr p_0))))
                                             (if or-part_0
                                               or-part_0
                                               (regexp-match?
                                                (caddr p_0)
                                                (version))))
                                         (let ((dir_1
                                                (simplify-path
                                                 (path->complete-path
                                                  (decode-link-path (cadr p_0))
                                                  dir_0))))
                                           (if (eq? (car p_0) 'static-root)
                                             (for-each_2380
                                              (lambda (sub_0)
                                                (if (directory-exists?
                                                     (build-path dir_1 sub_0))
                                                  (let ((k_0
                                                         (string->symbol
                                                          (path->string
                                                           sub_0))))
                                                    (hash-set!
                                                     ht_0
                                                     k_0
                                                     (cons
                                                      dir_1
                                                      (hash-ref
                                                       ht_0
                                                       k_0
                                                       null))))
                                                  (void)))
                                              (directory-list dir_1))
                                             (if (eq? (car p_0) 'root)
                                               (begin
                                                 (if (hash-ref ht_0 #f #f)
                                                   (void)
                                                   (hash-set! ht_0 #f null))
                                                 (hash-for-each
                                                  ht_0
                                                  (lambda (k_0 v_1)
                                                    (hash-set!
                                                     ht_0
                                                     k_0
                                                     (cons dir_1 v_1)))))
                                               (let ((s_0
                                                      (string->symbol
                                                       (car p_0))))
                                                 (hash-set!
                                                  ht_0
                                                  s_0
                                                  (let ((app_0 (box dir_1)))
                                                    (cons
                                                     app_0
                                                     (hash-ref
                                                      ht_0
                                                      s_0
                                                      null))))))))
                                         (void)))
                                     v_0)
                                    (hash-for-each
                                     ht_0
                                     (lambda (k_0 v_1)
                                       (hash-set! ht_0 k_0 (reverse$1 v_1))))
                                    (call-as-atomic
                                     (lambda ()
                                       (hash-set!
                                        (unsafe-place-local-ref cell.1$1)
                                        links-path_0
                                        (cons ts_0 ht_0))))
                                    ht_0))))))))))))))))))))
(define normalize-collection-reference
  (lambda (collection_0 collection-path_0)
    (if (string? collection_0)
      (let ((m_0 (regexp-match-positions rx2897 collection_0)))
        (if m_0
          (if (let ((app_0 (caar m_0)))
                (= app_0 (sub1 (string-length collection_0))))
            (values (substring collection_0 0 (caar m_0)) collection-path_0)
            (let ((app_0 (substring collection_0 0 (caar m_0))))
              (values
               app_0
               (cons (substring collection_0 (cdar m_0)) collection-path_0))))
          (values collection_0 collection-path_0)))
      (call-with-values
       (lambda () (split-path collection_0))
       (case-lambda
        ((base_0 name_0 dir?_0)
         (if (eq? base_0 'relative)
           (values name_0 collection-path_0)
           (normalize-collection-reference
            base_0
            (cons name_0 collection-path_0))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define find-col-file
  (lambda (fail_0
           collection-in_0
           collection-path-in_0
           file-name_0
           check-compiled?_0)
    (call-with-values
     (lambda ()
       (normalize-collection-reference collection-in_0 collection-path-in_0))
     (case-lambda
      ((collection_0 collection-path_0)
       (let ((all-paths_0
              (let ((sym_0
                     (string->symbol
                      (if (path? collection_0)
                        (path->string collection_0)
                        collection_0))))
                (letrec*
                 ((loop_0
                   (|#%name|
                    loop
                    (lambda (l_0)
                      (begin
                        (if (null? l_0)
                          null
                          (if (not (car l_0))
                            (let ((app_0 (1/current-library-collection-paths)))
                              (append app_0 (loop_0 (cdr l_0))))
                            (if (hash? (car l_0))
                              (let ((app_0
                                     (map_1346
                                      box
                                      (hash-ref (car l_0) sym_0 null))))
                                (let ((app_1 (hash-ref (car l_0) #f null)))
                                  (append app_0 app_1 (loop_0 (cdr l_0)))))
                              (let ((ht_0 (get-linked-collections (car l_0))))
                                (let ((app_0 (hash-ref ht_0 sym_0 null)))
                                  (let ((app_1 (hash-ref ht_0 #f null)))
                                    (append
                                     app_0
                                     app_1
                                     (loop_0 (cdr l_0))))))))))))))
                 (loop_0 (1/current-library-collection-links))))))
         (let ((done_0
                (|#%name|
                 done
                 (lambda (p_0)
                   (begin
                     (if file-name_0 (build-path p_0 file-name_0) p_0))))))
           (let ((*build-path-rep_0
                  (|#%name|
                   *build-path-rep
                   (lambda (p_0 c_0)
                     (begin
                       (if (path? p_0) (build-path p_0 c_0) (unbox p_0)))))))
             (let ((*directory-exists?_0
                    (|#%name|
                     *directory-exists?
                     (lambda (orig_0 collection_1 p_0)
                       (begin
                         (if (path? orig_0)
                           (directory-exists?/shadow-filesystem
                            p_0
                            orig_0
                            collection_1)
                           #t))))))
               (let ((to-string_0
                      (|#%name|
                       to-string
                       (lambda (p_0)
                         (begin (if (path? p_0) (path->string p_0) p_0))))))
                 (letrec*
                  ((cloop_0
                    (|#%name|
                     cloop
                     (lambda (paths_0 found-col_0)
                       (begin
                         (if (null? paths_0)
                           (if found-col_0
                             (done_0 found-col_0)
                             (let ((rest-coll_0
                                    (if (null? collection-path_0)
                                      ""
                                      (apply
                                       string-append
                                       (letrec*
                                        ((loop_0
                                          (|#%name|
                                           loop
                                           (lambda (cp_0)
                                             (begin
                                               (if (null? (cdr cp_0))
                                                 (list
                                                  (to-string_0 (car cp_0)))
                                                 (let ((app_0
                                                        (to-string_0
                                                         (car cp_0))))
                                                   (list*
                                                    app_0
                                                    "/"
                                                    (loop_0 (cdr cp_0))))))))))
                                        (loop_0 collection-path_0))))))
                               (letrec*
                                ((filter_0
                                  (|#%name|
                                   filter
                                   (lambda (f_0 l_0)
                                     (begin
                                       (if (null? l_0)
                                         null
                                         (if (|#%app| f_0 (car l_0))
                                           (let ((app_0 (car l_0)))
                                             (cons
                                              app_0
                                              (filter_0 f_0 (cdr l_0))))
                                           (filter_0 f_0 (cdr l_0)))))))))
                                (|#%app|
                                 fail_0
                                 (let ((app_0
                                        (if (null? collection-path_0)
                                          (to-string_0 collection_0)
                                          (string-append
                                           (to-string_0 collection_0)
                                           "/"
                                           rest-coll_0))))
                                   (let ((app_1
                                          (apply
                                           string-append
                                           (map_1346
                                            (lambda (p_0)
                                              (format "\n ~a ~a" " " p_0))
                                            (let ((len_0 (length all-paths_0)))
                                              (let ((clen_0
                                                     (length
                                                      (1/current-library-collection-paths))))
                                                (let ((len_1 len_0))
                                                  (if (< (- len_1 clen_0) 5)
                                                    all-paths_0
                                                    (let ((app_1
                                                           (1/current-library-collection-paths)))
                                                      (append
                                                       app_1
                                                       (list
                                                        (format
                                                         "... [~a additional linked and package directories]"
                                                         (-
                                                          len_1
                                                          clen_0)))))))))))))
                                     (format
                                      "collection not found\n  collection: ~s\n  in collection directories:~a~a"
                                      app_0
                                      app_1
                                      (if (ormap_2765 box? all-paths_0)
                                        (format
                                         "\n   sub-collection: ~s\n  in parent directories:~a"
                                         rest-coll_0
                                         (apply
                                          string-append
                                          (map_1346
                                           (lambda (p_0)
                                             (format "\n   ~a" (unbox p_0)))
                                           (filter_0 box? all-paths_0))))
                                        ""))))))))
                           (let ((dir_0
                                  (*build-path-rep_0
                                   (car paths_0)
                                   collection_0)))
                             (if (*directory-exists?_0
                                  (car paths_0)
                                  collection_0
                                  dir_0)
                               (let ((cpath_0
                                      (apply
                                       build-path
                                       dir_0
                                       collection-path_0)))
                                 (if (if (null? collection-path_0)
                                       #t
                                       (directory-exists? cpath_0))
                                   (if file-name_0
                                     (if (let ((or-part_0
                                                (file-exists?/maybe-compiled
                                                 cpath_0
                                                 file-name_0
                                                 check-compiled?_0)))
                                           (if or-part_0
                                             or-part_0
                                             (let ((alt-file-name_0
                                                    (let ((file-name_1
                                                           (if (path?
                                                                file-name_0)
                                                             (path->string
                                                              file-name_0)
                                                             file-name_0)))
                                                      (let ((len_0
                                                             (string-length
                                                              file-name_1)))
                                                        (if (>= len_0 4)
                                                          (if (string=?
                                                               ".rkt"
                                                               (substring
                                                                file-name_1
                                                                (- len_0 4)))
                                                            (string-append
                                                             (substring
                                                              file-name_1
                                                              0
                                                              (- len_0 4))
                                                             ".ss")
                                                            #f)
                                                          #f)))))
                                               (if alt-file-name_0
                                                 (file-exists?/maybe-compiled
                                                  cpath_0
                                                  alt-file-name_0
                                                  check-compiled?_0)
                                                 #f))))
                                       (done_0 cpath_0)
                                       (cloop_0
                                        (cdr paths_0)
                                        (if found-col_0 found-col_0 cpath_0)))
                                     (done_0 cpath_0))
                                   (cloop_0 (cdr paths_0) found-col_0)))
                               (cloop_0 (cdr paths_0) found-col_0)))))))))
                  (cloop_0 all-paths_0 #f))))))))
      (args (raise-binding-result-arity-error 2 args))))))
(define file-exists?/maybe-compiled
  (lambda (dir_0 path_0 check-compiled?_0)
    (let ((or-part_0 (file-exists? (build-path dir_0 path_0))))
      (if or-part_0
        or-part_0
        (if check-compiled?_0
          (let ((sfx_0 #vu8(46 122 111)))
            (let ((try-path_0
                   (begin-unsafe
                    (path-adjust-extension
                     'path-add-extension
                     #vu8(95)
                     subbytes
                     path_0
                     sfx_0
                     #t))))
              (let ((modes_0 (1/use-compiled-file-paths)))
                (let ((roots_0 (1/current-compiled-file-roots)))
                  (let ((modes_1 modes_0) (try-path_1 try-path_0))
                    (ormap_2765
                     (lambda (d_0)
                       (ormap_2765
                        (lambda (mode_0)
                          (file-exists?
                           (let ((dir_1
                                  (if (eq? d_0 'same)
                                    dir_0
                                    (if (relative-path? d_0)
                                      (build-path dir_0 d_0)
                                      (reroot-path dir_0 d_0)))))
                             (build-path dir_1 mode_0 try-path_1))))
                        modes_1))
                     roots_0))))))
          #f)))))
(define 1/find-library-collection-paths
  (let ((find-library-collection-paths_0
         (|#%name|
          find-library-collection-paths
          (lambda (extra-collects-dirs4_0
                   post-collects-dirs5_0
                   config-table6_0
                   installation-name7_0)
            (begin
              (let ((config-table_0
                     (if (eq? config-table6_0 unsafe-undefined)
                       (1/read-installation-configuration-table)
                       config-table6_0)))
                (let ((installation-name_0
                       (if (eq? installation-name7_0 unsafe-undefined)
                         (if (hash? config-table_0)
                           (get-installation-name config-table_0)
                           #f)
                         installation-name7_0)))
                  (begin
                    (if (if (list? extra-collects-dirs4_0)
                          (andmap_2344 path-string? extra-collects-dirs4_0)
                          #f)
                      (void)
                      (raise-argument-error
                       'find-library-collection-paths
                       "(listof path-string?)"
                       extra-collects-dirs4_0))
                    (if (if (list? post-collects-dirs5_0)
                          (andmap_2344 path-string? post-collects-dirs5_0)
                          #f)
                      (void)
                      (raise-argument-error
                       'find-library-collection-paths
                       "(listof path-string?)"
                       post-collects-dirs5_0))
                    (if (hash? config-table_0)
                      (void)
                      (raise-argument-error
                       'find-library-collection-paths
                       "hash?"
                       config-table_0))
                    (if (string? installation-name_0)
                      (void)
                      (raise-argument-error
                       'find-library-collection-paths
                       "string?"
                       installation-name_0))
                    (let ((user-too?_0 (1/use-user-specific-search-paths)))
                      (let ((cons-if_0
                             (|#%name|
                              cons-if
                              (lambda (f_0 r_0)
                                (begin (if f_0 (cons f_0 r_0) r_0))))))
                        (let ((user-too?_1 user-too?_0))
                          (let ((app_0
                                 (if user-too?_1
                                   (let ((c_0
                                          (environment-variables-ref
                                           (current-environment-variables)
                                           #vu8(80 76 84 67 79 76 76 69 67 84 83))))
                                     (if c_0
                                       (bytes->string/locale c_0 '#\x3f)
                                       ""))
                                   "")))
                            (path-list-string->path-list
                             app_0
                             (add-config-search
                              config-table_0
                              'collects-search-dirs
                              (let ((app_1
                                     (if user-too?_1
                                       (build-path
                                        (find-system-path 'addon-dir)
                                        installation-name_0
                                        "collects")
                                       #f)))
                                (cons-if_0
                                 app_1
                                 (letrec*
                                  ((loop_0
                                    (|#%name|
                                     loop
                                     (lambda (l_0)
                                       (begin
                                         (if (null? l_0)
                                           null
                                           (let ((collects-path_0 (car l_0)))
                                             (let ((v_0
                                                    (exe-relative-path->complete-path
                                                     collects-path_0)))
                                               (if v_0
                                                 (let ((app_2
                                                        (simplify-path
                                                         (path->complete-path
                                                          v_0
                                                          (current-directory)))))
                                                   (cons
                                                    app_2
                                                    (loop_0 (cdr l_0))))
                                                 (loop_0 (cdr l_0)))))))))))
                                  (loop_0
                                   (append
                                    extra-collects-dirs4_0
                                    (list (find-system-path 'collects-dir))
                                    post-collects-dirs5_0)))))))))))))))))))
    (|#%name|
     find-library-collection-paths
     (case-lambda
      (()
       (begin
         (find-library-collection-paths_0
          null
          null
          unsafe-undefined
          unsafe-undefined)))
      ((extra-collects-dirs_0
        post-collects-dirs_0
        config-table_0
        installation-name7_0)
       (find-library-collection-paths_0
        extra-collects-dirs_0
        post-collects-dirs_0
        config-table_0
        installation-name7_0))
      ((extra-collects-dirs_0 post-collects-dirs_0 config-table6_0)
       (find-library-collection-paths_0
        extra-collects-dirs_0
        post-collects-dirs_0
        config-table6_0
        unsafe-undefined))
      ((extra-collects-dirs_0 post-collects-dirs5_0)
       (find-library-collection-paths_0
        extra-collects-dirs_0
        post-collects-dirs5_0
        unsafe-undefined
        unsafe-undefined))
      ((extra-collects-dirs4_0)
       (find-library-collection-paths_0
        extra-collects-dirs4_0
        null
        unsafe-undefined
        unsafe-undefined))))))
(define 1/find-compiled-file-roots
  (let ((find-compiled-file-roots_0
         (|#%name|
          find-compiled-file-roots
          (lambda (ht8_0)
            (begin
              (let ((ht_0
                     (if (eq? ht8_0 unsafe-undefined)
                       (1/read-installation-configuration-table)
                       ht8_0)))
                (begin
                  (if (hash? ht_0)
                    (void)
                    (raise-argument-error
                     'find-compiled-file-roots
                     "hash?"
                     ht_0))
                  (let ((paths_0 (hash-ref ht_0 'compiled-file-roots #f)))
                    (let ((or-part_0
                           (if (list? paths_0)
                             (map_1346 coerce-to-relative-path paths_0)
                             #f)))
                      (if or-part_0 or-part_0 (list 'same)))))))))))
    (|#%name|
     find-compiled-file-roots
     (case-lambda
      (() (begin (find-compiled-file-roots_0 unsafe-undefined)))
      ((ht8_0) (find-compiled-file-roots_0 ht8_0))))))
(define-values
 (prop:readtable prop:readtable? prop:readtable-ref)
 (make-struct-type-property 'readtable))
(define 1/current-readtable
  (make-parameter
   #f
   (lambda (v_0)
     (begin
       (if (let ((or-part_0 (not v_0)))
             (if or-part_0 or-part_0 (prop:readtable? v_0)))
         (void)
         (raise-argument-error
          'current-readtable
          "(or/c prop:readtable? #f)"
          v_0))
       v_0))
   'current-readtable))
(define finish_2405
  (make-struct-type-install-properties
   '(read-config)
   7
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6)
   #f
   'read-config/outer))
(define struct:read-config/outer
  (make-record-type-descriptor
   'read-config
   #f
   (|#%nongenerative-uid| read-config)
   #f
   #f
   '(7 . 0)))
(define effect_2490 (finish_2405 struct:read-config/outer))
(define read-config/outer1.1
  (|#%name|
   read-config/outer
   (record-constructor
    (make-record-constructor-descriptor struct:read-config/outer #f #f))))
(define read-config/outer?
  (|#%name| read-config? (record-predicate struct:read-config/outer)))
(define read-config/outer-inner
  (|#%name| read-config-inner (record-accessor struct:read-config/outer 0)))
(define read-config/outer-wrap
  (|#%name| read-config-wrap (record-accessor struct:read-config/outer 1)))
(define read-config/outer-line
  (|#%name| read-config-line (record-accessor struct:read-config/outer 2)))
(define read-config/outer-col
  (|#%name| read-config-col (record-accessor struct:read-config/outer 3)))
(define read-config/outer-pos
  (|#%name| read-config-pos (record-accessor struct:read-config/outer 4)))
(define read-config/outer-indentations
  (|#%name|
   read-config-indentations
   (record-accessor struct:read-config/outer 5)))
(define read-config/outer-keep-comment?
  (|#%name|
   read-config-keep-comment?
   (record-accessor struct:read-config/outer 6)))
(define finish_2733
  (make-struct-type-install-properties
   '(read-config/inner)
   13
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10 11 12)
   #f
   'read-config/inner))
(define struct:read-config/inner
  (make-record-type-descriptor
   'read-config/inner
   #f
   (|#%nongenerative-uid| read-config/inner)
   #f
   #f
   '(13 . 0)))
(define effect_2436 (finish_2733 struct:read-config/inner))
(define read-config/inner2.1
  (|#%name|
   read-config/inner
   (record-constructor
    (make-record-constructor-descriptor struct:read-config/inner #f #f))))
(define read-config/inner?
  (|#%name| read-config/inner? (record-predicate struct:read-config/inner)))
(define read-config/inner-readtable
  (|#%name|
   read-config/inner-readtable
   (record-accessor struct:read-config/inner 0)))
(define read-config/inner-next-readtable
  (|#%name|
   read-config/inner-next-readtable
   (record-accessor struct:read-config/inner 1)))
(define read-config/inner-for-syntax?
  (|#%name|
   read-config/inner-for-syntax?
   (record-accessor struct:read-config/inner 2)))
(define read-config/inner-source
  (|#%name|
   read-config/inner-source
   (record-accessor struct:read-config/inner 3)))
(define read-config/inner-read-compiled
  (|#%name|
   read-config/inner-read-compiled
   (record-accessor struct:read-config/inner 4)))
(define read-config/inner-call-with-root-namespace
  (|#%name|
   read-config/inner-call-with-root-namespace
   (record-accessor struct:read-config/inner 5)))
(define read-config/inner-dynamic-require
  (|#%name|
   read-config/inner-dynamic-require
   (record-accessor struct:read-config/inner 6)))
(define read-config/inner-module-declared?
  (|#%name|
   read-config/inner-module-declared?
   (record-accessor struct:read-config/inner 7)))
(define read-config/inner-coerce
  (|#%name|
   read-config/inner-coerce
   (record-accessor struct:read-config/inner 8)))
(define read-config/inner-coerce-key
  (|#%name|
   read-config/inner-coerce-key
   (record-accessor struct:read-config/inner 9)))
(define read-config/inner-parameter-override
  (|#%name|
   read-config/inner-parameter-override
   (record-accessor struct:read-config/inner 10)))
(define read-config/inner-parameter-cache
  (|#%name|
   read-config/inner-parameter-cache
   (record-accessor struct:read-config/inner 11)))
(define read-config/inner-st
  (|#%name|
   read-config/inner-st
   (record-accessor struct:read-config/inner 12)))
(define read-config/make
  (lambda (readtable_0
           next-readtable_0
           for-syntax?_0
           source_0
           wrap_0
           read-compiled_0
           call-with-root-namespace_0
           dynamic-require_0
           module-declared?_0
           coerce_0
           coerce-key_0
           line_0
           col_0
           pos_0
           indentations_0
           keep-comment?_0
           parameter-override_0
           parameter-cache_0
           st_0)
    (read-config/outer1.1
     (read-config/inner2.1
      readtable_0
      next-readtable_0
      for-syntax?_0
      source_0
      read-compiled_0
      call-with-root-namespace_0
      dynamic-require_0
      module-declared?_0
      coerce_0
      coerce-key_0
      parameter-override_0
      parameter-cache_0
      st_0)
     wrap_0
     line_0
     col_0
     pos_0
     indentations_0
     keep-comment?_0)))
(define read-config-wrap (lambda (v_0) (read-config/outer-wrap v_0)))
(define read-config-line (lambda (v_0) (read-config/outer-line v_0)))
(define read-config-col (lambda (v_0) (read-config/outer-col v_0)))
(define read-config-pos (lambda (v_0) (read-config/outer-pos v_0)))
(define read-config-indentations
  (lambda (v_0) (read-config/outer-indentations v_0)))
(define read-config-keep-comment?
  (lambda (v_0) (read-config/outer-keep-comment? v_0)))
(define read-config-readtable
  (lambda (v_0) (read-config/inner-readtable (read-config/outer-inner v_0))))
(define read-config-next-readtable
  (lambda (v_0)
    (read-config/inner-next-readtable (read-config/outer-inner v_0))))
(define read-config-for-syntax?
  (lambda (v_0) (read-config/inner-for-syntax? (read-config/outer-inner v_0))))
(define read-config-source
  (lambda (v_0) (read-config/inner-source (read-config/outer-inner v_0))))
(define read-config-read-compiled
  (lambda (v_0)
    (read-config/inner-read-compiled (read-config/outer-inner v_0))))
(define read-config-call-with-root-namespace
  (lambda (v_0)
    (read-config/inner-call-with-root-namespace
     (read-config/outer-inner v_0))))
(define read-config-dynamic-require
  (lambda (v_0)
    (read-config/inner-dynamic-require (read-config/outer-inner v_0))))
(define read-config-module-declared?
  (lambda (v_0)
    (read-config/inner-module-declared? (read-config/outer-inner v_0))))
(define read-config-coerce
  (lambda (v_0) (read-config/inner-coerce (read-config/outer-inner v_0))))
(define read-config-coerce-key
  (lambda (v_0) (read-config/inner-coerce-key (read-config/outer-inner v_0))))
(define read-config-parameter-override
  (lambda (v_0)
    (read-config/inner-parameter-override (read-config/outer-inner v_0))))
(define read-config-parameter-cache
  (lambda (v_0)
    (read-config/inner-parameter-cache (read-config/outer-inner v_0))))
(define read-config-st
  (lambda (v_0) (read-config/inner-st (read-config/outer-inner v_0))))
(define finish_2658
  (make-struct-type-install-properties
   '(read-config-state)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '()
   #f
   'read-config-state))
(define struct:read-config-state
  (make-record-type-descriptor
   'read-config-state
   #f
   (|#%nongenerative-uid| read-config-state)
   #f
   #f
   '(2 . 3)))
(define effect_2073 (finish_2658 struct:read-config-state))
(define read-config-state3.1
  (|#%name|
   read-config-state
   (record-constructor
    (make-record-constructor-descriptor struct:read-config-state #f #f))))
(define read-config-state?_2637
  (|#%name| read-config-state? (record-predicate struct:read-config-state)))
(define read-config-state?
  (|#%name|
   read-config-state?
   (lambda (v)
     (if (read-config-state?_2637 v)
       #t
       ($value
        (if (impersonator? v)
          (read-config-state?_2637 (impersonator-val v))
          #f))))))
(define read-config-state-accum-str_2333
  (|#%name|
   read-config-state-accum-str
   (record-accessor struct:read-config-state 0)))
(define read-config-state-accum-str
  (|#%name|
   read-config-state-accum-str
   (lambda (s)
     (if (read-config-state?_2637 s)
       (read-config-state-accum-str_2333 s)
       ($value
        (impersonate-ref
         read-config-state-accum-str_2333
         struct:read-config-state
         0
         s
         'accum-str))))))
(define read-config-state-graph_2751
  (|#%name|
   read-config-state-graph
   (record-accessor struct:read-config-state 1)))
(define read-config-state-graph
  (|#%name|
   read-config-state-graph
   (lambda (s)
     (if (read-config-state?_2637 s)
       (read-config-state-graph_2751 s)
       ($value
        (impersonate-ref
         read-config-state-graph_2751
         struct:read-config-state
         1
         s
         'graph))))))
(define set-read-config-state-accum-str!_2145
  (|#%name|
   set-read-config-state-accum-str!
   (record-mutator struct:read-config-state 0)))
(define set-read-config-state-accum-str!
  (|#%name|
   set-read-config-state-accum-str!
   (lambda (s v)
     (if (read-config-state?_2637 s)
       (set-read-config-state-accum-str!_2145 s v)
       ($value
        (impersonate-set!
         set-read-config-state-accum-str!_2145
         struct:read-config-state
         0
         0
         s
         v
         'accum-str))))))
(define set-read-config-state-graph!_3119
  (|#%name|
   set-read-config-state-graph!
   (record-mutator struct:read-config-state 1)))
(define set-read-config-state-graph!
  (|#%name|
   set-read-config-state-graph!
   (lambda (s v)
     (if (read-config-state?_2637 s)
       (set-read-config-state-graph!_3119 s v)
       ($value
        (impersonate-set!
         set-read-config-state-graph!_3119
         struct:read-config-state
         1
         1
         s
         v
         'graph))))))
(define default-val.1 #f)
(define current-read-config
  (lambda () (continuation-mark-set-first #f current-read-config #f root-tag)))
(define make-read-config.1
  (|#%name|
   make-read-config
   (lambda (call-with-root-namespace10_0
            coerce13_0
            coerce-key14_0
            dynamic-require11_0
            for-syntax?5_0
            keep-comment?15_0
            module-declared?12_0
            next-readtable7_0
            read-compiled9_0
            readtable6_0
            source4_0
            wrap8_0)
     (begin
       (let ((readtable_0
              (if (eq? readtable6_0 unsafe-undefined)
                (1/current-readtable)
                readtable6_0)))
         (let ((next-readtable_0
                (if (eq? next-readtable7_0 unsafe-undefined)
                  readtable_0
                  next-readtable7_0)))
           (let ((read-compiled_0
                  (if read-compiled9_0
                    read-compiled9_0
                    (lambda (in_0)
                      (error 'read "no `read-compiled` provided")))))
             (let ((call-with-root-namespace_0
                    (if call-with-root-namespace10_0
                      call-with-root-namespace10_0
                      (lambda (thunk_0)
                        (error
                         'read
                         "no `call-with-root-namespace` provided")))))
               (let ((dynamic-require_0
                      (if dynamic-require11_0
                        dynamic-require11_0
                        (lambda (mod-path_0 sym_0 failure-k_0)
                          (error 'read "no `dynamic-require` provided")))))
                 (let ((module-declared?_0
                        (if module-declared?12_0
                          module-declared?12_0
                          (lambda (mod-path_0)
                            (error 'read "no `module-declare?` provided")))))
                   (let ((coerce_0
                          (if coerce13_0
                            coerce13_0
                            (lambda (for-syntax?_0 v_0 srcloc_0) v_0))))
                     (let ((coerce-key_0
                            (if coerce-key14_0
                              coerce-key14_0
                              (lambda (for-syntax?_0 v_0) v_0))))
                       (let ((parameter-override_0 hash2610))
                         (let ((parameter-cache_0 (make-hasheq)))
                           (let ((st_0 (read-config-state3.1 #f #f)))
                             (let ((parameter-cache_1 parameter-cache_0)
                                   (parameter-override_1 parameter-override_0)
                                   (coerce-key_1 coerce-key_0)
                                   (coerce_1 coerce_0)
                                   (module-declared?_1 module-declared?_0)
                                   (dynamic-require_1 dynamic-require_0)
                                   (call-with-root-namespace_1
                                    call-with-root-namespace_0)
                                   (read-compiled_1 read-compiled_0))
                               (begin-unsafe
                                (read-config/outer1.1
                                 (read-config/inner2.1
                                  readtable_0
                                  next-readtable_0
                                  for-syntax?5_0
                                  source4_0
                                  read-compiled_1
                                  call-with-root-namespace_1
                                  dynamic-require_1
                                  module-declared?_1
                                  coerce_1
                                  coerce-key_1
                                  parameter-override_1
                                  parameter-cache_1
                                  st_0)
                                 wrap8_0
                                 #f
                                 #f
                                 #f
                                 null
                                 keep-comment?15_0))))))))))))))))))
(define read-config-update.1
  (|#%name|
   read-config-update
   (lambda (for-syntax?29_0
            keep-comment?34_0
            next-readtable32_0
            readtable31_0
            reset-graph?33_0
            wrap30_0
            config41_0)
     (begin
       (let ((next-readtable_0
              (if (eq? next-readtable32_0 unsafe-undefined)
                (begin-unsafe
                 (read-config/inner-readtable
                  (read-config/outer-inner config41_0)))
                next-readtable32_0)))
         (if (read-config/outer? config41_0)
           (let ((inner53_0
                  (let ((the-struct_0 (read-config/outer-inner config41_0)))
                    (if (read-config/inner? the-struct_0)
                      (let ((st57_0
                             (if reset-graph?33_0
                               (read-config-state3.1 #f #f)
                               (begin-unsafe
                                (read-config/inner-st
                                 (read-config/outer-inner config41_0))))))
                        (let ((parameter-override58_0 hash2610))
                          (let ((parameter-cache59_0 (make-hasheq)))
                            (let ((parameter-override58_1
                                   parameter-override58_0)
                                  (st57_1 st57_0))
                              (read-config/inner2.1
                               readtable31_0
                               next-readtable_0
                               for-syntax?29_0
                               (read-config/inner-source the-struct_0)
                               (read-config/inner-read-compiled the-struct_0)
                               (read-config/inner-call-with-root-namespace
                                the-struct_0)
                               (read-config/inner-dynamic-require the-struct_0)
                               (read-config/inner-module-declared?
                                the-struct_0)
                               (read-config/inner-coerce the-struct_0)
                               (read-config/inner-coerce-key the-struct_0)
                               parameter-override58_1
                               parameter-cache59_0
                               st57_1)))))
                      (raise-argument-error
                       'struct-copy
                       "read-config/inner?"
                       the-struct_0)))))
             (read-config/outer1.1
              inner53_0
              wrap30_0
              (read-config/outer-line config41_0)
              (read-config/outer-col config41_0)
              (read-config/outer-pos config41_0)
              (read-config/outer-indentations config41_0)
              keep-comment?34_0))
           (raise-argument-error
            'struct-copy
            "read-config/outer?"
            config41_0)))))))
(define port+config->srcloc.1
  (|#%name|
   port+config->srcloc
   (lambda (end-pos43_0 in45_0 config46_0)
     (begin
       (let ((end-pos_0
              (if end-pos43_0
                end-pos43_0
                (call-with-values
                 (lambda () (port-next-location in45_0))
                 (case-lambda
                  ((end-line_0 end-col_0 end-pos_0) end-pos_0)
                  (args (raise-binding-result-arity-error 3 args)))))))
         (let ((app_0
                (let ((or-part_0
                       (begin-unsafe
                        (read-config/inner-source
                         (read-config/outer-inner config46_0)))))
                  (if or-part_0
                    or-part_0
                    (let ((or-part_1 (object-name in45_0)))
                      (if or-part_1 or-part_1 "UNKNOWN"))))))
           (let ((app_1 (begin-unsafe (read-config/outer-line config46_0))))
             (let ((app_2 (begin-unsafe (read-config/outer-col config46_0))))
               (let ((app_3 (begin-unsafe (read-config/outer-pos config46_0))))
                 (unsafe-make-srcloc
                  app_0
                  app_1
                  app_2
                  app_3
                  (if (begin-unsafe (read-config/outer-pos config46_0))
                    (if end-pos_0
                      (max
                       0
                       (-
                        end-pos_0
                        (begin-unsafe (read-config/outer-pos config46_0))))
                      #f)
                    #f)))))))))))
(define reading-at
  (lambda (config_0 line_0 col_0 pos_0)
    (if (read-config/outer? config_0)
      (let ((inner63_0 (read-config/outer-inner config_0)))
        (read-config/outer1.1
         inner63_0
         (read-config/outer-wrap config_0)
         line_0
         col_0
         pos_0
         (read-config/outer-indentations config_0)
         (read-config/outer-keep-comment? config_0)))
      (raise-argument-error 'struct-copy "read-config/outer?" config_0))))
(define disable-wrapping
  (lambda (config_0)
    (if (read-config/outer? config_0)
      (let ((inner65_0 (read-config/outer-inner config_0)))
        (read-config/outer1.1
         inner65_0
         #f
         (read-config/outer-line config_0)
         (read-config/outer-col config_0)
         (read-config/outer-pos config_0)
         (read-config/outer-indentations config_0)
         (read-config/outer-keep-comment? config_0)))
      (raise-argument-error 'struct-copy "read-config/outer?" config_0))))
(define keep-comment
  (lambda (config_0)
    (if (read-config/outer? config_0)
      (let ((inner67_0 (read-config/outer-inner config_0)))
        (read-config/outer1.1
         inner67_0
         (read-config/outer-wrap config_0)
         (read-config/outer-line config_0)
         (read-config/outer-col config_0)
         (read-config/outer-pos config_0)
         (read-config/outer-indentations config_0)
         #t))
      (raise-argument-error 'struct-copy "read-config/outer?" config_0))))
(define discard-comment
  (lambda (config_0)
    (if (not (begin-unsafe (read-config/outer-keep-comment? config_0)))
      config_0
      (if (read-config/outer? config_0)
        (let ((inner69_0 (read-config/outer-inner config_0)))
          (read-config/outer1.1
           inner69_0
           (read-config/outer-wrap config_0)
           (read-config/outer-line config_0)
           (read-config/outer-col config_0)
           (read-config/outer-pos config_0)
           (read-config/outer-indentations config_0)
           #f))
        (raise-argument-error 'struct-copy "read-config/outer?" config_0)))))
(define next-readtable
  (lambda (config_0)
    (if (eq?
         (begin-unsafe
          (read-config/inner-readtable (read-config/outer-inner config_0)))
         (begin-unsafe
          (read-config/inner-next-readtable
           (read-config/outer-inner config_0))))
      config_0
      (if (read-config/outer? config_0)
        (let ((inner70_0
               (let ((the-struct_0 (read-config/outer-inner config_0)))
                 (if (read-config/inner? the-struct_0)
                   (let ((readtable71_0
                          (begin-unsafe
                           (read-config/inner-next-readtable
                            (read-config/outer-inner config_0)))))
                     (read-config/inner2.1
                      readtable71_0
                      (read-config/inner-next-readtable the-struct_0)
                      (read-config/inner-for-syntax? the-struct_0)
                      (read-config/inner-source the-struct_0)
                      (read-config/inner-read-compiled the-struct_0)
                      (read-config/inner-call-with-root-namespace the-struct_0)
                      (read-config/inner-dynamic-require the-struct_0)
                      (read-config/inner-module-declared? the-struct_0)
                      (read-config/inner-coerce the-struct_0)
                      (read-config/inner-coerce-key the-struct_0)
                      (read-config/inner-parameter-override the-struct_0)
                      (read-config/inner-parameter-cache the-struct_0)
                      (read-config/inner-st the-struct_0)))
                   (raise-argument-error
                    'struct-copy
                    "read-config/inner?"
                    the-struct_0)))))
          (read-config/outer1.1
           inner70_0
           (read-config/outer-wrap config_0)
           (read-config/outer-line config_0)
           (read-config/outer-col config_0)
           (read-config/outer-pos config_0)
           (read-config/outer-indentations config_0)
           (read-config/outer-keep-comment? config_0)))
        (raise-argument-error 'struct-copy "read-config/outer?" config_0)))))
(define coerce
  (lambda (val_0 in_0 config_0)
    (let ((for-syntax?_0
           (begin-unsafe
            (read-config/inner-for-syntax?
             (read-config/outer-inner config_0)))))
      (|#%app|
       (begin-unsafe
        (read-config/inner-coerce (read-config/outer-inner config_0)))
       for-syntax?_0
       val_0
       (if for-syntax?_0 (port+config->srcloc.1 #f in_0 config_0) #f)))))
(define default-reader-guard$1
  (|#%name| default-reader-guard (lambda (v_0) (begin v_0))))
(define 1/current-reader-guard
  (make-parameter
   default-reader-guard$1
   (lambda (v_0)
     (begin
       (if (if (procedure? v_0) (procedure-arity-includes? v_0 1) #f)
         (void)
         (raise-argument-error
          'current-reader-guard
          "(procedure-arity-includes/c 1)"
          v_0))
       v_0))
   'current-reader-guard))
(define 1/read-square-bracket-as-paren
  (make-parameter
   #t
   (lambda (v_0) (if v_0 #t #f))
   'read-square-bracket-as-paren))
(define 1/read-curly-brace-as-paren
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-curly-brace-as-paren))
(define 1/read-square-bracket-with-tag
  (make-parameter
   #f
   (lambda (v_0) (if v_0 #t #f))
   'read-square-bracket-with-tag))
(define 1/read-curly-brace-with-tag
  (make-parameter #f (lambda (v_0) (if v_0 #t #f)) 'read-curly-brace-with-tag))
(define 1/read-cdot
  (make-parameter #f (lambda (v_0) (if v_0 #t #f)) 'read-cdot))
(define 1/read-accept-graph
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-accept-graph))
(define 1/read-syntax-accept-graph
  (make-parameter #f (lambda (v_0) (if v_0 #t #f)) 'read-syntax-accept-graph))
(define 1/read-accept-compiled
  (make-parameter #f (lambda (v_0) (if v_0 #t #f)) 'read-accept-compiled))
(define 1/read-accept-box
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-accept-box))
(define 1/read-single-flonum
  (make-parameter #f (lambda (v_0) (if v_0 #t #f)) 'read-single-flonum))
(define 1/read-decimal-as-inexact
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-decimal-as-inexact))
(define 1/read-accept-dot
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-accept-dot))
(define 1/read-accept-infix-dot
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-accept-infix-dot))
(define 1/read-accept-quasiquote
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-accept-quasiquote))
(define 1/read-accept-reader
  (make-parameter #f (lambda (v_0) (if v_0 #t #f)) 'read-accept-reader))
(define 1/read-accept-lang
  (make-parameter #t (lambda (v_0) (if v_0 #t #f)) 'read-accept-lang))
(define unknown (gensym 'unknown))
(define check-parameter
  (lambda (param_0 config_0)
    (let ((cache_0
           (begin-unsafe
            (read-config/inner-parameter-cache
             (read-config/outer-inner config_0)))))
      (let ((v_0
             (hash-ref
              (begin-unsafe
               (read-config/inner-parameter-override
                (read-config/outer-inner config_0)))
              param_0
              (hash-ref cache_0 param_0 unknown))))
        (if (eq? v_0 unknown)
          (let ((v_1 (|#%app| param_0)))
            (begin (hash-set! cache_0 param_0 v_1) v_1))
          v_0)))))
(define override-parameter
  (lambda (param_0 config_0 v_0)
    (if (read-config/outer? config_0)
      (let ((inner1_0
             (let ((the-struct_0 (read-config/outer-inner config_0)))
               (if (read-config/inner? the-struct_0)
                 (let ((parameter-override2_0
                        (hash-set
                         (begin-unsafe
                          (read-config/inner-parameter-override
                           (read-config/outer-inner config_0)))
                         param_0
                         v_0)))
                   (read-config/inner2.1
                    (read-config/inner-readtable the-struct_0)
                    (read-config/inner-next-readtable the-struct_0)
                    (read-config/inner-for-syntax? the-struct_0)
                    (read-config/inner-source the-struct_0)
                    (read-config/inner-read-compiled the-struct_0)
                    (read-config/inner-call-with-root-namespace the-struct_0)
                    (read-config/inner-dynamic-require the-struct_0)
                    (read-config/inner-module-declared? the-struct_0)
                    (read-config/inner-coerce the-struct_0)
                    (read-config/inner-coerce-key the-struct_0)
                    parameter-override2_0
                    (read-config/inner-parameter-cache the-struct_0)
                    (read-config/inner-st the-struct_0)))
                 (raise-argument-error
                  'struct-copy
                  "read-config/inner?"
                  the-struct_0)))))
        (read-config/outer1.1
         inner1_0
         (read-config/outer-wrap config_0)
         (read-config/outer-line config_0)
         (read-config/outer-col config_0)
         (read-config/outer-pos config_0)
         (read-config/outer-indentations config_0)
         (read-config/outer-keep-comment? config_0)))
      (raise-argument-error 'struct-copy "read-config/outer?" config_0))))
(define force-parameters!
  (lambda (config_0)
    (let ((cache_0
           (begin-unsafe
            (read-config/inner-parameter-cache
             (read-config/outer-inner config_0)))))
      (if (hash-ref cache_0 'all-forced #f)
        (void)
        (begin
          (hash-set! cache_0 'all-forced #t)
          (check-parameter read-case-sensitive config_0)
          (check-parameter 1/read-square-bracket-as-paren config_0)
          (check-parameter 1/read-curly-brace-as-paren config_0)
          (check-parameter 1/read-square-bracket-with-tag config_0)
          (check-parameter 1/read-curly-brace-with-tag config_0)
          (check-parameter 1/read-cdot config_0)
          (check-parameter 1/read-accept-graph config_0)
          (check-parameter 1/read-syntax-accept-graph config_0)
          (check-parameter 1/read-accept-compiled config_0)
          (check-parameter 1/read-accept-box config_0)
          (check-parameter read-accept-bar-quote config_0)
          (check-parameter 1/read-decimal-as-inexact config_0)
          (check-parameter 1/read-single-flonum config_0)
          (check-parameter 1/read-accept-dot config_0)
          (check-parameter 1/read-accept-infix-dot config_0)
          (check-parameter 1/read-accept-quasiquote config_0)
          (check-parameter 1/read-accept-reader config_0)
          (check-parameter 1/read-accept-lang config_0))))))
(define finish_2605
  (make-struct-type-install-properties
   '(special-comment)
   1
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0)
   #f
   'make-special-comment))
(define struct:special-comment
  (make-record-type-descriptor
   'special-comment
   #f
   (|#%nongenerative-uid| special-comment)
   #f
   #f
   '(1 . 0)))
(define effect_3106 (finish_2605 struct:special-comment))
(define 1/make-special-comment
  (|#%name|
   make-special-comment
   (record-constructor
    (make-record-constructor-descriptor struct:special-comment #f #f))))
(define 1/special-comment?
  (|#%name| special-comment? (record-predicate struct:special-comment)))
(define 1/special-comment-value
  (|#%name| special-comment-value (record-accessor struct:special-comment 0)))
(define finish_2508
  (make-struct-type-install-properties
   '(readtable)
   4
   0
   #f
   (list (cons prop:authentic #t) (cons prop:readtable #t))
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'readtable))
(define struct:readtable
  (make-record-type-descriptor
   'readtable
   #f
   (|#%nongenerative-uid| readtable)
   #f
   #f
   '(4 . 0)))
(define effect_2167 (finish_2508 struct:readtable))
(define readtable1.1
  (|#%name|
   readtable
   (record-constructor
    (make-record-constructor-descriptor struct:readtable #f #f))))
(define 1/readtable? (|#%name| readtable? (record-predicate struct:readtable)))
(define readtable-symbol-parser
  (|#%name| readtable-symbol-parser (record-accessor struct:readtable 0)))
(define readtable-char-ht
  (|#%name| readtable-char-ht (record-accessor struct:readtable 1)))
(define readtable-dispatch-ht
  (|#%name| readtable-dispatch-ht (record-accessor struct:readtable 2)))
(define readtable-delimiter-ht
  (|#%name| readtable-delimiter-ht (record-accessor struct:readtable 3)))
(define 1/make-readtable
  (|#%name|
   make-readtable
   (lambda (rt_0 . args_0)
     (begin
       (begin
         (if (let ((or-part_0 (not rt_0)))
               (if or-part_0 or-part_0 (1/readtable? rt_0)))
           (void)
           (raise-argument-error 'make-readtable "(or/c readtable? #f)" rt_0))
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (args_1
                      symbol-parser_0
                      char-ht_0
                      dispatch-ht_0
                      delimiter-ht_0)
               (begin
                 (if (null? args_1)
                   (readtable1.1
                    symbol-parser_0
                    char-ht_0
                    dispatch-ht_0
                    delimiter-ht_0)
                   (let ((key_0 (car args_1)))
                     (begin
                       (if (let ((or-part_0 (not key_0)))
                             (if or-part_0 or-part_0 (char? key_0)))
                         (void)
                         (raise-argument-error
                          'make-readtable
                          "(or/c char? #f)"
                          key_0))
                       (begin
                         (if (null? (cdr args_1))
                           (if key_0
                             (raise-arguments-error
                              'make-readtable
                              (string-append
                               "expected 'terminating-macro, 'non-terminating-macro, 'dispatch-macro,"
                               " or character argument after character argument")
                              "character"
                              key_0)
                             (raise-arguments-error
                              'make-readtable
                              "expected 'non-terminating-macro after #f"))
                           (void))
                         (let ((mode_0 (cadr args_1)))
                           (begin
                             (if key_0
                               (if (let ((or-part_0
                                          (eq? mode_0 'terminating-macro)))
                                     (if or-part_0
                                       or-part_0
                                       (let ((or-part_1
                                              (eq?
                                               mode_0
                                               'non-terminating-macro)))
                                         (if or-part_1
                                           or-part_1
                                           (let ((or-part_2
                                                  (eq?
                                                   mode_0
                                                   'dispatch-macro)))
                                             (if or-part_2
                                               or-part_2
                                               (char? mode_0)))))))
                                 (void)
                                 (raise-argument-error
                                  'make-readtable
                                  "(or/c 'terminating-macro 'non-terminating-macro 'dispatch-macro char?)"
                                  mode_0))
                               (if (eq? mode_0 'non-terminating-macro)
                                 (void)
                                 (raise-arguments-error
                                  'make-readtable
                                  "expected 'non-terminating-macro after #f")))
                             (begin
                               (if (null? (cddr args_1))
                                 (raise-arguments-error
                                  'make-readtable
                                  (if (char? mode_0)
                                    "expected readtable or #f argument after character argument"
                                    "expected procedure argument after symbol argument")
                                  (if (char? mode_0) "character" "symbol")
                                  mode_0)
                                 (void))
                               (let ((target_0 (caddr args_1)))
                                 (let ((rest-args_0 (cdddr args_1)))
                                   (if (not key_0)
                                     (begin
                                       (if (if (procedure? target_0)
                                             (procedure-arity-includes?
                                              target_0
                                              6)
                                             #f)
                                         (void)
                                         (raise-argument-error
                                          'make-readtable
                                          "(procedure-arity-includes/c 6)"
                                          target_0))
                                       (loop_0
                                        rest-args_0
                                        target_0
                                        char-ht_0
                                        dispatch-ht_0
                                        delimiter-ht_0))
                                     (if (eq? mode_0 'dispatch-macro)
                                       (begin
                                         (if (if (procedure? target_0)
                                               (procedure-arity-includes?
                                                target_0
                                                6)
                                               #f)
                                           (void)
                                           (raise-argument-error
                                            'make-readtable
                                            "(procedure-arity-includes/c 6)"
                                            target_0))
                                         (loop_0
                                          rest-args_0
                                          symbol-parser_0
                                          char-ht_0
                                          (hash-set
                                           dispatch-ht_0
                                           key_0
                                           target_0)
                                          delimiter-ht_0))
                                       (if (char? mode_0)
                                         (begin
                                           (if (let ((or-part_0
                                                      (not target_0)))
                                                 (if or-part_0
                                                   or-part_0
                                                   (1/readtable? target_0)))
                                             (void)
                                             (raise-argument-error
                                              'make-readtable
                                              "(or/c readtable? #f)"
                                              target_0))
                                           (let ((actual-target_0
                                                  (let ((or-part_0
                                                         (if target_0
                                                           (hash-ref
                                                            (readtable-char-ht
                                                             target_0)
                                                            mode_0
                                                            #f)
                                                           #f)))
                                                    (if or-part_0
                                                      or-part_0
                                                      mode_0))))
                                             (let ((new-char-ht_0
                                                    (if actual-target_0
                                                      (hash-set
                                                       char-ht_0
                                                       key_0
                                                       actual-target_0)
                                                      (hash-remove
                                                       char-ht_0
                                                       key_0))))
                                               (let ((new-delimiter-ht_0
                                                      (hash-set
                                                       delimiter-ht_0
                                                       key_0
                                                       (if target_0
                                                         (hash-ref
                                                          (readtable-delimiter-ht
                                                           target_0)
                                                          mode_0
                                                          mode_0)
                                                         mode_0))))
                                                 (loop_0
                                                  rest-args_0
                                                  symbol-parser_0
                                                  new-char-ht_0
                                                  dispatch-ht_0
                                                  new-delimiter-ht_0)))))
                                         (begin
                                           (if (if (procedure? target_0)
                                                 (procedure-arity-includes?
                                                  target_0
                                                  6)
                                                 #f)
                                             (void)
                                             (raise-argument-error
                                              'make-readtable
                                              "(procedure-arity-includes/c 6)"
                                              target_0))
                                           (let ((new-char-ht_0
                                                  (hash-set
                                                   char-ht_0
                                                   key_0
                                                   target_0)))
                                             (let ((new-delimiter-ht_0
                                                    (hash-set
                                                     delimiter-ht_0
                                                     key_0
                                                     (if (eq?
                                                          mode_0
                                                          'terminating-macro)
                                                       'delimit
                                                       'no-delimit))))
                                               (loop_0
                                                rest-args_0
                                                symbol-parser_0
                                                new-char-ht_0
                                                dispatch-ht_0
                                                new-delimiter-ht_0)))))))))))))))))))))
          (loop_0
           args_0
           (if rt_0 (readtable-symbol-parser rt_0) #f)
           (if rt_0 (readtable-char-ht rt_0) hash2589)
           (if rt_0 (readtable-dispatch-ht rt_0) hash2589)
           (if rt_0 (readtable-delimiter-ht rt_0) hash2589))))))))
(define *readtable-effective-char
  (lambda (rt_0 c_0 handler_0)
    (let ((target_0 (hash-ref (readtable-char-ht rt_0) c_0 #f)))
      (if (not target_0) c_0 (if (char? target_0) target_0 handler_0)))))
(define |readtable-effective-char/#|
  (lambda (rt_0 c_0)
    (if (if rt_0 (hash-ref (readtable-dispatch-ht rt_0) c_0 #f) #f) #f c_0)))
(define effective-char
  (lambda (c_0 config_0)
    (let ((rt_0
           (begin-unsafe
            (read-config/inner-readtable (read-config/outer-inner config_0)))))
      (if (let ((or-part_0 (not rt_0)))
            (if or-part_0 or-part_0 (not (char? c_0))))
        c_0
        (*readtable-effective-char rt_0 c_0 '#\x78)))))
(define readtable-handler
  (lambda (config_0 c_0)
    (let ((rt_0
           (begin-unsafe
            (read-config/inner-readtable (read-config/outer-inner config_0)))))
      (if rt_0
        (let ((target_0 (hash-ref (readtable-char-ht rt_0) c_0 #f)))
          (if target_0 (if (not (char? target_0)) target_0 #f) #f))
        #f))))
(define readtable-dispatch-handler
  (lambda (config_0 c_0)
    (begin
      (force-parameters! config_0)
      (let ((rt_0
             (begin-unsafe
              (read-config/inner-readtable
               (read-config/outer-inner config_0)))))
        (if rt_0 (hash-ref (readtable-dispatch-ht rt_0) c_0 #f) #f)))))
(define readtable-apply
  (lambda (handler_0 c_0 in_0 config_0 line_0 col_0 pos_0)
    (let ((for-syntax?_0
           (begin-unsafe
            (read-config/inner-for-syntax?
             (read-config/outer-inner config_0)))))
      (let ((v_0
             (if (not for-syntax?_0)
               (with-continuation-mark*
                push-authentic
                current-read-config
                config_0
                (if (procedure-arity-includes? handler_0 2)
                  (|#%app| handler_0 c_0 in_0)
                  (|#%app| handler_0 c_0 in_0 #f line_0 col_0 pos_0)))
               (with-continuation-mark*
                push-authentic
                current-read-config
                config_0
                (|#%app|
                 handler_0
                 c_0
                 in_0
                 (begin-unsafe
                  (read-config/inner-source
                   (read-config/outer-inner config_0)))
                 line_0
                 col_0
                 pos_0)))))
        (if (1/special-comment? v_0) v_0 (coerce v_0 in_0 config_0))))))
(define 1/readtable-mapping
  (|#%name|
   readtable-mapping
   (lambda (rt_0 c_0)
     (begin
       (begin
         (if (1/readtable? rt_0)
           (void)
           (raise-argument-error 'readtable-mapping "readtable?" rt_0))
         (begin
           (if (char? c_0)
             (void)
             (raise-argument-error 'readtable-mapping "char?" c_0))
           (let ((handler_0 (hash-ref (readtable-char-ht rt_0) c_0 #f)))
             (let ((app_0
                    (let ((or-part_0
                           (if handler_0
                             (if (char? handler_0)
                               handler_0
                               (if (eq?
                                    'delimit
                                    (hash-ref
                                     (readtable-delimiter-ht rt_0)
                                     c_0
                                     #f))
                                 'terminating-macro
                                 'non-terminating-macro))
                             #f)))
                      (if or-part_0 or-part_0 c_0))))
               (values
                app_0
                (if (char? handler_0) #f handler_0)
                (hash-ref (readtable-dispatch-ht rt_0) c_0 #f))))))))))
(define readtable-equivalent-chars
  (lambda (rt_0 c_0)
    (let ((ht_0 (readtable-char-ht rt_0)))
      (let ((app_0 (if (hash-ref ht_0 c_0 #f) null (list c_0))))
        (append
         app_0
         (reverse$1
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (fold-var_0 i_0)
                  (begin
                    (if i_0
                      (call-with-values
                       (lambda () (hash-iterate-key+value ht_0 i_0))
                       (case-lambda
                        ((k_0 v_0)
                         (let ((fold-var_1
                                (if (eqv? v_0 c_0)
                                  (let ((fold-var_1 (cons k_0 fold-var_0)))
                                    (values fold-var_1))
                                  fold-var_0)))
                           (for-loop_0
                            fold-var_1
                            (hash-iterate-next ht_0 i_0))))
                        (args (raise-binding-result-arity-error 2 args))))
                      fold-var_0))))))
             (for-loop_0 null (hash-iterate-first ht_0))))))))))
(define finish_2954
  (make-struct-type-install-properties
   '(special)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'special))
(define struct:special
  (make-record-type-descriptor
   'special
   #f
   (|#%nongenerative-uid| special)
   #f
   #f
   '(1 . 0)))
(define effect_2677 (finish_2954 struct:special))
(define special1.1
  (|#%name|
   special
   (record-constructor
    (make-record-constructor-descriptor struct:special #f #f))))
(define special?_3109 (|#%name| special? (record-predicate struct:special)))
(define special?
  (|#%name|
   special?
   (lambda (v)
     (if (special?_3109 v)
       #t
       ($value
        (if (impersonator? v) (special?_3109 (impersonator-val v)) #f))))))
(define special-value_2789
  (|#%name| special-value (record-accessor struct:special 0)))
(define special-value
  (|#%name|
   special-value
   (lambda (s)
     (if (special?_3109 s)
       (special-value_2789 s)
       ($value
        (impersonate-ref special-value_2789 struct:special 0 s 'value))))))
(define wrap
  (lambda (s-exp_0 in_0 config_0 rep_0)
    (let ((wrap_0 (begin-unsafe (read-config/outer-wrap config_0))))
      (if wrap_0
        (|#%app| wrap_0 s-exp_0 (port+config->srcloc.1 #f in_0 config_0) rep_0)
        s-exp_0))))
(define consume-char (lambda (in_0 c_0) (begin (read-char in_0) (void))))
(define consume-char/special
  (lambda (in_0 config_0 c_0)
    (begin
      (read-char-or-special
       in_0
       special1.1
       (begin-unsafe
        (read-config/inner-source (read-config/outer-inner config_0))))
      (void))))
(define reader-error.1
  (|#%name|
   reader-error
   (lambda (continuation-marks1_0
            due-to2_0
            end-pos4_0
            who3_0
            in9_0
            config10_0
            str11_0
            new-rest_0)
     (begin
       (let ((continuation-marks_0
              (if (eq? continuation-marks1_0 unsafe-undefined)
                (current-continuation-marks)
                continuation-marks1_0)))
         (let ((who_0
                (if (eq? who3_0 unsafe-undefined)
                  (if (begin-unsafe
                       (read-config/inner-for-syntax?
                        (read-config/outer-inner config10_0)))
                    'read-syntax
                    'read)
                  who3_0)))
           (let ((msg_0
                  (format "~a: ~a" who_0 (apply format str11_0 new-rest_0))))
             (let ((srcloc_0
                    (if in9_0
                      (port+config->srcloc.1 end-pos4_0 in9_0 config10_0)
                      #f)))
               (raise
                (let ((app_0
                       (let ((s_0
                              (if (error-print-source-location)
                                (if srcloc_0 (srcloc->string srcloc_0) #f)
                                #f)))
                         (if s_0 (string-append s_0 ": " msg_0) msg_0))))
                  (|#%app|
                   (if (eof-object? due-to2_0)
                     exn:fail:read:eof
                     (if (not (char? due-to2_0))
                       exn:fail:read:non-char
                       exn:fail:read))
                   app_0
                   continuation-marks_0
                   (if srcloc_0 (list srcloc_0) null))))))))))))
(define bad-syntax-error.1
  (|#%name|
   bad-syntax-error
   (lambda (due-to13_0 in15_0 config16_0 str17_0)
     (begin
       (let ((temp25_0 "bad syntax `~a`"))
         (reader-error.1
          unsafe-undefined
          due-to13_0
          #f
          unsafe-undefined
          in15_0
          config16_0
          temp25_0
          (list str17_0)))))))
(define catch-and-reraise-as-reader/proc
  (lambda (in_0 config_0 thunk_0)
    (let ((with-handlers-handler28_0
           (|#%name|
            with-handlers-handler28
            (lambda (exn_0)
              (begin
                (let ((temp31_0 "~a"))
                  (let ((temp32_0
                         (let ((s_0 (exn-message exn_0)))
                           (regexp-replace "^[a-z-]*: " s_0 ""))))
                    (let ((temp33_0 (exn-continuation-marks exn_0)))
                      (let ((temp32_1 temp32_0) (temp31_1 temp31_0))
                        (reader-error.1
                         temp33_0
                         '#\x78
                         #f
                         unsafe-undefined
                         in_0
                         config_0
                         temp31_1
                         (list temp32_1)))))))))))
      (let ((bpz_0 (continuation-mark-set-first #f break-enabled-key)))
        (call-handled-body
         bpz_0
         (lambda (e_0)
           (select-handler/no-breaks
            e_0
            bpz_0
            (list (cons exn:fail? with-handlers-handler28_0))))
         (lambda () (|#%app| thunk_0)))))))
(define port-next-location*
  (lambda (in_0 init-c_0)
    (if (not init-c_0)
      (port-next-location in_0)
      (call-with-values
       (lambda () (port-next-location in_0))
       (case-lambda
        ((line_0 col_0 pos_0)
         (let ((delta_0
                (if (port-counts-lines? in_0)
                  1
                  (if (char? init-c_0) (char-utf-8-length init-c_0) 1))))
           (let ((app_0 (if col_0 (max 0 (- col_0 delta_0)) #f)))
             (values line_0 app_0 (if pos_0 (max 1 (- pos_0 delta_0)) #f)))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define read-char/skip-whitespace-and-comments
  (lambda (init-c_0 read-one_0 in_0 config_0)
    (let ((rt_0
           (begin-unsafe
            (read-config/inner-readtable (read-config/outer-inner config_0)))))
      (let ((source_0
             (begin-unsafe
              (read-config/inner-source (read-config/outer-inner config_0)))))
        (letrec*
         ((skip-loop_0
           (|#%name|
            skip-loop
            (lambda (init-c_1)
              (begin
                (let ((c_0
                       (if init-c_1
                         init-c_1
                         (read-char-or-special in_0 special1.1 source_0))))
                  (let ((ec_0
                         (if (let ((or-part_0 (not rt_0)))
                               (if or-part_0 or-part_0 (not (char? c_0))))
                           c_0
                           (*readtable-effective-char rt_0 c_0 '#\x78))))
                    (if (eof-object? ec_0)
                      c_0
                      (if (not (char? ec_0))
                        (let ((v_0 (special-value c_0)))
                          (if (if (1/special-comment? v_0)
                                (not
                                 (begin-unsafe
                                  (read-config/outer-keep-comment? config_0)))
                                #f)
                            (skip-loop_0 #f)
                            c_0))
                        (if (let ((or-part_0 (char-whitespace? ec_0)))
                              (if or-part_0 or-part_0 (eqv? '#\xfeff ec_0)))
                          (skip-loop_0 #f)
                          (if (char=? '#\x3b ec_0)
                            (begin
                              (letrec*
                               ((loop_0
                                 (|#%name|
                                  loop
                                  (lambda ()
                                    (begin
                                      (let ((c_1
                                             (read-char-or-special
                                              in_0
                                              special1.1
                                              source_0)))
                                        (if (let ((or-part_0
                                                   (eof-object? c_1)))
                                              (if or-part_0
                                                or-part_0
                                                (eqv?
                                                 '#\xa
                                                 (effective-char
                                                  c_1
                                                  config_0))))
                                          (void)
                                          (loop_0))))))))
                               (loop_0))
                              (if (begin-unsafe
                                   (read-config/outer-keep-comment? config_0))
                                (result-special-comment)
                                (skip-loop_0 #f)))
                            (if (if (char=? '#\x23 ec_0)
                                  (eqv?
                                   '#\x7c
                                   (|readtable-effective-char/#|
                                    rt_0
                                    (let ((c_1
                                           (peek-char-or-special
                                            in_0
                                            0
                                            'special
                                            source_0)))
                                      (if (eq? c_1 'special)
                                        (special1.1 'special)
                                        c_1))))
                                  #f)
                              (begin
                                (skip-pipe-comment! c_0 in_0 config_0)
                                (if (begin-unsafe
                                     (read-config/outer-keep-comment?
                                      config_0))
                                  (result-special-comment)
                                  (skip-loop_0 #f)))
                              (if (if (char=? '#\x23 ec_0)
                                    (if (eqv?
                                         '#\x21
                                         (|readtable-effective-char/#|
                                          rt_0
                                          (let ((c_1
                                                 (peek-char-or-special
                                                  in_0
                                                  0
                                                  'special
                                                  source_0)))
                                            (if (eq? c_1 'special)
                                              (special1.1 'special)
                                              c_1))))
                                      (let ((c3_0
                                             (let ((c_1
                                                    (peek-char-or-special
                                                     in_0
                                                     1
                                                     'special
                                                     source_0)))
                                               (if (eq? c_1 'special)
                                                 (special1.1 'special)
                                                 c_1))))
                                        (let ((or-part_0 (eqv? '#\x20 c3_0)))
                                          (if or-part_0
                                            or-part_0
                                            (eqv? '#\x2f c3_0))))
                                      #f)
                                    #f)
                                (begin
                                  (skip-unix-line-comment! in_0 config_0)
                                  (if (begin-unsafe
                                       (read-config/outer-keep-comment?
                                        config_0))
                                    (result-special-comment)
                                    (skip-loop_0 #f)))
                                (if (if (char=? '#\x23 ec_0)
                                      (eqv?
                                       '#\x3b
                                       (|readtable-effective-char/#|
                                        rt_0
                                        (let ((c_1
                                               (peek-char-or-special
                                                in_0
                                                0
                                                'special
                                                source_0)))
                                          (if (eq? c_1 'special)
                                            (special1.1 'special)
                                            c_1))))
                                      #f)
                                  (begin
                                    (begin-unsafe
                                     (begin (read-char in_0) (void)))
                                    (let ((v_0
                                           (|#%app|
                                            read-one_0
                                            #f
                                            in_0
                                            config_0)))
                                      (begin
                                        (if (eof-object? v_0)
                                          (let ((temp4_0
                                                 "expected a commented-out element for `~a;`, but found end-of-file"))
                                            (reader-error.1
                                             unsafe-undefined
                                             v_0
                                             #f
                                             unsafe-undefined
                                             in_0
                                             config_0
                                             temp4_0
                                             (list ec_0)))
                                          (void))
                                        (if (begin-unsafe
                                             (read-config/outer-keep-comment?
                                              config_0))
                                          (result-special-comment)
                                          (skip-loop_0 #f)))))
                                  c_0))))))))))))))
         (skip-loop_0 init-c_0))))))
(define result-special-comment
  (lambda () (special1.1 (1/make-special-comment #f))))
(define skip-pipe-comment!
  (lambda (init-c_0 in_0 config_0)
    (let ((source_0
           (begin-unsafe
            (read-config/inner-source (read-config/outer-inner config_0)))))
      (call-with-values
       (lambda () (port-next-location in_0))
       (case-lambda
        ((line_0 col_0 pos_0)
         (begin
           (begin-unsafe (begin (read-char in_0) (void)))
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (prev-c_0 depth_0)
                 (begin
                   (let ((c_0 (read-char-or-special in_0 special1.1 source_0)))
                     (if (eof-object? c_0)
                       (let ((temp7_0
                              (reading-at config_0 line_0 col_0 pos_0)))
                         (let ((temp9_0 "end of file in `#|` comment"))
                           (let ((temp7_1 temp7_0))
                             (reader-error.1
                              unsafe-undefined
                              c_0
                              #f
                              unsafe-undefined
                              in_0
                              temp7_1
                              temp9_0
                              (list)))))
                       (if (not (char? c_0))
                         (loop_0 #f depth_0)
                         (if (if (char=? '#\x7c c_0) (eqv? prev-c_0 '#\x23) #f)
                           (loop_0 #f (add1 depth_0))
                           (if (if (char=? '#\x23 c_0)
                                 (eqv? prev-c_0 '#\x7c)
                                 #f)
                             (if (positive? depth_0)
                               (loop_0 #f (sub1 depth_0))
                               (void))
                             (loop_0 c_0 depth_0)))))))))))
            (loop_0 #f 0))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define skip-unix-line-comment!
  (lambda (in_0 config_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (backslash?_0)
          (begin
            (let ((c_0
                   (let ((source_0
                          (begin-unsafe
                           (read-config/inner-source
                            (read-config/outer-inner config_0)))))
                     (read-char-or-special in_0 special1.1 source_0))))
              (if (eof-object? c_0)
                (void)
                (if (not (char? c_0))
                  (loop_0 #f)
                  (if (char=? c_0 '#\xa)
                    (if backslash?_0 (loop_0 #f) (void))
                    (if (char=? c_0 '#\x5c) (loop_0 #t) (loop_0 #f)))))))))))
     (loop_0 #f))))
(define special-comment-via-readtable?
  (lambda (c_0 read-one_0 in_0 config_0)
    (let ((v_0
           (if (if (char? c_0)
                 (let ((ec_0
                        (let ((rt_0
                               (begin-unsafe
                                (read-config/inner-readtable
                                 (read-config/outer-inner config_0)))))
                          (if (let ((or-part_0 (not rt_0)))
                                (if or-part_0 or-part_0 (not (char? c_0))))
                            c_0
                            (*readtable-effective-char rt_0 c_0 #f)))))
                   (let ((or-part_0 (not ec_0)))
                     (if or-part_0
                       or-part_0
                       (if (char=? ec_0 '#\x23)
                         (let ((c2_0 (peek-char in_0)))
                           (if (char? c2_0)
                             (not
                              (|readtable-effective-char/#|
                               (begin-unsafe
                                (read-config/inner-readtable
                                 (read-config/outer-inner config_0)))
                               c2_0))
                             #f))
                         #f))))
                 #f)
             (|#%app| read-one_0 c_0 in_0 (keep-comment config_0))
             c_0)))
      (if (1/special-comment? v_0) v_0 #f))))
(define readtable-char-delimiter?
  (lambda (rt_0 c_0 config_0)
    (let ((dc_0
           (let ((or-part_0
                  (if rt_0
                    (hash-ref (readtable-delimiter-ht rt_0) c_0 #f)
                    #f)))
             (if or-part_0 or-part_0 c_0))))
      (if (eq? dc_0 'no-delimit)
        #f
        (if (not (char? dc_0))
          #t
          (let ((or-part_0 (char-whitespace? dc_0)))
            (if or-part_0
              or-part_0
              (let ((or-part_1 (char=? dc_0 '#\x28)))
                (if or-part_1
                  or-part_1
                  (let ((or-part_2 (char=? dc_0 '#\x29)))
                    (if or-part_2
                      or-part_2
                      (let ((or-part_3 (char=? dc_0 '#\x5b)))
                        (if or-part_3
                          or-part_3
                          (let ((or-part_4 (char=? dc_0 '#\x5d)))
                            (if or-part_4
                              or-part_4
                              (let ((or-part_5 (char=? dc_0 '#\x7b)))
                                (if or-part_5
                                  or-part_5
                                  (let ((or-part_6 (char=? dc_0 '#\x7d)))
                                    (if or-part_6
                                      or-part_6
                                      (let ((or-part_7 (char=? dc_0 '#\x27)))
                                        (if or-part_7
                                          or-part_7
                                          (let ((or-part_8
                                                 (char=? dc_0 '#\x60)))
                                            (if or-part_8
                                              or-part_8
                                              (let ((or-part_9
                                                     (char=? dc_0 '#\x2c)))
                                                (if or-part_9
                                                  or-part_9
                                                  (let ((or-part_10
                                                         (char=? dc_0 '#\x3b)))
                                                    (if or-part_10
                                                      or-part_10
                                                      (let ((or-part_11
                                                             (char=?
                                                              dc_0
                                                              '#\x22)))
                                                        (if or-part_11
                                                          or-part_11
                                                          (let ((or-part_12
                                                                 (char=?
                                                                  dc_0
                                                                  '#\xfeff)))
                                                            (if or-part_12
                                                              or-part_12
                                                              (if (char=?
                                                                   dc_0
                                                                   '#\x2e)
                                                                (check-parameter
                                                                 1/read-cdot
                                                                 config_0)
                                                                #f))))))))))))))))))))))))))))))))
(define char-delimiter?
  (lambda (c_0 config_0)
    (readtable-char-delimiter?
     (begin-unsafe
      (read-config/inner-readtable (read-config/outer-inner config_0)))
     c_0
     config_0)))
(define char-closer?
  (lambda (ec_0 config_0)
    (if (not (eof-object? ec_0))
      (let ((or-part_0 (char=? ec_0 '#\x29)))
        (if or-part_0
          or-part_0
          (let ((or-part_1 (char=? ec_0 '#\x5d)))
            (if or-part_1 or-part_1 (char=? ec_0 '#\x7d)))))
      #f)))
(define closer-name
  (lambda (c_0 config_0) (effective-char-names c_0 config_0 "closer")))
(define opener-name
  (lambda (c_0 config_0) (effective-char-names c_0 config_0 "opener")))
(define effective-char-names
  (lambda (c_0 config_0 fallback-str_0)
    (let ((rt_0
           (begin-unsafe
            (read-config/inner-readtable (read-config/outer-inner config_0)))))
      (if (not rt_0)
        (format "`~a`" c_0)
        (let ((cs_0 (readtable-equivalent-chars rt_0 c_0)))
          (if (null? cs_0)
            fallback-str_0
            (if (null? (cdr cs_0))
              (format "`~a`" (car cs_0))
              (if (null? (cddr cs_0))
                (let ((app_0 (car cs_0)))
                  (format "`~a` or `~a`" app_0 (cadr cs_0)))
                (apply
                 string-append
                 (letrec*
                  ((loop_0
                    (|#%name|
                     loop
                     (lambda (cs_1)
                       (begin
                         (if (null? (cdr cs_1))
                           (list (format "or `~a`" (car cs_1)))
                           (let ((app_0 (format "`~a`, " (car cs_1))))
                             (cons app_0 (loop_0 (cdr cs_1))))))))))
                  (loop_0 cs_0)))))))))))
(define closer->opener
  (lambda (c_0)
    (if (eqv? c_0 '#\x29)
      '#\x28
      (if (eqv? c_0 '#\x5d) '#\x5b (if (eqv? c_0 '#\x7d) '#\x7b c_0)))))
(define dot-name (lambda (config_0) "`.`"))
(define all-openers-str
  (lambda (config_0)
    (let ((p_0 (begin-unsafe (effective-char-names '#\x28 config_0 "opener"))))
      (let ((s_0
             (if (check-parameter 1/read-square-bracket-as-paren config_0)
               (begin-unsafe (effective-char-names '#\x5b config_0 "opener"))
               #f)))
        (let ((c_0
               (if (check-parameter 1/read-curly-brace-as-paren config_0)
                 (begin-unsafe (effective-char-names '#\x7b config_0 "opener"))
                 #f)))
          (if (if s_0 c_0 #f)
            (format "~a, ~a, or ~a" p_0 s_0 c_0)
            (if (if s_0 s_0 c_0)
              (format "~a or ~a" p_0 (if s_0 s_0 c_0))
              p_0)))))))
(define finish_2485
  (make-struct-type-install-properties
   '(accum-string)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '()
   #f
   'accum-string))
(define struct:accum-string
  (make-record-type-descriptor
   'accum-string
   #f
   (|#%nongenerative-uid| accum-string)
   #f
   #f
   '(2 . 3)))
(define effect_2784 (finish_2485 struct:accum-string))
(define accum-string1.1
  (|#%name|
   accum-string
   (record-constructor
    (make-record-constructor-descriptor struct:accum-string #f #f))))
(define accum-string?
  (|#%name| accum-string? (record-predicate struct:accum-string)))
(define accum-string-pos
  (|#%name| accum-string-pos (record-accessor struct:accum-string 0)))
(define accum-string-str
  (|#%name| accum-string-str (record-accessor struct:accum-string 1)))
(define set-accum-string-pos!
  (|#%name| set-accum-string-pos! (record-mutator struct:accum-string 0)))
(define set-accum-string-str!
  (|#%name| set-accum-string-str! (record-mutator struct:accum-string 1)))
(define accum-string-init!
  (lambda (config_0)
    (let ((st_0
           (begin-unsafe
            (read-config/inner-st (read-config/outer-inner config_0)))))
      (let ((a_0 (read-config-state-accum-str st_0)))
        (if a_0
          (begin
            (set-read-config-state-accum-str! st_0 #f)
            (set-accum-string-pos! a_0 0)
            a_0)
          (accum-string1.1 0 (make-string 32)))))))
(define accum-string-add!
  (lambda (a_0 c_0)
    (let ((pos_0 (accum-string-pos a_0)))
      (let ((str_0 (accum-string-str a_0)))
        (let ((str2_0
               (if (fx< pos_0 (string-length str_0))
                 str_0
                 (let ((str2_0 (make-string (fx* (string-length str_0) 2))))
                   (begin
                     (string-copy! str2_0 0 str_0)
                     (set-accum-string-str! a_0 str2_0)
                     str2_0)))))
          (begin
            (string-set! str2_0 pos_0 c_0)
            (set-accum-string-pos! a_0 (fx+ 1 pos_0))))))))
(define accum-string-count (lambda (a_0) (accum-string-pos a_0)))
(define set-accum-string-count!
  (lambda (a_0 pos_0) (set-accum-string-pos! a_0 pos_0)))
(define accum-string-convert!
  (lambda (a_0 convert_0 start-pos_0)
    (let ((str_0 (accum-string-str a_0)))
      (let ((s_0
             (|#%app|
              convert_0
              (substring str_0 start-pos_0 (accum-string-pos a_0)))))
        (let ((len_0 (string-length s_0)))
          (begin
            (if (let ((app_0 (fx+ len_0 start-pos_0)))
                  (fx< app_0 (string-length str_0)))
              (void)
              (let ((str2_0 (make-string (fx+ start-pos_0 len_0))))
                (begin
                  (string-copy! str2_0 0 str_0 0 start-pos_0)
                  (set-accum-string-str! a_0 str2_0))))
            (string-copy! (accum-string-str a_0) start-pos_0 s_0)
            (set-accum-string-pos! a_0 (fx+ start-pos_0 len_0))))))))
(define accum-string-get!.1
  (|#%name|
   accum-string-get!
   (lambda (start-pos2_0 a4_0 config5_0)
     (begin
       (let ((s_0
              (let ((app_0 (accum-string-str a4_0)))
                (substring app_0 start-pos2_0 (accum-string-pos a4_0)))))
         (begin
           (begin-unsafe
            (set-read-config-state-accum-str!
             (begin-unsafe
              (read-config/inner-st (read-config/outer-inner config5_0)))
             a4_0))
           s_0))))))
(define accum-string-get-bytes!.1
  (|#%name|
   accum-string-get-bytes!
   (lambda (start-pos7_0 a9_0 config10_0)
     (begin
       (let ((bstr_0
              (let ((app_0 (accum-string-str a9_0)))
                (string->bytes/latin-1
                 app_0
                 #f
                 start-pos7_0
                 (accum-string-pos a9_0)))))
         (begin
           (begin-unsafe
            (set-read-config-state-accum-str!
             (begin-unsafe
              (read-config/inner-st (read-config/outer-inner config10_0)))
             a9_0))
           bstr_0))))))
(define accum-string-abandon!
  (lambda (a_0 config_0)
    (set-read-config-state-accum-str!
     (begin-unsafe (read-config/inner-st (read-config/outer-inner config_0)))
     a_0)))
(define finish_2880
  (make-struct-type-install-properties
   '(indentation)
   8
   0
   #f
   null
   (current-inspector)
   #f
   '(0 3)
   #f
   'indentation))
(define struct:indentation
  (make-record-type-descriptor
   'indentation
   #f
   (|#%nongenerative-uid| indentation)
   #f
   #f
   '(8 . 246)))
(define effect_2185 (finish_2880 struct:indentation))
(define indentation1.1
  (|#%name|
   indentation
   (record-constructor
    (make-record-constructor-descriptor struct:indentation #f #f))))
(define indentation?_2766
  (|#%name| indentation? (record-predicate struct:indentation)))
(define indentation?
  (|#%name|
   indentation?
   (lambda (v)
     (if (indentation?_2766 v)
       #t
       ($value
        (if (impersonator? v) (indentation?_2766 (impersonator-val v)) #f))))))
(define indentation-closer_2003
  (|#%name| indentation-closer (record-accessor struct:indentation 0)))
(define indentation-closer
  (|#%name|
   indentation-closer
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-closer_2003 s)
       ($value
        (impersonate-ref
         indentation-closer_2003
         struct:indentation
         0
         s
         'closer))))))
(define indentation-suspicious-closer_2131
  (|#%name|
   indentation-suspicious-closer
   (record-accessor struct:indentation 1)))
(define indentation-suspicious-closer
  (|#%name|
   indentation-suspicious-closer
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-suspicious-closer_2131 s)
       ($value
        (impersonate-ref
         indentation-suspicious-closer_2131
         struct:indentation
         1
         s
         'suspicious-closer))))))
(define indentation-multiline?_2443
  (|#%name| indentation-multiline? (record-accessor struct:indentation 2)))
(define indentation-multiline?
  (|#%name|
   indentation-multiline?
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-multiline?_2443 s)
       ($value
        (impersonate-ref
         indentation-multiline?_2443
         struct:indentation
         2
         s
         'multiline?))))))
(define indentation-start-line_2628
  (|#%name| indentation-start-line (record-accessor struct:indentation 3)))
(define indentation-start-line
  (|#%name|
   indentation-start-line
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-start-line_2628 s)
       ($value
        (impersonate-ref
         indentation-start-line_2628
         struct:indentation
         3
         s
         'start-line))))))
(define indentation-last-line_2502
  (|#%name| indentation-last-line (record-accessor struct:indentation 4)))
(define indentation-last-line
  (|#%name|
   indentation-last-line
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-last-line_2502 s)
       ($value
        (impersonate-ref
         indentation-last-line_2502
         struct:indentation
         4
         s
         'last-line))))))
(define indentation-suspicious-line_2778
  (|#%name|
   indentation-suspicious-line
   (record-accessor struct:indentation 5)))
(define indentation-suspicious-line
  (|#%name|
   indentation-suspicious-line
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-suspicious-line_2778 s)
       ($value
        (impersonate-ref
         indentation-suspicious-line_2778
         struct:indentation
         5
         s
         'suspicious-line))))))
(define indentation-max-indent_2482
  (|#%name| indentation-max-indent (record-accessor struct:indentation 6)))
(define indentation-max-indent
  (|#%name|
   indentation-max-indent
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-max-indent_2482 s)
       ($value
        (impersonate-ref
         indentation-max-indent_2482
         struct:indentation
         6
         s
         'max-indent))))))
(define indentation-suspicious-quote_2590
  (|#%name|
   indentation-suspicious-quote
   (record-accessor struct:indentation 7)))
(define indentation-suspicious-quote
  (|#%name|
   indentation-suspicious-quote
   (lambda (s)
     (if (indentation?_2766 s)
       (indentation-suspicious-quote_2590 s)
       ($value
        (impersonate-ref
         indentation-suspicious-quote_2590
         struct:indentation
         7
         s
         'suspicious-quote))))))
(define set-indentation-suspicious-closer!_2590
  (|#%name|
   set-indentation-suspicious-closer!
   (record-mutator struct:indentation 1)))
(define set-indentation-suspicious-closer!
  (|#%name|
   set-indentation-suspicious-closer!
   (lambda (s v)
     (if (indentation?_2766 s)
       (set-indentation-suspicious-closer!_2590 s v)
       ($value
        (impersonate-set!
         set-indentation-suspicious-closer!_2590
         struct:indentation
         1
         1
         s
         v
         'suspicious-closer))))))
(define set-indentation-multiline?!_2223
  (|#%name| set-indentation-multiline?! (record-mutator struct:indentation 2)))
(define set-indentation-multiline?!
  (|#%name|
   set-indentation-multiline?!
   (lambda (s v)
     (if (indentation?_2766 s)
       (set-indentation-multiline?!_2223 s v)
       ($value
        (impersonate-set!
         set-indentation-multiline?!_2223
         struct:indentation
         2
         2
         s
         v
         'multiline?))))))
(define set-indentation-last-line!_2595
  (|#%name| set-indentation-last-line! (record-mutator struct:indentation 4)))
(define set-indentation-last-line!
  (|#%name|
   set-indentation-last-line!
   (lambda (s v)
     (if (indentation?_2766 s)
       (set-indentation-last-line!_2595 s v)
       ($value
        (impersonate-set!
         set-indentation-last-line!_2595
         struct:indentation
         4
         4
         s
         v
         'last-line))))))
(define set-indentation-suspicious-line!_2285
  (|#%name|
   set-indentation-suspicious-line!
   (record-mutator struct:indentation 5)))
(define set-indentation-suspicious-line!
  (|#%name|
   set-indentation-suspicious-line!
   (lambda (s v)
     (if (indentation?_2766 s)
       (set-indentation-suspicious-line!_2285 s v)
       ($value
        (impersonate-set!
         set-indentation-suspicious-line!_2285
         struct:indentation
         5
         5
         s
         v
         'suspicious-line))))))
(define set-indentation-max-indent!_2868
  (|#%name| set-indentation-max-indent! (record-mutator struct:indentation 6)))
(define set-indentation-max-indent!
  (|#%name|
   set-indentation-max-indent!
   (lambda (s v)
     (if (indentation?_2766 s)
       (set-indentation-max-indent!_2868 s v)
       ($value
        (impersonate-set!
         set-indentation-max-indent!_2868
         struct:indentation
         6
         6
         s
         v
         'max-indent))))))
(define set-indentation-suspicious-quote!_2621
  (|#%name|
   set-indentation-suspicious-quote!
   (record-mutator struct:indentation 7)))
(define set-indentation-suspicious-quote!
  (|#%name|
   set-indentation-suspicious-quote!
   (lambda (s v)
     (if (indentation?_2766 s)
       (set-indentation-suspicious-quote!_2621 s v)
       ($value
        (impersonate-set!
         set-indentation-suspicious-quote!_2621
         struct:indentation
         7
         7
         s
         v
         'suspicious-quote))))))
(define make-indentation
  (lambda (closer_0 in_0 config_0)
    (call-with-values
     (lambda () (port-next-location in_0))
     (case-lambda
      ((line_0 col_0 pos_0)
       (indentation1.1
        closer_0
        #f
        #f
        line_0
        line_0
        #f
        (if col_0 (add1 col_0) #f)
        #f))
      (args (raise-binding-result-arity-error 3 args))))))
(define track-indentation!
  (lambda (config_0 line_0 col_0)
    (let ((indts_0 (begin-unsafe (read-config/outer-indentations config_0))))
      (let ((indt_0 (if (pair? indts_0) (car indts_0) #f)))
        (if (if indt_0
              (if line_0
                (if (indentation-last-line indt_0)
                  (> line_0 (indentation-last-line indt_0))
                  #f)
                #f)
              #f)
          (begin
            (set-indentation-last-line! indt_0 line_0)
            (set-indentation-multiline?! indt_0 #t)
            (if (>= col_0 (indentation-max-indent indt_0))
              (set-indentation-max-indent! indt_0 col_0)
              (if (indentation-suspicious-line indt_0)
                (void)
                (begin
                  (set-indentation-suspicious-closer!
                   indt_0
                   (indentation-closer indt_0))
                  (set-indentation-suspicious-line! indt_0 line_0)))))
          (void))))))
(define indentation-possible-cause
  (lambda (config_0)
    (let ((indt_0
           (car (begin-unsafe (read-config/outer-indentations config_0)))))
      (if (indentation-suspicious-line indt_0)
        (let ((app_0
               (let ((c_0 (indentation-suspicious-closer indt_0)))
                 (begin-unsafe (effective-char-names c_0 config_0 "closer")))))
          (format
           "\n  possible cause: indentation suggests a missing ~a before line ~a"
           app_0
           (indentation-suspicious-line indt_0)))
        ""))))
(define indentation-unexpected-closer-message
  (lambda (ec_0 c_0 config_0)
    (let ((indts_0 (begin-unsafe (read-config/outer-indentations config_0))))
      (if (null? indts_0)
        (format "unexpected `~a`" c_0)
        (let ((indt_0 (car indts_0)))
          (let ((app_0
                 (if (char=? ec_0 (indentation-closer indt_0))
                   (format "unexpected `~a`" c_0)
                   (let ((missing_0
                          (let ((or-part_0
                                 (let ((lst_0 (cdr indts_0)))
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (result_0 lst_1)
                                           (begin
                                             (if (pair? lst_1)
                                               (let ((indt_1
                                                      (unsafe-car lst_1)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_1)))
                                                   (let ((result_1
                                                          (let ((result_1
                                                                 (if (char=?
                                                                      ec_0
                                                                      (indentation-closer
                                                                       indt_1))
                                                                   "missing"
                                                                   #f)))
                                                            (values
                                                             result_1))))
                                                     (if (if (not
                                                              (let ((x_0
                                                                     (list
                                                                      indt_1)))
                                                                result_1))
                                                           #t
                                                           #f)
                                                       (for-loop_0
                                                        result_1
                                                        rest_0)
                                                       result_1))))
                                               result_0))))))
                                      (for-loop_0 #f lst_0))))))
                            (if or-part_0 or-part_0 "expected"))))
                     (let ((opener-str_0
                            (let ((c_1
                                   (closer->opener
                                    (indentation-closer indt_0))))
                              (begin-unsafe
                               (effective-char-names c_1 config_0 "opener")))))
                       (let ((app_0
                              (let ((c_1 (indentation-closer indt_0)))
                                (begin-unsafe
                                 (effective-char-names
                                  c_1
                                  config_0
                                  "closer")))))
                         (format
                          "~a ~a to close ~a, found instead `~a`"
                          missing_0
                          app_0
                          (if (indentation-multiline? indt_0)
                            (format
                             "~a on line ~a"
                             opener-str_0
                             (indentation-start-line indt_0))
                            (format "preceding ~a" opener-str_0))
                          c_0)))))))
            (string-append app_0 (indentation-possible-cause config_0))))))))
(define read-unwrapped-sequence.1
  (|#%name|
   read-unwrapped-sequence
   (lambda (dot-mode2_0
            elem-config1_0
            first-read-one5_0
            shape-tag?3_0
            whitespace-read-one4_0
            read-one11_0
            opener-c12_0
            opener13_0
            closer14_0
            in15_0
            seq-config16_0)
     (begin
       (let ((elem-config_0
              (if (eq? elem-config1_0 unsafe-undefined)
                (next-readtable seq-config16_0)
                elem-config1_0)))
         (let ((whitespace-read-one_0
                (if (eq? whitespace-read-one4_0 unsafe-undefined)
                  read-one11_0
                  whitespace-read-one4_0)))
           (let ((first-read-one_0
                  (if (eq? first-read-one5_0 unsafe-undefined)
                    read-one11_0
                    first-read-one5_0)))
             (let ((head_0 #f))
               (let ((indentation_0
                      (make-indentation closer14_0 in15_0 seq-config16_0)))
                 (let ((config_0
                        (if (read-config/outer? elem-config_0)
                          (let ((indentations18_0
                                 (cons
                                  indentation_0
                                  (begin-unsafe
                                   (read-config/outer-indentations
                                    seq-config16_0)))))
                            (let ((inner19_0
                                   (read-config/outer-inner elem-config_0)))
                              (read-config/outer1.1
                               inner19_0
                               (read-config/outer-wrap elem-config_0)
                               (read-config/outer-line elem-config_0)
                               (read-config/outer-col elem-config_0)
                               (read-config/outer-pos elem-config_0)
                               indentations18_0
                               (read-config/outer-keep-comment?
                                elem-config_0))))
                          (raise-argument-error
                           'struct-copy
                           "read-config/outer?"
                           elem-config_0))))
                   (call-with-values
                    (lambda () (port-next-location in15_0))
                    (case-lambda
                     ((open-end-line_0 open-end-col_0 open-end-pos_0)
                      (let ((config/keep-comment_0 (keep-comment config_0)))
                        (let ((read-one/not-eof_0
                               (|#%name|
                                read-one/not-eof
                                (lambda (init-c_0 read-one_0 config_1)
                                  (begin
                                    (let ((e_0
                                           (|#%app|
                                            read-one_0
                                            init-c_0
                                            in15_0
                                            config_1)))
                                      (begin
                                        (if (eof-object? e_0)
                                          (let ((temp24_0
                                                 "expected a ~a to close `~a`~a"))
                                            (let ((temp25_0
                                                   (begin-unsafe
                                                    (effective-char-names
                                                     closer14_0
                                                     config_1
                                                     "closer"))))
                                              (let ((temp27_0
                                                     (indentation-possible-cause
                                                      config_1)))
                                                (let ((temp25_1 temp25_0)
                                                      (temp24_1 temp24_0))
                                                  (reader-error.1
                                                   unsafe-undefined
                                                   e_0
                                                   open-end-pos_0
                                                   unsafe-undefined
                                                   in15_0
                                                   seq-config16_0
                                                   temp24_1
                                                   (list
                                                    temp25_1
                                                    opener-c12_0
                                                    temp27_0))))))
                                          (void))
                                        e_0)))))))
                          (let ((seq_0
                                 (letrec*
                                  ((loop_0
                                    (|#%name|
                                     loop
                                     (lambda (depth_0
                                              accum_0
                                              init-c_0
                                              first?_0
                                              first-read-one_1
                                              closing_0)
                                       (begin
                                         (let ((c_0
                                                (read-char/skip-whitespace-and-comments
                                                 init-c_0
                                                 whitespace-read-one_0
                                                 in15_0
                                                 seq-config16_0)))
                                           (let ((ec_0
                                                  (effective-char
                                                   c_0
                                                   seq-config16_0)))
                                             (if (eqv? ec_0 closer14_0)
                                               (begin
                                                 (|#%app| closing_0)
                                                 (if (null? accum_0)
                                                   null
                                                   (reverse$1 accum_0)))
                                               (if (if (not first?_0)
                                                     (if (eqv? ec_0 '#\x2e)
                                                       (if (check-parameter
                                                            1/read-accept-dot
                                                            config_0)
                                                         (let ((c_1
                                                                (let ((source_0
                                                                       (begin-unsafe
                                                                        (read-config/inner-source
                                                                         (read-config/outer-inner
                                                                          config_0)))))
                                                                  (let ((c_1
                                                                         (peek-char-or-special
                                                                          in15_0
                                                                          0
                                                                          'special
                                                                          source_0)))
                                                                    (if (eq?
                                                                         c_1
                                                                         'special)
                                                                      (special1.1
                                                                       'special)
                                                                      c_1)))))
                                                           (begin-unsafe
                                                            (readtable-char-delimiter?
                                                             (begin-unsafe
                                                              (read-config/inner-readtable
                                                               (read-config/outer-inner
                                                                seq-config16_0)))
                                                             c_1
                                                             seq-config16_0)))
                                                         #f)
                                                       #f)
                                                     #f)
                                                 (call-with-values
                                                  (lambda ()
                                                    (port-next-location*
                                                     in15_0
                                                     c_0))
                                                  (case-lambda
                                                   ((dot-line_0
                                                     dot-col_0
                                                     dot-pos_0)
                                                    (begin
                                                      (track-indentation!
                                                       config_0
                                                       dot-line_0
                                                       dot-col_0)
                                                      (begin
                                                        (if (if dot-mode2_0
                                                              (not head_0)
                                                              #f)
                                                          (void)
                                                          (let ((temp29_0
                                                                 (reading-at
                                                                  config_0
                                                                  dot-line_0
                                                                  dot-col_0
                                                                  dot-pos_0)))
                                                            (let ((temp30_0
                                                                   "illegal use of `.`"))
                                                              (let ((temp29_1
                                                                     temp29_0))
                                                                (reader-error.1
                                                                 unsafe-undefined
                                                                 '#\x78
                                                                 #f
                                                                 unsafe-undefined
                                                                 in15_0
                                                                 temp29_1
                                                                 temp30_0
                                                                 (list))))))
                                                        (let ((v_0
                                                               (read-one/not-eof_0
                                                                #f
                                                                first-read-one_1
                                                                config_0)))
                                                          (letrec*
                                                           ((post-dot-loop_0
                                                             (|#%name|
                                                              post-dot-loop
                                                              (lambda ()
                                                                (begin
                                                                  (let ((rest-c_0
                                                                         (read-char/skip-whitespace-and-comments
                                                                          #f
                                                                          whitespace-read-one_0
                                                                          in15_0
                                                                          seq-config16_0)))
                                                                    (let ((rest-ec_0
                                                                           (effective-char
                                                                            rest-c_0
                                                                            seq-config16_0)))
                                                                      (if (eqv?
                                                                           rest-ec_0
                                                                           closer14_0)
                                                                        (if (null?
                                                                             accum_0)
                                                                          v_0
                                                                          (append
                                                                           (reverse$1
                                                                            accum_0)
                                                                           v_0))
                                                                        (if (if (eqv?
                                                                                 rest-ec_0
                                                                                 '#\x2e)
                                                                              (if (check-parameter
                                                                                   1/read-accept-dot
                                                                                   config_0)
                                                                                (if (check-parameter
                                                                                     1/read-accept-infix-dot
                                                                                     config_0)
                                                                                  (let ((c_1
                                                                                         (let ((source_0
                                                                                                (begin-unsafe
                                                                                                 (read-config/inner-source
                                                                                                  (read-config/outer-inner
                                                                                                   config_0)))))
                                                                                           (let ((c_1
                                                                                                  (peek-char-or-special
                                                                                                   in15_0
                                                                                                   0
                                                                                                   'special
                                                                                                   source_0)))
                                                                                             (if (eq?
                                                                                                  c_1
                                                                                                  'special)
                                                                                               (special1.1
                                                                                                'special)
                                                                                               c_1)))))
                                                                                    (begin-unsafe
                                                                                     (readtable-char-delimiter?
                                                                                      (begin-unsafe
                                                                                       (read-config/inner-readtable
                                                                                        (read-config/outer-inner
                                                                                         seq-config16_0)))
                                                                                      c_1
                                                                                      seq-config16_0)))
                                                                                  #f)
                                                                                #f)
                                                                              #f)
                                                                          (begin
                                                                            (set! head_0
                                                                              (box
                                                                               v_0))
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (port-next-location
                                                                                in15_0))
                                                                             (case-lambda
                                                                              ((dot2-line_0
                                                                                dot2-col_0
                                                                                dot2-pos_0)
                                                                               (begin
                                                                                 (track-indentation!
                                                                                  config_0
                                                                                  dot2-line_0
                                                                                  dot2-col_0)
                                                                                 (let ((post-c_0
                                                                                        (read-char/skip-whitespace-and-comments
                                                                                         #f
                                                                                         whitespace-read-one_0
                                                                                         in15_0
                                                                                         seq-config16_0)))
                                                                                   (let ((post-ec_0
                                                                                          (effective-char
                                                                                           post-c_0
                                                                                           seq-config16_0)))
                                                                                     (let ((closing-after-dot_0
                                                                                            (|#%name|
                                                                                             closing-after-dot
                                                                                             (lambda ()
                                                                                               (begin
                                                                                                 (let ((temp32_0
                                                                                                        (reading-at
                                                                                                         config_0
                                                                                                         dot-line_0
                                                                                                         dot-col_0
                                                                                                         dot-pos_0)))
                                                                                                   (let ((temp34_0
                                                                                                          "illegal use of `.`"))
                                                                                                     (let ((temp32_1
                                                                                                            temp32_0))
                                                                                                       (reader-error.1
                                                                                                        unsafe-undefined
                                                                                                        post-ec_0
                                                                                                        #f
                                                                                                        unsafe-undefined
                                                                                                        in15_0
                                                                                                        temp32_1
                                                                                                        temp34_0
                                                                                                        (list))))))))))
                                                                                       (loop_0
                                                                                        depth_0
                                                                                        accum_0
                                                                                        post-c_0
                                                                                        #f
                                                                                        read-one11_0
                                                                                        closing-after-dot_0))))))
                                                                              (args
                                                                               (raise-binding-result-arity-error
                                                                                3
                                                                                args)))))
                                                                          (if (special-comment-via-readtable?
                                                                               rest-c_0
                                                                               read-one11_0
                                                                               in15_0
                                                                               seq-config16_0)
                                                                            (post-dot-loop_0)
                                                                            (let ((temp36_0
                                                                                   (reading-at
                                                                                    config_0
                                                                                    dot-line_0
                                                                                    dot-col_0
                                                                                    dot-pos_0)))
                                                                              (let ((temp38_0
                                                                                     "illegal use of `.`"))
                                                                                (let ((temp36_1
                                                                                       temp36_0))
                                                                                  (reader-error.1
                                                                                   unsafe-undefined
                                                                                   rest-c_0
                                                                                   #f
                                                                                   unsafe-undefined
                                                                                   in15_0
                                                                                   temp36_1
                                                                                   temp38_0
                                                                                   (list)))))))))))))))
                                                           (post-dot-loop_0))))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     3
                                                     args))))
                                                 (let ((v_0
                                                        (read-one/not-eof_0
                                                         c_0
                                                         first-read-one_1
                                                         config/keep-comment_0)))
                                                   (if (1/special-comment? v_0)
                                                     (loop_0
                                                      depth_0
                                                      accum_0
                                                      #f
                                                      #f
                                                      read-one11_0
                                                      closing_0)
                                                     (if (> depth_0 1024)
                                                       (loop_0
                                                        depth_0
                                                        (cons v_0 accum_0)
                                                        #f
                                                        #f
                                                        read-one11_0
                                                        void)
                                                       (cons
                                                        v_0
                                                        (loop_0
                                                         (add1 depth_0)
                                                         null
                                                         #f
                                                         #f
                                                         read-one11_0
                                                         void))))))))))))))
                                  (loop_0
                                   0
                                   null
                                   #f
                                   #t
                                   first-read-one_0
                                   void))))
                            (let ((full-seq_0
                                   (if head_0
                                     (cons (unbox head_0) seq_0)
                                     seq_0)))
                              (if shape-tag?3_0
                                (add-shape-tag
                                 opener13_0
                                 in15_0
                                 config_0
                                 full-seq_0)
                                full-seq_0))))))
                     (args
                      (raise-binding-result-arity-error 3 args))))))))))))))
(define add-shape-tag
  (lambda (opener_0 in_0 config_0 seq_0)
    (let ((tag_0
           (if (eqv? opener_0 '#\x5b)
             (if (check-parameter 1/read-square-bracket-with-tag config_0)
               '|#%brackets|
               #f)
             (if (eqv? opener_0 '#\x7b)
               (if (check-parameter 1/read-curly-brace-with-tag config_0)
                 '|#%braces|
                 #f)
               #f))))
      (if tag_0 (cons (wrap tag_0 in_0 config_0 #f) seq_0) seq_0))))
(define read-digits.1
  (|#%name|
   read-digits
   (lambda (base1_0
            init3_0
            max-count2_0
            zero-digits-result4_0
            in10_0
            config11_0
            accum-str9_0)
     (begin
       (let ((c_0
              (let ((source_0
                     (begin-unsafe
                      (read-config/inner-source
                       (read-config/outer-inner config11_0)))))
                (let ((c_0 (peek-char-or-special in10_0 0 'special source_0)))
                  (if (eq? c_0 'special) (special1.1 'special) c_0)))))
         (if (digit? c_0 base1_0)
           (begin
             (begin-unsafe (begin (read-char in10_0) (void)))
             (if accum-str9_0 (accum-string-add! accum-str9_0 c_0) (void))
             (letrec*
              ((loop_0
                (|#%name|
                 loop
                 (lambda (v_0 max-count_0)
                   (begin
                     (if (zero? max-count_0)
                       v_0
                       (let ((c_1
                              (let ((source_0
                                     (begin-unsafe
                                      (read-config/inner-source
                                       (read-config/outer-inner config11_0)))))
                                (let ((c_1
                                       (peek-char-or-special
                                        in10_0
                                        0
                                        'special
                                        source_0)))
                                  (if (eq? c_1 'special)
                                    (special1.1 'special)
                                    c_1)))))
                         (if (digit? c_1 base1_0)
                           (begin
                             (begin-unsafe (begin (read-char in10_0) (void)))
                             (if accum-str9_0
                               (accum-string-add! accum-str9_0 c_1)
                               (void))
                             (let ((app_0
                                    (let ((app_0 (digit->number c_1)))
                                      (+ app_0 (* v_0 base1_0)))))
                               (loop_0 app_0 (sub1 max-count_0))))
                           v_0))))))))
              (let ((app_0
                     (let ((app_0 (digit->number c_0)))
                       (+ app_0 (* init3_0 base1_0)))))
                (loop_0 app_0 (sub1 max-count2_0)))))
           (if zero-digits-result4_0 zero-digits-result4_0 c_0)))))))
(define digit?
  (lambda (c_0 base_0)
    (if (not (char? c_0))
      #f
      (if (= base_0 8)
        (octal-digit? c_0)
        (if (= base_0 16) (hex-digit? c_0) (decimal-digit? c_0))))))
(define decimal-digit?
  (lambda (c_0) (if (char>=? c_0 '#\x30) (char<=? c_0 '#\x39) #f)))
(define octal-digit?
  (lambda (c_0) (if (char>=? c_0 '#\x30) (char<=? c_0 '#\x37) #f)))
(define hex-digit?
  (lambda (c_0)
    (let ((or-part_0 (if (char>=? c_0 '#\x30) (char<=? c_0 '#\x39) #f)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (if (char>=? c_0 '#\x41) (char<=? c_0 '#\x46) #f)))
          (if or-part_1
            or-part_1
            (if (char>=? c_0 '#\x61) (char<=? c_0 '#\x66) #f)))))))
(define digit->number
  (lambda (c_0)
    (if (if (char>=? c_0 '#\x30) (char<=? c_0 '#\x39) #f)
      (- (char->integer c_0) 48)
      (if (if (char>=? c_0 '#\x41) (char<=? c_0 '#\x46) #f)
        (- (char->integer c_0) 55)
        (- (char->integer c_0) 87)))))
(define maybe-digit
  (lambda (c_0 radix_0)
    (let ((v_0 (char->integer c_0)))
      (if (fx< v_0 48)
        c_0
        (if (fx< v_0 (fx+ (fxmin radix_0 10) 48))
          (fx- v_0 48)
          (if (fx<= radix_0 10)
            c_0
            (if (fx< v_0 65)
              c_0
              (if (fx< v_0 (+ radix_0 55))
                (fx- v_0 55)
                (if (fx< v_0 97)
                  c_0
                  (if (fx< v_0 (+ radix_0 87)) (fx- v_0 87) c_0))))))))))
(define string->number$1 string->number)
(define 1/string->number
  (let ((string->number_0
         (|#%name|
          string->number
          (lambda (s5_0
                   radix1_0
                   convert-mode2_0
                   decimal-mode3_0
                   single-mode4_0)
            (begin
              (let ((decimal-mode_0
                     (if (eq? decimal-mode3_0 unsafe-undefined)
                       (if (1/read-decimal-as-inexact)
                         'decimal-as-inexact
                         'decimal-as-exact)
                       decimal-mode3_0)))
                (let ((single-mode_0
                       (if (eq? single-mode4_0 unsafe-undefined)
                         (if (1/read-single-flonum) 'single 'double)
                         single-mode4_0)))
                  (begin
                    (if (string? s5_0)
                      (void)
                      (raise-argument-error 'string->number "string?" s5_0))
                    (if (if (exact-integer? radix1_0) (<= 2 radix1_0 16) #f)
                      (void)
                      (raise-argument-error
                       'string->number
                       "(integer-in 2 16)"
                       radix1_0))
                    (if (let ((or-part_0
                               (eq? convert-mode2_0 'number-or-false)))
                          (if or-part_0 or-part_0 (eq? convert-mode2_0 'read)))
                      (void)
                      (raise-argument-error
                       'string->number
                       "(or/c 'number-or-false 'read)"
                       convert-mode2_0))
                    (if (let ((or-part_0
                               (eq? decimal-mode_0 'decimal-as-inexact)))
                          (if or-part_0
                            or-part_0
                            (eq? decimal-mode_0 'decimal-as-exact)))
                      (void)
                      (raise-argument-error
                       'string->number
                       "(or/c 'decimal-as-inexact 'decimal-as-exact)"
                       decimal-mode_0))
                    (if (let ((or-part_0 (eq? single-mode_0 'single)))
                          (if or-part_0 or-part_0 (eq? single-mode_0 'double)))
                      (void)
                      (raise-argument-error
                       'string->number
                       "(or/c 'single 'double)"
                       single-mode_0))
                    (unchecked-string->number
                     s5_0
                     radix1_0
                     convert-mode2_0
                     decimal-mode_0
                     single-mode_0)))))))))
    (|#%name|
     string->number
     (case-lambda
      ((s_0)
       (begin
         (string->number_0
          s_0
          10
          'number-or-false
          unsafe-undefined
          unsafe-undefined)))
      ((s_0 radix_0 convert-mode_0 decimal-mode_0 single-mode4_0)
       (string->number_0
        s_0
        radix_0
        convert-mode_0
        decimal-mode_0
        single-mode4_0))
      ((s_0 radix_0 convert-mode_0 decimal-mode3_0)
       (string->number_0
        s_0
        radix_0
        convert-mode_0
        decimal-mode3_0
        unsafe-undefined))
      ((s_0 radix_0 convert-mode2_0)
       (string->number_0
        s_0
        radix_0
        convert-mode2_0
        unsafe-undefined
        unsafe-undefined))
      ((s_0 radix1_0)
       (string->number_0
        s_0
        radix1_0
        'number-or-false
        unsafe-undefined
        unsafe-undefined))))))
(define unchecked-string->number
  (lambda (s_0 radix_0 convert-mode_0 decimal-mode_0 single-mode_0)
    (let ((temp46_0 (string-length s_0)))
      (do-string->number.1
       #f
       s_0
       0
       temp46_0
       radix_0
       decimal-mode_0
       convert-mode_0
       single-mode_0))))
(define finish_2818
  (make-struct-type-install-properties
   '(parse-state)
   5
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2 3 4)
   #f
   'parse-state))
(define struct:parse-state
  (make-record-type-descriptor
   'parse-state
   #f
   (|#%nongenerative-uid| parse-state)
   #f
   #f
   '(5 . 0)))
(define effect_2177 (finish_2818 struct:parse-state))
(define parse-state6.1
  (|#%name|
   parse-state
   (record-constructor
    (make-record-constructor-descriptor struct:parse-state #f #f))))
(define parse-state?
  (|#%name| parse-state? (record-predicate struct:parse-state)))
(define parse-state-exactness
  (|#%name| parse-state-exactness (record-accessor struct:parse-state 0)))
(define parse-state-convert-mode
  (|#%name| parse-state-convert-mode (record-accessor struct:parse-state 1)))
(define parse-state-can-single?
  (|#%name| parse-state-can-single? (record-accessor struct:parse-state 2)))
(define parse-state-fst
  (|#%name| parse-state-fst (record-accessor struct:parse-state 3)))
(define parse-state-other-exactness
  (|#%name|
   parse-state-other-exactness
   (record-accessor struct:parse-state 4)))
(define finish_2141
  (make-struct-type-install-properties
   '(rect-prefix)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'rect-prefix))
(define struct:rect-prefix
  (make-record-type-descriptor
   'rect-prefix
   #f
   (|#%nongenerative-uid| rect-prefix)
   #f
   #f
   '(3 . 0)))
(define effect_2477 (finish_2141 struct:rect-prefix))
(define rect-prefix7.1
  (|#%name|
   rect-prefix
   (record-constructor
    (make-record-constructor-descriptor struct:rect-prefix #f #f))))
(define rect-prefix?
  (|#%name| rect-prefix? (record-predicate struct:rect-prefix)))
(define rect-prefix-sgn/z
  (|#%name| rect-prefix-sgn/z (record-accessor struct:rect-prefix 0)))
(define rect-prefix-n
  (|#%name| rect-prefix-n (record-accessor struct:rect-prefix 1)))
(define rect-prefix-start
  (|#%name| rect-prefix-start (record-accessor struct:rect-prefix 2)))
(define finish_3094
  (make-struct-type-install-properties
   '(polar-prefix)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'polar-prefix))
(define struct:polar-prefix
  (make-record-type-descriptor
   'polar-prefix
   #f
   (|#%nongenerative-uid| polar-prefix)
   #f
   #f
   '(3 . 0)))
(define effect_2366 (finish_3094 struct:polar-prefix))
(define polar-prefix8.1
  (|#%name|
   polar-prefix
   (record-constructor
    (make-record-constructor-descriptor struct:polar-prefix #f #f))))
(define polar-prefix?
  (|#%name| polar-prefix? (record-predicate struct:polar-prefix)))
(define polar-prefix-sgn/z
  (|#%name| polar-prefix-sgn/z (record-accessor struct:polar-prefix 0)))
(define polar-prefix-n
  (|#%name| polar-prefix-n (record-accessor struct:polar-prefix 1)))
(define polar-prefix-start
  (|#%name| polar-prefix-start (record-accessor struct:polar-prefix 2)))
(define init-state
  (lambda (exactness_0 convert-mode_0 single-mode_0 fst_0)
    (parse-state6.1
     exactness_0
     convert-mode_0
     (eq? single-mode_0 'single)
     fst_0
     exactness_0)))
(define state-has-first-half?
  (lambda (state_0)
    (let ((fst_0 (parse-state-fst state_0)))
      (if fst_0 (not (eq? fst_0 '+/-)) #f))))
(define state-set-first-half
  (lambda (state_0 fst_0)
    (if (parse-state? state_0)
      (let ((exactness56_0 (parse-state-other-exactness state_0)))
        (let ((other-exactness57_0 (parse-state-exactness state_0)))
          (parse-state6.1
           exactness56_0
           (parse-state-convert-mode state_0)
           (parse-state-can-single? state_0)
           fst_0
           other-exactness57_0)))
      (raise-argument-error 'struct-copy "parse-state?" state_0))))
(define state-first-half
  (lambda (state_0)
    (let ((exactness_0 (parse-state-other-exactness state_0)))
      (let ((convert-mode_0 (parse-state-convert-mode state_0)))
        (let ((single-mode_0
               (if (parse-state-can-single? state_0) 'single 'double)))
          (begin-unsafe
           (parse-state6.1
            exactness_0
            convert-mode_0
            (eq? single-mode_0 'single)
            #f
            exactness_0)))))))
(define state-second-half
  (lambda (state_0)
    (let ((exactness_0 (parse-state-exactness state_0)))
      (let ((convert-mode_0 (parse-state-convert-mode state_0)))
        (let ((single-mode_0
               (if (parse-state-can-single? state_0) 'single 'double)))
          (begin-unsafe
           (parse-state6.1
            exactness_0
            convert-mode_0
            (eq? single-mode_0 'single)
            #f
            exactness_0)))))))
(define state->convert-mode
  (lambda (state_0)
    (if (parse-state? state_0) (parse-state-convert-mode state_0) state_0)))
(define state->dbz-convert-mode
  (lambda (state_0)
    (let ((convert-mode_0 (parse-state-convert-mode state_0)))
      (if (eq? convert-mode_0 'read) 'must-read convert-mode_0))))
(define bad-digit
  (lambda (c_0 s_0 state_0)
    (if (char=? c_0 '#\x0)
      (if (eq? (state->convert-mode state_0) 'must-read)
        (format "nul character in `~.a`" s_0)
        #f)
      (if (eq? (state->convert-mode state_0) 'must-read)
        (format "bad digit `~a`" c_0)
        #f))))
(define bad-mixed-decimal-fraction
  (lambda (s_0 state_0)
    (if (eq? (state->convert-mode state_0) 'must-read)
      (format "decimal points and fractions cannot be mixed in `~.a`" s_0)
      #f)))
(define bad-misplaced
  (lambda (what_0 s_0 state_0)
    (if (eq? (state->convert-mode state_0) 'must-read)
      (format "misplaced `~a` in `~.a`" what_0 s_0)
      #f)))
(define bad-no-digits
  (lambda (after_0 s_0 state_0)
    (if (eq? (state->convert-mode state_0) 'must-read)
      (format "missing digits after `~a` in `~.a`" after_0 s_0)
      #f)))
(define bad-extflonum-for-complex
  (lambda (i_0 s_0 state_0)
    (if (eq? (state->convert-mode state_0) 'must-read)
      (format "cannot combine extflonum `~a` into a complex number" i_0)
      #f)))
(define finish_3231
  (make-struct-type-install-properties
   '(lazy-expt)
   3
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'lazy-expt))
(define struct:lazy-expt
  (make-record-type-descriptor
   'lazy-expt
   #f
   (|#%nongenerative-uid| lazy-expt)
   #f
   #f
   '(3 . 0)))
(define effect_2131 (finish_3231 struct:lazy-expt))
(define lazy-expt9.1
  (|#%name|
   lazy-expt
   (record-constructor
    (make-record-constructor-descriptor struct:lazy-expt #f #f))))
(define lazy-expt? (|#%name| lazy-expt? (record-predicate struct:lazy-expt)))
(define lazy-expt-n
  (|#%name| lazy-expt-n (record-accessor struct:lazy-expt 0)))
(define lazy-expt-radix
  (|#%name| lazy-expt-radix (record-accessor struct:lazy-expt 1)))
(define lazy-expt-exp
  (|#%name| lazy-expt-exp (record-accessor struct:lazy-expt 2)))
(define finish_2687
  (make-struct-type-install-properties
   '(lazy-rational)
   2
   0
   #f
   (list (cons prop:authentic #t))
   (current-inspector)
   #f
   '(0 1)
   #f
   'lazy-rational))
(define struct:lazy-rational
  (make-record-type-descriptor
   'lazy-rational
   #f
   (|#%nongenerative-uid| lazy-rational)
   #f
   #f
   '(2 . 0)))
(define effect_3104 (finish_2687 struct:lazy-rational))
(define lazy-rational10.1
  (|#%name|
   lazy-rational
   (record-constructor
    (make-record-constructor-descriptor struct:lazy-rational #f #f))))
(define lazy-rational?
  (|#%name| lazy-rational? (record-predicate struct:lazy-rational)))
(define lazy-rational-n
  (|#%name| lazy-rational-n (record-accessor struct:lazy-rational 0)))
(define lazy-rational-d
  (|#%name| lazy-rational-d (record-accessor struct:lazy-rational 1)))
(define lazy-number
  (lambda (n_0 radix_0 exp_0)
    (if (eq? n_0 'dbz)
      n_0
      (if (eq? n_0 'dbz!)
        n_0
        (if (if (< exp_0 30) (> exp_0 -30) #f)
          (* n_0 (expt radix_0 exp_0))
          (lazy-expt9.1 n_0 radix_0 exp_0))))))
(define lazy-divide
  (lambda (n_0 d_0 d-exactness_0)
    (if (eqv? d_0 0)
      (if (eq? d-exactness_0 'exact) 'dbz! 'dbz)
      (if (let ((or-part_0 (lazy-expt? n_0)))
            (if or-part_0 or-part_0 (lazy-expt? d_0)))
        (lazy-rational10.1 n_0 d_0)
        (/ n_0 d_0)))))
(define simplify-lazy-divide
  (lambda (n0_0)
    (if (lazy-rational? n0_0)
      (let ((n_0 (lazy-rational-n n0_0)))
        (let ((d_0 (lazy-rational-d n0_0)))
          (let ((n-n_0 (if (lazy-expt? n_0) (lazy-expt-n n_0) n_0)))
            (let ((n-exp_0 (if (lazy-expt? n_0) (lazy-expt-exp n_0) 0)))
              (let ((d-n_0 (if (lazy-expt? d_0) (lazy-expt-n d_0) d_0)))
                (let ((d-exp_0 (if (lazy-expt? d_0) (lazy-expt-exp d_0) 0)))
                  (let ((radix_0
                         (if (lazy-expt? n_0)
                           (lazy-expt-radix n_0)
                           (lazy-expt-radix d_0))))
                    (let ((app_0 (/ n-n_0 d-n_0)))
                      (lazy-number app_0 radix_0 (- n-exp_0 d-exp_0))))))))))
      n0_0)))
(define force-lazy-exact
  (lambda (n0_0 state_0 s_0)
    (let ((n_0 (simplify-lazy-divide n0_0)))
      (if (let ((or-part_0 (eq? n_0 'dbz)))
            (if or-part_0 or-part_0 (eq? n_0 'dbz!)))
        (if (eq?
             (state->convert-mode (state->dbz-convert-mode state_0))
             'must-read)
          (format "division by zero in `~.a`" s_0)
          #f)
        (if (lazy-expt? n_0)
          (*
           (lazy-expt-n n_0)
           (expt (lazy-expt-radix n_0) (lazy-expt-exp n_0)))
          n_0)))))
(define force-lazy-inexact
  (let ((force-lazy-inexact_0
         (|#%name|
          force-lazy-inexact
          (lambda (sgn/z12_0 n013_0 state14_0 s15_0 precision11_0)
            (begin
              (let ((n1_0 (simplify-lazy-divide n013_0)))
                (if (eq? n013_0 'dbz)
                  (if (fx= sgn/z12_0 -1) -inf.0 +inf.0)
                  (if (eq? n013_0 'dbz!)
                    (if (eq?
                         (state->convert-mode
                          (state->dbz-convert-mode state14_0))
                         'must-read)
                      (format "division by zero in `~.a`" s15_0)
                      #f)
                    (if (lazy-expt? n1_0)
                      (let ((n_0 (lazy-expt-n n1_0)))
                        (let ((exp_0 (lazy-expt-exp n1_0)))
                          (let ((radix_0 (lazy-expt-radix n1_0)))
                            (let ((approx-expt_0
                                   (+
                                    (let ((app_0
                                           (if (integer? n_0)
                                             (integer-length n_0)
                                             (let ((app_0
                                                    (integer-length
                                                     (numerator n_0))))
                                               (-
                                                app_0
                                                (integer-length
                                                 (denominator n_0)))))))
                                      (/ app_0 (log radix_0 2)))
                                    exp_0)))
                              (if (eqv? n_0 0)
                                (if (fx= sgn/z12_0 -1) -0.0 0.0)
                                (if (> approx-expt_0 precision11_0)
                                  (if (fx= sgn/z12_0 -1) -inf.0 +inf.0)
                                  (if (< approx-expt_0 (- precision11_0))
                                    (if (fx= sgn/z12_0 -1) -0.0 0.0)
                                    (* n_0 (expt radix_0 exp_0)))))))))
                      (if (eqv? n1_0 0)
                        (if (fx= sgn/z12_0 -1) -0.0 0.0)
                        n1_0))))))))))
    (case-lambda
     ((sgn/z_0 n0_0 state_0 s_0)
      (force-lazy-inexact_0 sgn/z_0 n0_0 state_0 s_0 2048))
     ((sgn/z_0 n0_0 state_0 s_0 precision11_0)
      (force-lazy-inexact_0 sgn/z_0 n0_0 state_0 s_0 precision11_0)))))
(define fast-inexact
  (lambda (state_0 sgn_0 n_0 radix_0 exp_0 sgn2_0 exp2_0)
    (let ((tmp_0 (parse-state-exactness state_0)))
      (if (if (eq? tmp_0 'double) #t (eq? tmp_0 'approx))
        (if (state-has-first-half? state_0)
          #f
          (if (eqv? n_0 0)
            (if (fx= sgn_0 1) 0.0 -0.0)
            (if (if (fixnum? n_0)
                  (if (< n_0 1125899906842624) (> n_0 -1125899906842624) #f)
                  #f)
              (let ((exp_1 (+ exp_0 (* sgn2_0 exp2_0))))
                (if (if (fixnum? exp_1)
                      (if (fx<= radix_0 10)
                        (fx<= -15 exp_1 15)
                        (fx<= -12 exp_1 12))
                      #f)
                  (let ((m_0
                         (unsafe-fx->fl (if (fx= sgn_0 -1) (fx- 0 n_0) n_0))))
                    (if (eqv? exp_1 0)
                      m_0
                      (if (not (fixnum? exp_1))
                        #f
                        (let ((fradix_0
                               (if (fx= radix_0 10)
                                 10.0
                                 (unsafe-fx->fl radix_0))))
                          (if (fx< exp_1 0)
                            (/ m_0 (expt fradix_0 (fx- 0 exp_1)))
                            (* m_0 (expt fradix_0 exp_1)))))))
                  #f))
              #f)))
        #f))))
(define finish.1
  (|#%name|
   finish
   (lambda (range16_0 sgn/z18_0 n19_0 s20_0 state21_0)
     (begin
       (let ((fst_0 (parse-state-fst state21_0)))
         (if (let ((or-part_0 (not fst_0)))
               (if or-part_0 or-part_0 (eq? fst_0 '+/-)))
           (let ((tmp_0 (parse-state-exactness state21_0)))
             (if (eq? tmp_0 'single)
               (let ((v_0
                      (force-lazy-inexact sgn/z18_0 n19_0 state21_0 s20_0)))
                 (if (let ((or-part_0 (not v_0)))
                       (if or-part_0 or-part_0 (string? v_0)))
                   v_0
                   (if (parse-state-can-single? state21_0)
                     (raise
                      (let ((app_0
                             (string-append
                              "read: single-flonums are not supported on this platform\n"
                              "  conversion from: "
                              (number->string v_0))))
                        (|#%app|
                         exn:fail:unsupported
                         app_0
                         (current-continuation-marks))))
                     (exact->inexact v_0))))
               (if (eq? tmp_0 'exact)
                 (if (if (eqv? n19_0 +inf.0)
                       #t
                       (if (eqv? n19_0 -inf.0) #t (eqv? n19_0 +nan.0)))
                   (if (eq? (state->convert-mode state21_0) 'must-read)
                     (format "no exact representation for ~a" n19_0)
                     #f)
                   (let ((v_0 (force-lazy-exact n19_0 state21_0 s20_0)))
                     (if (let ((or-part_0 (not v_0)))
                           (if or-part_0 or-part_0 (string? v_0)))
                       v_0
                       (inexact->exact v_0))))
                 (if (eq? tmp_0 'extended)
                   (if (eq?
                        (parse-state-convert-mode state21_0)
                        'number-or-false)
                     #f
                     (if (extflonum-available?)
                       (let ((v_0
                              (force-lazy-inexact
                               sgn/z18_0
                               n19_0
                               state21_0
                               s20_0
                               32768)))
                         (if (let ((or-part_0 (not v_0)))
                               (if or-part_0 or-part_0 (string? v_0)))
                           v_0
                           (real->extfl v_0)))
                       (let ((trim-s_0
                              (let ((app_0 (if range16_0 (car range16_0) 0)))
                                (trim-number
                                 s20_0
                                 app_0
                                 (if range16_0
                                   (cdr range16_0)
                                   (string-length s20_0))))))
                         (string->number trim-s_0 10 'read))))
                   (if (if (eq? tmp_0 'double)
                         #t
                         (if (eq? tmp_0 'inexact) #t (eq? tmp_0 'approx)))
                     (let ((v_0
                            (force-lazy-inexact
                             sgn/z18_0
                             n19_0
                             state21_0
                             s20_0)))
                       (if (let ((or-part_0 (not v_0)))
                             (if or-part_0 or-part_0 (string? v_0)))
                         v_0
                         (exact->inexact v_0)))
                     (if (eq? tmp_0 'extflonum->inexact)
                       (if (eq? (state->convert-mode state21_0) 'must-read)
                         (format
                          "cannot convert extflonum to inexact in `~a`"
                          s20_0)
                         #f)
                       (if (eq? tmp_0 'extflonum->exact)
                         (if (eq? (state->convert-mode state21_0) 'must-read)
                           (format
                            "cannot convert extflonum to exact in `~a`"
                            s20_0)
                           #f)
                         (force-lazy-exact n19_0 state21_0 s20_0))))))))
           (if (polar-prefix? fst_0)
             (let ((pos_0 (polar-prefix-start fst_0)))
               (let ((m_0
                      (let ((temp60_0 (polar-prefix-sgn/z fst_0)))
                        (let ((temp61_0 (polar-prefix-n fst_0)))
                          (let ((temp63_0 (state-first-half state21_0)))
                            (let ((temp64_0 (cons 0 pos_0)))
                              (let ((temp63_1 temp63_0)
                                    (temp61_1 temp61_0)
                                    (temp60_1 temp60_0))
                                (finish.1
                                 temp64_0
                                 temp60_1
                                 temp61_1
                                 s20_0
                                 temp63_1))))))))
                 (let ((a_0
                        (let ((temp68_0 (state-second-half state21_0)))
                          (let ((temp69_0 (cons pos_0 (string-length s20_0))))
                            (let ((temp68_1 temp68_0))
                              (finish.1
                               temp69_0
                               sgn/z18_0
                               n19_0
                               s20_0
                               temp68_1))))))
                   (if (extflonum? m_0)
                     (bad-extflonum-for-complex m_0 s20_0 state21_0)
                     (if (extflonum? a_0)
                       (bad-extflonum-for-complex a_0 s20_0 state21_0)
                       (if (let ((or-part_0 (not m_0)))
                             (if or-part_0 or-part_0 (string? m_0)))
                         m_0
                         (if (let ((or-part_0 (not a_0)))
                               (if or-part_0 or-part_0 (string? a_0)))
                           a_0
                           (let ((cn_0 (make-polar m_0 a_0)))
                             (let ((tmp_0 (parse-state-exactness state21_0)))
                               (if (eq? tmp_0 'exact)
                                 (inexact->exact cn_0)
                                 cn_0))))))))))
             (if fst_0
               (if (eq? (state->convert-mode state21_0) 'must-read)
                 (format "missing `i` for complex number in `~.a`" s20_0)
                 #f)
               (void)))))))))
(define finish-imaginary
  (lambda (sgn/z_0 n_0 s_0 start_0 end_0 state_0)
    (let ((fst_0 (parse-state-fst state_0)))
      (if (if (eq? fst_0 '+/-) (fx= start_0 end_0) #f)
        (let ((v_0 (finish.1 #f sgn/z_0 n_0 s_0 state_0)))
          (if (let ((or-part_0 (not v_0)))
                (if or-part_0 or-part_0 (string? v_0)))
            v_0
            (if (extflonum? v_0)
              (bad-extflonum-for-complex v_0 s_0 state_0)
              (let ((zero_0
                     (let ((tmp_0 (parse-state-other-exactness state_0)))
                       (if (eq? tmp_0 'inexact) 0.0 0))))
                (make-rectangular zero_0 v_0)))))
        (if (if (rect-prefix? fst_0) (fx= start_0 end_0) #f)
          (let ((pos_0 (rect-prefix-start fst_0)))
            (let ((r_0
                   (let ((temp74_0 (rect-prefix-sgn/z fst_0)))
                     (let ((temp75_0 (rect-prefix-n fst_0)))
                       (let ((temp77_0 (state-first-half state_0)))
                         (let ((temp78_0 (cons 0 pos_0)))
                           (let ((temp77_1 temp77_0)
                                 (temp75_1 temp75_0)
                                 (temp74_1 temp74_0))
                             (finish.1
                              temp78_0
                              temp74_1
                              temp75_1
                              s_0
                              temp77_1))))))))
              (let ((i_0
                     (let ((temp82_0 (state-second-half state_0)))
                       (let ((temp83_0 (cons pos_0 (string-length s_0))))
                         (let ((temp82_1 temp82_0))
                           (finish.1 temp83_0 sgn/z_0 n_0 s_0 temp82_1))))))
                (if (extflonum? r_0)
                  (bad-extflonum-for-complex r_0 s_0 state_0)
                  (if (extflonum? i_0)
                    (bad-extflonum-for-complex r_0 i_0 state_0)
                    (if (let ((or-part_0 (not r_0)))
                          (if or-part_0 or-part_0 (string? r_0)))
                      r_0
                      (if (let ((or-part_0 (not i_0)))
                            (if or-part_0 or-part_0 (string? i_0)))
                        i_0
                        (make-rectangular r_0 i_0))))))))
          (bad-misplaced "i" s_0 state_0))))))
(define set-exactness.1
  (|#%name|
   set-exactness
   (lambda (override?23_0 state25_0 new-exactness26_0)
     (begin
       (let ((exactness_0 (parse-state-exactness state25_0)))
         (let ((result-exactness_0
                (if (if (eq? new-exactness26_0 'single)
                      #t
                      (eq? new-exactness26_0 'double))
                  (if (eq? exactness_0 'exact)
                    'exact
                    (if (eq? exactness_0 'decimal-as-exact)
                      (if override?23_0 new-exactness26_0 'decimal-as-exact)
                      new-exactness26_0))
                  (if (eq? new-exactness26_0 'approx)
                    (if (if (eq? exactness_0 'exact)
                          #t
                          (if (eq? exactness_0 'inexact)
                            #t
                            (eq? exactness_0 'decimal-as-exact)))
                      exactness_0
                      new-exactness26_0)
                    (if (eq? new-exactness26_0 'extended)
                      (if (eq? exactness_0 'inexact)
                        'extflonum->inexact
                        (if (eq? exactness_0 'exact)
                          'extflonum->exact
                          'extended))
                      new-exactness26_0)))))
           (if (eq? exactness_0 result-exactness_0)
             state25_0
             (if (parse-state? state25_0)
               (parse-state6.1
                result-exactness_0
                (parse-state-convert-mode state25_0)
                (parse-state-can-single? state25_0)
                (parse-state-fst state25_0)
                (parse-state-other-exactness state25_0))
               (raise-argument-error
                'struct-copy
                "parse-state?"
                state25_0)))))))))
(define set-exactness-by-char.1
  (|#%name|
   set-exactness-by-char
   (lambda (override?28_0 state30_0 c31_0)
     (begin
       (let ((temp86_0
              (let ((index_0
                     (if (char? c31_0)
                       (let ((codepoint_0 (char->integer c31_0)))
                         (if (if (unsafe-fx>= codepoint_0 48)
                               (unsafe-fx< codepoint_0 117)
                               #f)
                           (let ((tbl_0
                                  '#(1
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     1
                                     1
                                     2
                                     0
                                     0
                                     0
                                     0
                                     0
                                     1
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     2
                                     3
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     1
                                     1
                                     2
                                     0
                                     0
                                     0
                                     0
                                     0
                                     1
                                     0
                                     0
                                     0
                                     0
                                     0
                                     0
                                     2
                                     3)))
                             (unsafe-vector*-ref
                              tbl_0
                              (unsafe-fx- codepoint_0 48)))
                           0))
                       0)))
                (if (unsafe-fx< index_0 1)
                  (void)
                  (if (unsafe-fx< index_0 2)
                    'double
                    (if (unsafe-fx< index_0 3) 'single 'extended))))))
         (set-exactness.1 override?28_0 state30_0 temp86_0))))))
(define trim-number
  (lambda (s_0 start_0 end_0)
    (if (eqv? (string-ref s_0 start_0) '#\x23)
      (trim-number s_0 (fx+ 2 start_0) end_0)
      (if (let ((c_0 (string-ref s_0 (fx- end_0 1))))
            (let ((or-part_0 (eqv? c_0 '#\x69)))
              (if or-part_0 or-part_0 (eqv? c_0 '#\x49))))
        (trim-number s_0 start_0 (fx- end_0 1))
        (substring s_0 start_0 end_0)))))
(define add-digit
  (lambda (d_0 c_0 radix_0)
    (if (pair? d_0)
      (let ((p_0 (car d_0)))
        (let ((digits_0 (add-digit (car p_0) c_0 radix_0)))
          (if (pair? digits_0)
            (let ((app_0 (car digits_0)))
              (let ((app_1
                     (let ((app_1 (cdr digits_0))) (cons app_1 (cdr p_0)))))
                (list* app_0 app_1 (cdr d_0))))
            (let ((app_0 (cons digits_0 (fx+ 1 (cdr p_0)))))
              (cons app_0 (cdr d_0))))))
      (if (eqv? d_0 0)
        c_0
        (if (< d_0 1267650600228229401496703205376)
          (+ (* d_0 radix_0) c_0)
          (cons (cons c_0 1) d_0))))))
(define digits->integer
  (lambda (d_0 radix_0)
    (if (pair? d_0)
      (let ((len_0
             (letrec*
              ((loop_0
                (|#%name|
                 loop
                 (lambda (d_1)
                   (begin (if (pair? d_1) (fx+ 1 (loop_0 (cdr d_1))) 1))))))
              (loop_0 d_0))))
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (d_1 len_1)
              (begin
                (if (fx= len_1 1)
                  (if (pair? d_1) (caar d_1) d_1)
                  (let ((hi-len_0 (unsafe-fxrshift len_1 1)))
                    (let ((lo-len_0 (fx- len_1 hi-len_0)))
                      (let ((hi_0 (loop_0 d_1 hi-len_0)))
                        (letrec*
                         ((split-loop_0
                           (|#%name|
                            split-loop
                            (lambda (shift_0 hi-len_1 d_2)
                              (begin
                                (if (fx= hi-len_1 0)
                                  (+
                                   hi_0
                                   (let ((app_0 (expt radix_0 shift_0)))
                                     (* app_0 (loop_0 d_2 lo-len_0))))
                                  (let ((app_0 (fx+ shift_0 (cdar d_2))))
                                    (let ((app_1 (fx- hi-len_1 1)))
                                      (split-loop_0
                                       app_0
                                       app_1
                                       (cdr d_2))))))))))
                         (split-loop_0 0 hi-len_0 d_1)))))))))))
         (loop_0 d_0 len_0)))
      d_0)))
(define do-string->number.1
  (|#%name|
   do-string->number
   (lambda (radix-set?33_0
            s35_0
            start36_0
            end37_0
            radix38_0
            exactness39_0
            convert-mode40_0
            single-mode41_0)
     (begin
       (let ((c_0
              (if (fx= start36_0 end37_0)
                'eof
                (let ((c_0 (string-ref s35_0 start36_0)))
                  (maybe-digit c_0 radix38_0)))))
         (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
           (if (eq? (state->convert-mode convert-mode40_0) 'must-read)
             (format "no digits")
             #f)
           (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
             (let ((app_0 (fx+ 1 start36_0)))
               (read-integer
                1
                c_0
                s35_0
                app_0
                end37_0
                radix38_0
                (begin-unsafe
                 (parse-state6.1
                  exactness39_0
                  convert-mode40_0
                  (eq? single-mode41_0 'single)
                  #f
                  exactness39_0))))
             (if (let ((or-part_0 (eqv? c_0 '#\x23)))
                   (if or-part_0 or-part_0 #f))
               (let ((next_0 (fx+ 1 start36_0)))
                 (let ((i_0
                        (if (fx= next_0 end37_0)
                          'eof
                          (let ((c_1 (string-ref s35_0 next_0)))
                            (maybe-digit c_1 10)))))
                   (if (let ((or-part_0 (eqv? i_0 'eof)))
                         (if or-part_0 or-part_0 #f))
                     (if (eq?
                          (state->convert-mode convert-mode40_0)
                          'must-read)
                       (format
                        "no character after `#` indicator in `~.a`"
                        s35_0)
                       #f)
                     (if (let ((or-part_0 (eqv? i_0 '#\x65)))
                           (if or-part_0
                             or-part_0
                             (let ((or-part_1 (eqv? i_0 '#\x45)))
                               (if or-part_1
                                 or-part_1
                                 (let ((or-part_2 (eqv? i_0 '#\x69)))
                                   (if or-part_2
                                     or-part_2
                                     (let ((or-part_3 (eqv? i_0 '#\x49)))
                                       (if or-part_3 or-part_3 #f))))))))
                       (if (let ((or-part_0 (eq? exactness39_0 'exact)))
                             (if or-part_0
                               or-part_0
                               (eq? exactness39_0 'inexact)))
                         (if (eq?
                              (state->convert-mode convert-mode40_0)
                              'must-read)
                           (format
                            "misplaced exactness specification at `~.a`"
                            (substring s35_0 start36_0 end37_0))
                           #f)
                         (let ((temp89_0 (fx+ 1 next_0)))
                           (let ((temp93_0
                                  (if (let ((or-part_0 (char=? i_0 '#\x65)))
                                        (if or-part_0
                                          or-part_0
                                          (char=? i_0 '#\x45)))
                                    'exact
                                    'inexact)))
                             (let ((temp94_0
                                    (if (eq? convert-mode40_0 'read)
                                      'must-read
                                      convert-mode40_0)))
                               (let ((temp93_1 temp93_0) (temp89_1 temp89_0))
                                 (do-string->number.1
                                  radix-set?33_0
                                  s35_0
                                  temp89_1
                                  end37_0
                                  radix38_0
                                  temp93_1
                                  temp94_0
                                  single-mode41_0))))))
                       (if (let ((or-part_0 (eqv? i_0 '#\x62)))
                             (if or-part_0
                               or-part_0
                               (let ((or-part_1 (eqv? i_0 '#\x42)))
                                 (if or-part_1
                                   or-part_1
                                   (let ((or-part_2 (eqv? i_0 '#\x6f)))
                                     (if or-part_2
                                       or-part_2
                                       (let ((or-part_3 (eqv? i_0 '#\x4f)))
                                         (if or-part_3
                                           or-part_3
                                           (let ((or-part_4 (eqv? i_0 '#\x64)))
                                             (if or-part_4
                                               or-part_4
                                               (let ((or-part_5
                                                      (eqv? i_0 '#\x44)))
                                                 (if or-part_5
                                                   or-part_5
                                                   (let ((or-part_6
                                                          (eqv? i_0 '#\x78)))
                                                     (if or-part_6
                                                       or-part_6
                                                       (let ((or-part_7
                                                              (eqv?
                                                               i_0
                                                               '#\x58)))
                                                         (if or-part_7
                                                           or-part_7
                                                           #f))))))))))))))))
                         (if radix-set?33_0
                           (if (eq?
                                (state->convert-mode convert-mode40_0)
                                'must-read)
                             (format
                              "misplaced radix specification at `~.a`"
                              (substring s35_0 start36_0 end37_0))
                             #f)
                           (let ((radix_0
                                  (if (if (eqv? i_0 '#\x62)
                                        #t
                                        (eqv? i_0 '#\x42))
                                    2
                                    (if (if (eqv? i_0 '#\x6f)
                                          #t
                                          (eqv? i_0 '#\x4f))
                                      8
                                      (if (if (eqv? i_0 '#\x64)
                                            #t
                                            (eqv? i_0 '#\x44))
                                        10
                                        16)))))
                             (let ((temp97_0 (fx+ 1 next_0)))
                               (let ((temp102_0
                                      (if (eq? convert-mode40_0 'read)
                                        'must-read
                                        convert-mode40_0)))
                                 (let ((temp97_1 temp97_0))
                                   (do-string->number.1
                                    #t
                                    s35_0
                                    temp97_1
                                    end37_0
                                    radix_0
                                    exactness39_0
                                    temp102_0
                                    single-mode41_0))))))
                         (if (eq?
                              (state->convert-mode
                               (if (eq? convert-mode40_0 'read)
                                 'must-read
                                 convert-mode40_0))
                              'must-read)
                           (format
                            "bad `#` indicator `~a` at `~.a`"
                            i_0
                            (substring s35_0 start36_0 end37_0))
                           #f))))))
               (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                     (if or-part_0 or-part_0 #f))
                 (let ((app_0 (fx+ 1 start36_0)))
                   (read-signed
                    1
                    s35_0
                    app_0
                    end37_0
                    radix38_0
                    (begin-unsafe
                     (parse-state6.1
                      exactness39_0
                      convert-mode40_0
                      (eq? single-mode41_0 'single)
                      '+/-
                      exactness39_0))))
                 (if (let ((or-part_0 (eqv? c_0 '#\x2d)))
                       (if or-part_0 or-part_0 #f))
                   (let ((app_0 (fx+ 1 start36_0)))
                     (read-signed
                      -1
                      s35_0
                      app_0
                      end37_0
                      radix38_0
                      (begin-unsafe
                       (parse-state6.1
                        exactness39_0
                        convert-mode40_0
                        (eq? single-mode41_0 'single)
                        '+/-
                        exactness39_0))))
                   (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                         (if or-part_0 or-part_0 #f))
                     (let ((app_0 (fx+ 1 start36_0)))
                       (read-decimal
                        1
                        #f
                        0
                        s35_0
                        app_0
                        end37_0
                        radix38_0
                        (let ((temp104_0
                               (begin-unsafe
                                (parse-state6.1
                                 exactness39_0
                                 convert-mode40_0
                                 (eq? single-mode41_0 'single)
                                 #f
                                 exactness39_0))))
                          (set-exactness.1 #f temp104_0 'approx))))
                     (bad-digit c_0 s35_0 convert-mode40_0))))))))))))
(define read-signed
  (lambda (sgn_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((c_0
           (if (fx= start_0 end_0)
             'eof
             (let ((c_0 (string-ref s_0 start_0)))
               (maybe-digit c_0 radix_0)))))
      (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
        (if (eq? (state->convert-mode state_0) 'must-read)
          (format "no digits in `~.a`" s_0)
          #f)
        (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
          (read-integer sgn_0 c_0 s_0 (fx+ 1 start_0) end_0 radix_0 state_0)
          (if (let ((or-part_0 (eqv? c_0 '#\x2e))) (if or-part_0 or-part_0 #f))
            (let ((app_0 (fx+ 1 start_0)))
              (read-decimal
               sgn_0
               #f
               0
               s_0
               app_0
               end_0
               radix_0
               (set-exactness.1 #f state_0 'approx)))
            (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                  (if or-part_0
                    or-part_0
                    (let ((or-part_1 (eqv? c_0 '#\x49)))
                      (if or-part_1 or-part_1 #f))))
              (let ((c2_0
                     (if (fx= (fx+ 1 start_0) end_0)
                       'eof
                       (let ((c_1 (string-ref s_0 (fx+ 1 start_0))))
                         (maybe-digit c_1 radix_0)))))
                (if (let ((or-part_0 (eqv? c2_0 'eof)))
                      (if or-part_0 or-part_0 #f))
                  (finish-imaginary
                   sgn_0
                   sgn_0
                   s_0
                   (fx+ 1 start_0)
                   end_0
                   state_0)
                  (if (let ((or-part_0 (eqv? c2_0 '#\x6e)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (eqv? c2_0 '#\x4e)))
                            (if or-part_1 or-part_1 #f))))
                    (read-infinity
                     sgn_0
                     c_0
                     s_0
                     (fx+ 2 start_0)
                     end_0
                     radix_0
                     state_0)
                    (bad-digit c_0 s_0 state_0))))
              (if (let ((or-part_0 (eqv? c_0 '#\x6e)))
                    (if or-part_0
                      or-part_0
                      (let ((or-part_1 (eqv? c_0 '#\x4e)))
                        (if or-part_1 or-part_1 #f))))
                (read-nan c_0 s_0 (fx+ 1 start_0) end_0 radix_0 state_0)
                (bad-digit c_0 s_0 state_0)))))))))
(define read-integer
  (lambda (sgn_0 n_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((get-n_0
           (|#%name|
            get-n
            (lambda () (begin (* sgn_0 (digits->integer n_0 radix_0)))))))
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (let ((temp109_0 (get-n_0)))
            (finish.1 #f sgn_0 temp109_0 s_0 state_0))
          (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
            (let ((app_0 (add-digit n_0 c_0 radix_0)))
              (read-integer
               sgn_0
               app_0
               s_0
               (fx+ 1 start_0)
               end_0
               radix_0
               state_0))
            (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                  (if or-part_0 or-part_0 #f))
              (let ((app_0 (digits->integer n_0 radix_0)))
                (let ((app_1 (fx+ 1 start_0)))
                  (read-decimal
                   sgn_0
                   app_0
                   0
                   s_0
                   app_1
                   end_0
                   radix_0
                   (set-exactness.1 #f state_0 'approx))))
              (if (let ((or-part_0 (eqv? c_0 '#\x65)))
                    (if or-part_0
                      or-part_0
                      (let ((or-part_1 (eqv? c_0 '#\x45)))
                        (if or-part_1
                          or-part_1
                          (let ((or-part_2 (eqv? c_0 '#\x64)))
                            (if or-part_2
                              or-part_2
                              (let ((or-part_3 (eqv? c_0 '#\x44)))
                                (if or-part_3
                                  or-part_3
                                  (let ((or-part_4 (eqv? c_0 '#\x6c)))
                                    (if or-part_4
                                      or-part_4
                                      (let ((or-part_5 (eqv? c_0 '#\x4c)))
                                        (if or-part_5
                                          or-part_5
                                          (let ((or-part_6 (eqv? c_0 '#\x66)))
                                            (if or-part_6
                                              or-part_6
                                              (let ((or-part_7
                                                     (eqv? c_0 '#\x46)))
                                                (if or-part_7
                                                  or-part_7
                                                  (let ((or-part_8
                                                         (eqv? c_0 '#\x73)))
                                                    (if or-part_8
                                                      or-part_8
                                                      (let ((or-part_9
                                                             (eqv?
                                                              c_0
                                                              '#\x53)))
                                                        (if or-part_9
                                                          or-part_9
                                                          (let ((or-part_10
                                                                 (eqv?
                                                                  c_0
                                                                  '#\x74)))
                                                            (if or-part_10
                                                              or-part_10
                                                              (let ((or-part_11
                                                                     (eqv?
                                                                      c_0
                                                                      '#\x54)))
                                                                (if or-part_11
                                                                  or-part_11
                                                                  #f))))))))))))))))))))))))
                (let ((app_0 (get-n_0)))
                  (let ((app_1 (fx+ 1 start_0)))
                    (read-exponent
                     sgn_0
                     app_0
                     0
                     s_0
                     app_1
                     end_0
                     radix_0
                     (set-exactness-by-char.1 #f state_0 c_0))))
                (if (let ((or-part_0 (eqv? c_0 '#\x2f)))
                      (if or-part_0 or-part_0 #f))
                  (let ((app_0 (get-n_0)))
                    (read-rational
                     sgn_0
                     app_0
                     #f
                     s_0
                     (fx+ 1 start_0)
                     end_0
                     radix_0
                     state_0))
                  (if (let ((or-part_0 (eqv? c_0 '#\x23)))
                        (if or-part_0 or-part_0 #f))
                    (let ((app_0 (digits->integer n_0 radix_0)))
                      (let ((app_1 (fx+ 1 start_0)))
                        (read-approx
                         sgn_0
                         app_0
                         1
                         #f
                         s_0
                         app_1
                         end_0
                         radix_0
                         (set-exactness.1 #f state_0 'approx))))
                    (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                          (if or-part_0
                            or-part_0
                            (let ((or-part_1 (eqv? c_0 '#\x2d)))
                              (if or-part_1 or-part_1 #f))))
                      (let ((app_0 (get-n_0)))
                        (read-imag
                         c_0
                         sgn_0
                         app_0
                         (if (eqv? c_0 '#\x2b) 1 -1)
                         s_0
                         (fx+ 1 start_0)
                         end_0
                         radix_0
                         state_0))
                      (if (let ((or-part_0 (eqv? c_0 '#\x40)))
                            (if or-part_0 or-part_0 #f))
                        (let ((app_0 (get-n_0)))
                          (read-polar
                           sgn_0
                           app_0
                           s_0
                           (fx+ 1 start_0)
                           end_0
                           radix_0
                           state_0))
                        (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                              (if or-part_0
                                or-part_0
                                (let ((or-part_1 (eqv? c_0 '#\x49)))
                                  (if or-part_1 or-part_1 #f))))
                          (let ((app_0 (get-n_0)))
                            (finish-imaginary
                             sgn_0
                             app_0
                             s_0
                             (fx+ 1 start_0)
                             end_0
                             state_0))
                          (bad-digit c_0 s_0 state_0))))))))))))))
(define read-decimal
  (lambda (sgn_0 n_0 exp_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((get-n_0
           (|#%name|
            get-n
            (lambda ()
              (begin
                (if n_0
                  (let ((app_0 (* sgn_0 (digits->integer n_0 radix_0))))
                    (lazy-number app_0 radix_0 (- exp_0)))
                  (bad-no-digits "." s_0 state_0)))))))
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (let ((or-part_0
                 (if n_0
                   (fast-inexact
                    state_0
                    sgn_0
                    (digits->integer n_0 radix_0)
                    radix_0
                    0
                    -1
                    exp_0)
                   #f)))
            (if or-part_0
              or-part_0
              (let ((v_0 (get-n_0)))
                (if (let ((or-part_1 (not v_0)))
                      (if or-part_1 or-part_1 (string? v_0)))
                  v_0
                  (finish.1 #f sgn_0 v_0 s_0 state_0)))))
          (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
            (let ((next_0 (fx+ 1 start_0)))
              (if (if (eqv? c_0 '#\x30) (fx= next_0 end_0) #f)
                (read-decimal
                 sgn_0
                 (if n_0 n_0 0)
                 exp_0
                 s_0
                 next_0
                 end_0
                 radix_0
                 state_0)
                (let ((app_0 (add-digit (if n_0 n_0 0) c_0 radix_0)))
                  (let ((app_1 (fx+ 1 exp_0)))
                    (read-decimal
                     sgn_0
                     app_0
                     app_1
                     s_0
                     (fx+ 1 start_0)
                     end_0
                     radix_0
                     state_0)))))
            (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                  (if or-part_0 or-part_0 #f))
              (bad-misplaced "." s_0 state_0)
              (if (let ((or-part_0 (eqv? c_0 '#\x65)))
                    (if or-part_0
                      or-part_0
                      (let ((or-part_1 (eqv? c_0 '#\x45)))
                        (if or-part_1
                          or-part_1
                          (let ((or-part_2 (eqv? c_0 '#\x64)))
                            (if or-part_2
                              or-part_2
                              (let ((or-part_3 (eqv? c_0 '#\x44)))
                                (if or-part_3
                                  or-part_3
                                  (let ((or-part_4 (eqv? c_0 '#\x6c)))
                                    (if or-part_4
                                      or-part_4
                                      (let ((or-part_5 (eqv? c_0 '#\x4c)))
                                        (if or-part_5
                                          or-part_5
                                          (let ((or-part_6 (eqv? c_0 '#\x66)))
                                            (if or-part_6
                                              or-part_6
                                              (let ((or-part_7
                                                     (eqv? c_0 '#\x46)))
                                                (if or-part_7
                                                  or-part_7
                                                  (let ((or-part_8
                                                         (eqv? c_0 '#\x73)))
                                                    (if or-part_8
                                                      or-part_8
                                                      (let ((or-part_9
                                                             (eqv?
                                                              c_0
                                                              '#\x53)))
                                                        (if or-part_9
                                                          or-part_9
                                                          (let ((or-part_10
                                                                 (eqv?
                                                                  c_0
                                                                  '#\x74)))
                                                            (if or-part_10
                                                              or-part_10
                                                              (let ((or-part_11
                                                                     (eqv?
                                                                      c_0
                                                                      '#\x54)))
                                                                (if or-part_11
                                                                  or-part_11
                                                                  #f))))))))))))))))))))))))
                (if n_0
                  (let ((app_0 (* sgn_0 (digits->integer n_0 radix_0))))
                    (let ((app_1 (- exp_0)))
                      (let ((app_2 (fx+ 1 start_0)))
                        (read-exponent
                         sgn_0
                         app_0
                         app_1
                         s_0
                         app_2
                         end_0
                         radix_0
                         (set-exactness-by-char.1 #f state_0 c_0)))))
                  (bad-no-digits "." s_0 state_0))
                (if (let ((or-part_0 (eqv? c_0 '#\x2f)))
                      (if or-part_0 or-part_0 #f))
                  (bad-mixed-decimal-fraction s_0 state_0)
                  (if (let ((or-part_0 (eqv? c_0 '#\x23)))
                        (if or-part_0 or-part_0 #f))
                    (if n_0
                      (let ((app_0 (digits->integer n_0 radix_0)))
                        (let ((app_1 (fx- 0 exp_0)))
                          (read-approx
                           sgn_0
                           app_0
                           app_1
                           #t
                           s_0
                           (fx+ 1 start_0)
                           end_0
                           radix_0
                           state_0)))
                      (bad-misplaced "#" s_0 state_0))
                    (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                          (if or-part_0
                            or-part_0
                            (let ((or-part_1 (eqv? c_0 '#\x2d)))
                              (if or-part_1 or-part_1 #f))))
                      (if n_0
                        (let ((app_0 (get-n_0)))
                          (read-imag
                           c_0
                           sgn_0
                           app_0
                           (if (eqv? c_0 '#\x2b) 1 -1)
                           s_0
                           (fx+ 1 start_0)
                           end_0
                           radix_0
                           state_0))
                        (bad-no-digits "." s_0 state_0))
                      (if (let ((or-part_0 (eqv? c_0 '#\x40)))
                            (if or-part_0 or-part_0 #f))
                        (let ((v_0 (get-n_0)))
                          (if (let ((or-part_0 (not v_0)))
                                (if or-part_0 or-part_0 (string? v_0)))
                            v_0
                            (read-polar
                             sgn_0
                             v_0
                             s_0
                             (fx+ 1 start_0)
                             end_0
                             radix_0
                             state_0)))
                        (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                              (if or-part_0
                                or-part_0
                                (let ((or-part_1 (eqv? c_0 '#\x49)))
                                  (if or-part_1 or-part_1 #f))))
                          (let ((v_0 (get-n_0)))
                            (if (let ((or-part_0 (not v_0)))
                                  (if or-part_0 or-part_0 (string? v_0)))
                              v_0
                              (finish-imaginary
                               sgn_0
                               v_0
                               s_0
                               (fx+ 1 start_0)
                               end_0
                               state_0)))
                          (bad-digit c_0 s_0 state_0))))))))))))))
(define read-approx
  (lambda (sgn_0 n_0 exp_0 saw-.?_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((get-n_0
           (|#%name|
            get-n
            (lambda () (begin (lazy-number (* sgn_0 n_0) radix_0 exp_0))))))
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (let ((temp125_0 (get-n_0)))
            (finish.1 #f sgn_0 temp125_0 s_0 state_0))
          (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
            (bad-misplaced "#" s_0 state_0)
            (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                  (if or-part_0 or-part_0 #f))
              (if saw-.?_0
                (bad-misplaced "." s_0 state_0)
                (read-approx
                 sgn_0
                 n_0
                 exp_0
                 #t
                 s_0
                 (fx+ 1 start_0)
                 end_0
                 radix_0
                 state_0))
              (if (let ((or-part_0 (eqv? c_0 '#\x23)))
                    (if or-part_0 or-part_0 #f))
                (let ((app_0 (if saw-.?_0 exp_0 (fx+ 1 exp_0))))
                  (read-approx
                   sgn_0
                   n_0
                   app_0
                   saw-.?_0
                   s_0
                   (fx+ 1 start_0)
                   end_0
                   radix_0
                   state_0))
                (if (let ((or-part_0 (eqv? c_0 '#\x65)))
                      (if or-part_0
                        or-part_0
                        (let ((or-part_1 (eqv? c_0 '#\x45)))
                          (if or-part_1
                            or-part_1
                            (let ((or-part_2 (eqv? c_0 '#\x64)))
                              (if or-part_2
                                or-part_2
                                (let ((or-part_3 (eqv? c_0 '#\x44)))
                                  (if or-part_3
                                    or-part_3
                                    (let ((or-part_4 (eqv? c_0 '#\x6c)))
                                      (if or-part_4
                                        or-part_4
                                        (let ((or-part_5 (eqv? c_0 '#\x4c)))
                                          (if or-part_5
                                            or-part_5
                                            (let ((or-part_6
                                                   (eqv? c_0 '#\x66)))
                                              (if or-part_6
                                                or-part_6
                                                (let ((or-part_7
                                                       (eqv? c_0 '#\x46)))
                                                  (if or-part_7
                                                    or-part_7
                                                    (let ((or-part_8
                                                           (eqv? c_0 '#\x73)))
                                                      (if or-part_8
                                                        or-part_8
                                                        (let ((or-part_9
                                                               (eqv?
                                                                c_0
                                                                '#\x53)))
                                                          (if or-part_9
                                                            or-part_9
                                                            (let ((or-part_10
                                                                   (eqv?
                                                                    c_0
                                                                    '#\x74)))
                                                              (if or-part_10
                                                                or-part_10
                                                                (let ((or-part_11
                                                                       (eqv?
                                                                        c_0
                                                                        '#\x54)))
                                                                  (if or-part_11
                                                                    or-part_11
                                                                    #f))))))))))))))))))))))))
                  (let ((app_0 (* sgn_0 n_0)))
                    (let ((app_1 (fx+ 1 start_0)))
                      (read-exponent
                       sgn_0
                       app_0
                       exp_0
                       s_0
                       app_1
                       end_0
                       radix_0
                       (set-exactness-by-char.1 #f state_0 c_0))))
                  (if (let ((or-part_0 (eqv? c_0 '#\x2f)))
                        (if or-part_0 or-part_0 #f))
                    (if saw-.?_0
                      (bad-mixed-decimal-fraction s_0 state_0)
                      (let ((app_0 (get-n_0)))
                        (read-rational
                         sgn_0
                         app_0
                         #f
                         s_0
                         (fx+ 1 start_0)
                         end_0
                         radix_0
                         state_0)))
                    (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                          (if or-part_0
                            or-part_0
                            (let ((or-part_1 (eqv? c_0 '#\x2d)))
                              (if or-part_1 or-part_1 #f))))
                      (let ((app_0 (get-n_0)))
                        (read-imag
                         c_0
                         sgn_0
                         app_0
                         (if (eqv? c_0 '#\x2b) 1 -1)
                         s_0
                         (fx+ 1 start_0)
                         end_0
                         radix_0
                         state_0))
                      (if (let ((or-part_0 (eqv? c_0 '#\x40)))
                            (if or-part_0 or-part_0 #f))
                        (let ((app_0 (get-n_0)))
                          (read-polar
                           sgn_0
                           app_0
                           s_0
                           (fx+ 1 start_0)
                           end_0
                           radix_0
                           state_0))
                        (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                              (if or-part_0
                                or-part_0
                                (let ((or-part_1 (eqv? c_0 '#\x49)))
                                  (if or-part_1 or-part_1 #f))))
                          (let ((app_0 (get-n_0)))
                            (finish-imaginary
                             sgn_0
                             app_0
                             s_0
                             (fx+ 1 start_0)
                             end_0
                             state_0))
                          (bad-digit c_0 s_0 state_0))))))))))))))
(define read-exponent
  (lambda (sgn_0 sgn-n_0 exp_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((c_0
           (if (fx= start_0 end_0)
             'eof
             (let ((c_0 (string-ref s_0 start_0)))
               (maybe-digit c_0 radix_0)))))
      (if (let ((or-part_0 (eqv? c_0 'eof)))
            (if or-part_0
              or-part_0
              (let ((or-part_1 (eqv? c_0 '#\x40)))
                (if or-part_1 or-part_1 #f))))
        (if (eq? (state->convert-mode state_0) 'must-read)
          (format "empty exponent `~.a`" s_0)
          #f)
        (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
          (read-signed-exponent
           sgn_0
           sgn-n_0
           exp_0
           1
           c_0
           s_0
           (fx+ 1 start_0)
           end_0
           radix_0
           state_0)
          (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                (if or-part_0
                  or-part_0
                  (let ((or-part_1 (eqv? c_0 '#\x2d)))
                    (if or-part_1 or-part_1 #f))))
            (let ((sgn2_0 (if (eqv? c_0 '#\x2b) 1 -1)))
              (read-signed-exponent
               sgn_0
               sgn-n_0
               exp_0
               sgn2_0
               #f
               s_0
               (fx+ 1 start_0)
               end_0
               radix_0
               state_0))
            (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                  (if or-part_0
                    or-part_0
                    (let ((or-part_1 (eqv? c_0 '#\x23)))
                      (if or-part_1
                        or-part_1
                        (let ((or-part_2 (eqv? c_0 '#\x2f)))
                          (if or-part_2
                            or-part_2
                            (let ((or-part_3 (eqv? c_0 '#\x65)))
                              (if or-part_3
                                or-part_3
                                (let ((or-part_4 (eqv? c_0 '#\x45)))
                                  (if or-part_4
                                    or-part_4
                                    (let ((or-part_5 (eqv? c_0 '#\x64)))
                                      (if or-part_5
                                        or-part_5
                                        (let ((or-part_6 (eqv? c_0 '#\x44)))
                                          (if or-part_6
                                            or-part_6
                                            (let ((or-part_7
                                                   (eqv? c_0 '#\x6c)))
                                              (if or-part_7
                                                or-part_7
                                                (let ((or-part_8
                                                       (eqv? c_0 '#\x4c)))
                                                  (if or-part_8
                                                    or-part_8
                                                    (let ((or-part_9
                                                           (eqv? c_0 '#\x66)))
                                                      (if or-part_9
                                                        or-part_9
                                                        (let ((or-part_10
                                                               (eqv?
                                                                c_0
                                                                '#\x46)))
                                                          (if or-part_10
                                                            or-part_10
                                                            (let ((or-part_11
                                                                   (eqv?
                                                                    c_0
                                                                    '#\x73)))
                                                              (if or-part_11
                                                                or-part_11
                                                                (let ((or-part_12
                                                                       (eqv?
                                                                        c_0
                                                                        '#\x53)))
                                                                  (if or-part_12
                                                                    or-part_12
                                                                    (let ((or-part_13
                                                                           (eqv?
                                                                            c_0
                                                                            '#\x74)))
                                                                      (if or-part_13
                                                                        or-part_13
                                                                        (let ((or-part_14
                                                                               (eqv?
                                                                                c_0
                                                                                '#\x54)))
                                                                          (if or-part_14
                                                                            or-part_14
                                                                            #f))))))))))))))))))))))))))))))
              (bad-misplaced c_0 s_0 state_0)
              (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                    (if or-part_0
                      or-part_0
                      (let ((or-part_1 (eqv? c_0 '#\x49)))
                        (if or-part_1 or-part_1 #f))))
                (if (state-has-first-half? state_0)
                  (if (eq? (state->convert-mode state_0) 'must-read)
                    (format "empty exponent `~.a`" s_0)
                    #f)
                  (bad-misplaced "i" s_0 state_0))
                (bad-digit c_0 s_0 state_0)))))))))
(define read-signed-exponent
  (lambda (sgn_0 sgn-n_0 exp_0 sgn2_0 exp2_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((get-n_0
           (|#%name|
            get-n
            (lambda ()
              (begin
                (if exp2_0
                  (lazy-number
                   sgn-n_0
                   radix_0
                   (+ exp_0 (* sgn2_0 (digits->integer exp2_0 radix_0))))
                  (if (eq? (state->convert-mode state_0) 'must-read)
                    (format "empty exponent `~.a`" s_0)
                    #f)))))))
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (let ((or-part_0
                 (if exp2_0
                   (if (number? sgn-n_0)
                     (fast-inexact
                      state_0
                      (if (eqv? sgn-n_0 0) sgn_0 1)
                      sgn-n_0
                      radix_0
                      exp_0
                      sgn2_0
                      (digits->integer exp2_0 radix_0))
                     #f)
                   #f)))
            (if or-part_0
              or-part_0
              (let ((v_0 (get-n_0)))
                (if (let ((or-part_1 (not v_0)))
                      (if or-part_1 or-part_1 (string? v_0)))
                  v_0
                  (finish.1 #f sgn_0 v_0 s_0 state_0)))))
          (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
            (let ((new-exp2_0 (add-digit (if exp2_0 exp2_0 0) c_0 radix_0)))
              (read-signed-exponent
               sgn_0
               sgn-n_0
               exp_0
               sgn2_0
               new-exp2_0
               s_0
               (fx+ 1 start_0)
               end_0
               radix_0
               state_0))
            (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                  (if or-part_0
                    or-part_0
                    (let ((or-part_1 (eqv? c_0 '#\x2d)))
                      (if or-part_1 or-part_1 #f))))
              (let ((v_0 (get-n_0)))
                (if (let ((or-part_0 (not v_0)))
                      (if or-part_0 or-part_0 (string? v_0)))
                  v_0
                  (read-imag
                   c_0
                   sgn_0
                   v_0
                   (if (eqv? c_0 '#\x2b) 1 -1)
                   s_0
                   (fx+ 1 start_0)
                   end_0
                   radix_0
                   state_0)))
              (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                    (if or-part_0
                      or-part_0
                      (let ((or-part_1 (eqv? c_0 '#\x23)))
                        (if or-part_1
                          or-part_1
                          (let ((or-part_2 (eqv? c_0 '#\x2f)))
                            (if or-part_2
                              or-part_2
                              (let ((or-part_3 (eqv? c_0 '#\x65)))
                                (if or-part_3
                                  or-part_3
                                  (let ((or-part_4 (eqv? c_0 '#\x45)))
                                    (if or-part_4
                                      or-part_4
                                      (let ((or-part_5 (eqv? c_0 '#\x64)))
                                        (if or-part_5
                                          or-part_5
                                          (let ((or-part_6 (eqv? c_0 '#\x44)))
                                            (if or-part_6
                                              or-part_6
                                              (let ((or-part_7
                                                     (eqv? c_0 '#\x6c)))
                                                (if or-part_7
                                                  or-part_7
                                                  (let ((or-part_8
                                                         (eqv? c_0 '#\x4c)))
                                                    (if or-part_8
                                                      or-part_8
                                                      (let ((or-part_9
                                                             (eqv?
                                                              c_0
                                                              '#\x66)))
                                                        (if or-part_9
                                                          or-part_9
                                                          (let ((or-part_10
                                                                 (eqv?
                                                                  c_0
                                                                  '#\x46)))
                                                            (if or-part_10
                                                              or-part_10
                                                              (let ((or-part_11
                                                                     (eqv?
                                                                      c_0
                                                                      '#\x73)))
                                                                (if or-part_11
                                                                  or-part_11
                                                                  (let ((or-part_12
                                                                         (eqv?
                                                                          c_0
                                                                          '#\x53)))
                                                                    (if or-part_12
                                                                      or-part_12
                                                                      (let ((or-part_13
                                                                             (eqv?
                                                                              c_0
                                                                              '#\x74)))
                                                                        (if or-part_13
                                                                          or-part_13
                                                                          (let ((or-part_14
                                                                                 (eqv?
                                                                                  c_0
                                                                                  '#\x54)))
                                                                            (if or-part_14
                                                                              or-part_14
                                                                              #f))))))))))))))))))))))))))))))
                (bad-misplaced c_0 s_0 state_0)
                (if (let ((or-part_0 (eqv? c_0 '#\x40)))
                      (if or-part_0 or-part_0 #f))
                  (let ((v_0 (get-n_0)))
                    (if (let ((or-part_0 (not v_0)))
                          (if or-part_0 or-part_0 (string? v_0)))
                      v_0
                      (read-polar
                       sgn_0
                       v_0
                       s_0
                       (fx+ 1 start_0)
                       end_0
                       radix_0
                       state_0)))
                  (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (eqv? c_0 '#\x49)))
                            (if or-part_1 or-part_1 #f))))
                    (let ((v_0 (get-n_0)))
                      (if (let ((or-part_0 (not v_0)))
                            (if or-part_0 or-part_0 (string? v_0)))
                        v_0
                        (finish-imaginary
                         sgn_0
                         v_0
                         s_0
                         (fx+ 1 start_0)
                         end_0
                         state_0)))
                    (bad-digit c_0 s_0 state_0)))))))))))
(define read-infinity
  (lambda (sgn_0 c_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((fail_0
           (|#%name| fail (lambda () (begin (bad-digit c_0 s_0 state_0))))))
      (let ((start+n_0 (fx+ start_0 0)))
        (let ((var_0
               (if (fx= start+n_0 end_0) 'eof (string-ref s_0 start+n_0))))
          (if (if (eqv? var_0 '#\x66) #t (eqv? var_0 '#\x46))
            (let ((fail_1 (|#%name| fail (lambda () (begin (fail_0))))))
              (let ((start+n_1 (fx+ start_0 1)))
                (let ((var_1
                       (if (fx= start+n_1 end_0)
                         'eof
                         (string-ref s_0 start+n_1))))
                  (if (eqv? var_1 '#\x2e)
                    (let ((fail_2
                           (|#%name| fail (lambda () (begin (fail_1))))))
                      (let ((start+n_2 (fx+ start_0 2)))
                        (let ((var_2
                               (if (fx= start+n_2 end_0)
                                 'eof
                                 (string-ref s_0 start+n_2))))
                          (if (if (eqv? var_2 '#\x30)
                                #t
                                (if (eqv? var_2 '#\x66)
                                  #t
                                  (if (eqv? var_2 '#\x74)
                                    #t
                                    (if (eqv? var_2 '#\x46)
                                      #t
                                      (eqv? var_2 '#\x54)))))
                            (let ((n_0 (if (negative? sgn_0) -inf.0 +inf.0)))
                              (let ((new-state_0
                                     (let ((temp135_0
                                            (string-ref s_0 (fx+ start_0 2))))
                                       (set-exactness-by-char.1
                                        #t
                                        state_0
                                        temp135_0))))
                                (let ((c2_0
                                       (if (fx= (fx+ 3 start_0) end_0)
                                         'eof
                                         (let ((c_1
                                                (string-ref
                                                 s_0
                                                 (fx+ 3 start_0))))
                                           (maybe-digit c_1 radix_0)))))
                                  (if (let ((or-part_0 (eqv? c2_0 'eof)))
                                        (if or-part_0 or-part_0 #f))
                                    (finish.1 #f sgn_0 n_0 s_0 new-state_0)
                                    (if (let ((or-part_0 (eqv? c2_0 '#\x2b)))
                                          (if or-part_0
                                            or-part_0
                                            (let ((or-part_1
                                                   (eqv? c2_0 '#\x2d)))
                                              (if or-part_1 or-part_1 #f))))
                                      (read-imag
                                       c2_0
                                       sgn_0
                                       n_0
                                       (if (eqv? c2_0 '#\x2b) 1 -1)
                                       s_0
                                       (fx+ 4 start_0)
                                       end_0
                                       radix_0
                                       new-state_0)
                                      (if (let ((or-part_0 (eqv? c2_0 '#\x40)))
                                            (if or-part_0 or-part_0 #f))
                                        (read-polar
                                         sgn_0
                                         n_0
                                         s_0
                                         (fx+ 4 start_0)
                                         end_0
                                         radix_0
                                         new-state_0)
                                        (if (let ((or-part_0
                                                   (eqv? c2_0 '#\x69)))
                                              (if or-part_0
                                                or-part_0
                                                (let ((or-part_1
                                                       (eqv? c2_0 '#\x49)))
                                                  (if or-part_1
                                                    or-part_1
                                                    #f))))
                                          (finish-imaginary
                                           sgn_0
                                           n_0
                                           s_0
                                           (fx+ 4 start_0)
                                           end_0
                                           new-state_0)
                                          (bad-digit c_0 s_0 state_0))))))))
                            (fail_2)))))
                    (fail_1)))))
            (fail_0)))))))
(define read-nan
  (lambda (c_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((fail_0
           (|#%name| fail (lambda () (begin (bad-digit c_0 s_0 state_0))))))
      (let ((start+n_0 (fx+ start_0 0)))
        (let ((var_0
               (if (fx= start+n_0 end_0) 'eof (string-ref s_0 start+n_0))))
          (if (if (eqv? var_0 '#\x61) #t (eqv? var_0 '#\x41))
            (let ((fail_1 (|#%name| fail (lambda () (begin (fail_0))))))
              (let ((start+n_1 (fx+ start_0 1)))
                (let ((var_1
                       (if (fx= start+n_1 end_0)
                         'eof
                         (string-ref s_0 start+n_1))))
                  (if (if (eqv? var_1 '#\x6e) #t (eqv? var_1 '#\x4e))
                    (let ((fail_2
                           (|#%name| fail (lambda () (begin (fail_1))))))
                      (let ((start+n_2 (fx+ start_0 2)))
                        (let ((var_2
                               (if (fx= start+n_2 end_0)
                                 'eof
                                 (string-ref s_0 start+n_2))))
                          (if (eqv? var_2 '#\x2e)
                            (let ((fail_3
                                   (|#%name|
                                    fail
                                    (lambda () (begin (fail_2))))))
                              (let ((start+n_3 (fx+ start_0 3)))
                                (let ((var_3
                                       (if (fx= start+n_3 end_0)
                                         'eof
                                         (string-ref s_0 start+n_3))))
                                  (if (if (eqv? var_3 '#\x30)
                                        #t
                                        (if (eqv? var_3 '#\x66)
                                          #t
                                          (if (eqv? var_3 '#\x74)
                                            #t
                                            (if (eqv? var_3 '#\x46)
                                              #t
                                              (eqv? var_3 '#\x54)))))
                                    (let ((new-state_0
                                           (let ((temp142_0
                                                  (string-ref
                                                   s_0
                                                   (fx+ start_0 3))))
                                             (set-exactness-by-char.1
                                              #t
                                              state_0
                                              temp142_0))))
                                      (let ((c2_0
                                             (if (fx= (fx+ 4 start_0) end_0)
                                               'eof
                                               (let ((c_1
                                                      (string-ref
                                                       s_0
                                                       (fx+ 4 start_0))))
                                                 (maybe-digit c_1 radix_0)))))
                                        (if (let ((or-part_0 (eqv? c2_0 'eof)))
                                              (if or-part_0 or-part_0 #f))
                                          (finish.1
                                           #f
                                           1
                                           +nan.0
                                           s_0
                                           new-state_0)
                                          (if (let ((or-part_0
                                                     (eqv? c2_0 '#\x2b)))
                                                (if or-part_0
                                                  or-part_0
                                                  (let ((or-part_1
                                                         (eqv? c2_0 '#\x2d)))
                                                    (if or-part_1
                                                      or-part_1
                                                      #f))))
                                            (let ((app_0 +nan.0))
                                              (read-imag
                                               c2_0
                                               1
                                               app_0
                                               (if (eqv? c2_0 '#\x2b) 1 -1)
                                               s_0
                                               (fx+ 5 start_0)
                                               end_0
                                               radix_0
                                               new-state_0))
                                            (if (let ((or-part_0
                                                       (eqv? c2_0 '#\x40)))
                                                  (if or-part_0 or-part_0 #f))
                                              (let ((app_0 +nan.0))
                                                (read-polar
                                                 1
                                                 app_0
                                                 s_0
                                                 (fx+ 5 start_0)
                                                 end_0
                                                 radix_0
                                                 new-state_0))
                                              (if (let ((or-part_0
                                                         (eqv? c2_0 '#\x69)))
                                                    (if or-part_0
                                                      or-part_0
                                                      (let ((or-part_1
                                                             (eqv?
                                                              c2_0
                                                              '#\x49)))
                                                        (if or-part_1
                                                          or-part_1
                                                          #f))))
                                                (let ((app_0 +nan.0))
                                                  (finish-imaginary
                                                   1
                                                   app_0
                                                   s_0
                                                   (fx+ 5 start_0)
                                                   end_0
                                                   new-state_0))
                                                (bad-digit
                                                 c_0
                                                 s_0
                                                 state_0)))))))
                                    (fail_3)))))
                            (fail_2)))))
                    (fail_1)))))
            (fail_0)))))))
(define read-rational
  (lambda (sgn_0 sgn-n_0 d_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((get-n_0
           (|#%name|
            get-n
            (lambda ()
              (begin
                (if d_0
                  (lazy-divide sgn-n_0 (digits->integer d_0 radix_0) 'exact)
                  (bad-no-digits "/" s_0 state_0)))))))
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (let ((v_0 (get-n_0)))
            (if (let ((or-part_0 (not v_0)))
                  (if or-part_0 or-part_0 (string? v_0)))
              v_0
              (finish.1 #f sgn_0 v_0 s_0 state_0)))
          (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
            (let ((app_0 (add-digit (if d_0 d_0 0) c_0 radix_0)))
              (read-rational
               sgn_0
               sgn-n_0
               app_0
               s_0
               (fx+ 1 start_0)
               end_0
               radix_0
               state_0))
            (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                  (if or-part_0 or-part_0 #f))
              (bad-mixed-decimal-fraction s_0 state_0)
              (if (let ((or-part_0 (eqv? c_0 '#\x23)))
                    (if or-part_0 or-part_0 #f))
                (if d_0
                  (let ((app_0 (digits->integer d_0 radix_0)))
                    (let ((app_1 (fx+ 1 start_0)))
                      (read-denom-approx
                       sgn_0
                       sgn-n_0
                       app_0
                       1
                       s_0
                       app_1
                       end_0
                       radix_0
                       (set-exactness.1 #f state_0 'approx))))
                  (bad-misplaced "#" s_0 state_0))
                (if (let ((or-part_0 (eqv? c_0 '#\x65)))
                      (if or-part_0
                        or-part_0
                        (let ((or-part_1 (eqv? c_0 '#\x45)))
                          (if or-part_1
                            or-part_1
                            (let ((or-part_2 (eqv? c_0 '#\x64)))
                              (if or-part_2
                                or-part_2
                                (let ((or-part_3 (eqv? c_0 '#\x44)))
                                  (if or-part_3
                                    or-part_3
                                    (let ((or-part_4 (eqv? c_0 '#\x6c)))
                                      (if or-part_4
                                        or-part_4
                                        (let ((or-part_5 (eqv? c_0 '#\x4c)))
                                          (if or-part_5
                                            or-part_5
                                            (let ((or-part_6
                                                   (eqv? c_0 '#\x66)))
                                              (if or-part_6
                                                or-part_6
                                                (let ((or-part_7
                                                       (eqv? c_0 '#\x46)))
                                                  (if or-part_7
                                                    or-part_7
                                                    (let ((or-part_8
                                                           (eqv? c_0 '#\x73)))
                                                      (if or-part_8
                                                        or-part_8
                                                        (let ((or-part_9
                                                               (eqv?
                                                                c_0
                                                                '#\x53)))
                                                          (if or-part_9
                                                            or-part_9
                                                            (let ((or-part_10
                                                                   (eqv?
                                                                    c_0
                                                                    '#\x74)))
                                                              (if or-part_10
                                                                or-part_10
                                                                (let ((or-part_11
                                                                       (eqv?
                                                                        c_0
                                                                        '#\x54)))
                                                                  (if or-part_11
                                                                    or-part_11
                                                                    #f))))))))))))))))))))))))
                  (let ((v_0 (get-n_0)))
                    (if (let ((or-part_0 (not v_0)))
                          (if or-part_0 or-part_0 (string? v_0)))
                      v_0
                      (let ((app_0 (fx+ 1 start_0)))
                        (read-exponent
                         sgn_0
                         v_0
                         0
                         s_0
                         app_0
                         end_0
                         radix_0
                         (set-exactness-by-char.1 #f state_0 c_0)))))
                  (if (let ((or-part_0 (eqv? c_0 '#\x2f)))
                        (if or-part_0 or-part_0 #f))
                    (bad-misplaced "/" s_0 state_0)
                    (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                          (if or-part_0
                            or-part_0
                            (let ((or-part_1 (eqv? c_0 '#\x2d)))
                              (if or-part_1 or-part_1 #f))))
                      (let ((v_0 (get-n_0)))
                        (if (let ((or-part_0 (not v_0)))
                              (if or-part_0 or-part_0 (string? v_0)))
                          v_0
                          (read-imag
                           c_0
                           sgn_0
                           v_0
                           (if (eqv? c_0 '#\x2b) 1 -1)
                           s_0
                           (fx+ 1 start_0)
                           end_0
                           radix_0
                           state_0)))
                      (if (let ((or-part_0 (eqv? c_0 '#\x40)))
                            (if or-part_0 or-part_0 #f))
                        (let ((v_0 (get-n_0)))
                          (if (let ((or-part_0 (not v_0)))
                                (if or-part_0 or-part_0 (string? v_0)))
                            v_0
                            (read-polar
                             sgn_0
                             v_0
                             s_0
                             (fx+ 1 start_0)
                             end_0
                             radix_0
                             state_0)))
                        (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                              (if or-part_0
                                or-part_0
                                (let ((or-part_1 (eqv? c_0 '#\x49)))
                                  (if or-part_1 or-part_1 #f))))
                          (let ((v_0 (get-n_0)))
                            (if (let ((or-part_0 (not v_0)))
                                  (if or-part_0 or-part_0 (string? v_0)))
                              v_0
                              (finish-imaginary
                               sgn_0
                               v_0
                               s_0
                               (fx+ 1 start_0)
                               end_0
                               state_0)))
                          (bad-digit c_0 s_0 state_0))))))))))))))
(define read-denom-approx
  (lambda (sgn_0 sgn-n_0 d_0 exp_0 s_0 start_0 end_0 radix_0 state_0)
    (let ((get-n_0
           (|#%name|
            get-n
            (lambda ()
              (begin
                (lazy-divide
                 sgn-n_0
                 (lazy-number d_0 radix_0 exp_0)
                 'approx))))))
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (let ((temp157_0 (get-n_0)))
            (finish.1 #f sgn_0 temp157_0 s_0 state_0))
          (if (let ((or-part_0 (eqv? c_0 '#\x23))) (if or-part_0 or-part_0 #f))
            (let ((app_0 (fx+ 1 exp_0)))
              (read-denom-approx
               sgn_0
               sgn-n_0
               d_0
               app_0
               s_0
               (fx+ 1 start_0)
               end_0
               radix_0
               state_0))
            (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
              (bad-misplaced "#" s_0 state_0)
              (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                    (if or-part_0
                      or-part_0
                      (let ((or-part_1 (eqv? c_0 '#\x2f)))
                        (if or-part_1 or-part_1 #f))))
                (bad-misplaced c_0 s_0 state_0)
                (if (let ((or-part_0 (eqv? c_0 '#\x65)))
                      (if or-part_0
                        or-part_0
                        (let ((or-part_1 (eqv? c_0 '#\x45)))
                          (if or-part_1
                            or-part_1
                            (let ((or-part_2 (eqv? c_0 '#\x64)))
                              (if or-part_2
                                or-part_2
                                (let ((or-part_3 (eqv? c_0 '#\x44)))
                                  (if or-part_3
                                    or-part_3
                                    (let ((or-part_4 (eqv? c_0 '#\x6c)))
                                      (if or-part_4
                                        or-part_4
                                        (let ((or-part_5 (eqv? c_0 '#\x4c)))
                                          (if or-part_5
                                            or-part_5
                                            (let ((or-part_6
                                                   (eqv? c_0 '#\x66)))
                                              (if or-part_6
                                                or-part_6
                                                (let ((or-part_7
                                                       (eqv? c_0 '#\x46)))
                                                  (if or-part_7
                                                    or-part_7
                                                    (let ((or-part_8
                                                           (eqv? c_0 '#\x73)))
                                                      (if or-part_8
                                                        or-part_8
                                                        (let ((or-part_9
                                                               (eqv?
                                                                c_0
                                                                '#\x53)))
                                                          (if or-part_9
                                                            or-part_9
                                                            (let ((or-part_10
                                                                   (eqv?
                                                                    c_0
                                                                    '#\x74)))
                                                              (if or-part_10
                                                                or-part_10
                                                                (let ((or-part_11
                                                                       (eqv?
                                                                        c_0
                                                                        '#\x54)))
                                                                  (if or-part_11
                                                                    or-part_11
                                                                    #f))))))))))))))))))))))))
                  (let ((app_0 (get-n_0)))
                    (let ((app_1 (fx+ 1 start_0)))
                      (read-exponent
                       sgn_0
                       app_0
                       0
                       s_0
                       app_1
                       end_0
                       radix_0
                       (set-exactness-by-char.1 #f state_0 c_0))))
                  (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                        (if or-part_0
                          or-part_0
                          (let ((or-part_1 (eqv? c_0 '#\x2d)))
                            (if or-part_1 or-part_1 #f))))
                    (let ((app_0 (get-n_0)))
                      (read-imag
                       c_0
                       sgn_0
                       app_0
                       (if (eqv? c_0 '#\x2b) 1 -1)
                       s_0
                       (fx+ 1 start_0)
                       end_0
                       radix_0
                       state_0))
                    (if (let ((or-part_0 (eqv? c_0 '#\x40)))
                          (if or-part_0 or-part_0 #f))
                      (let ((app_0 (get-n_0)))
                        (read-polar
                         sgn_0
                         app_0
                         s_0
                         (fx+ 1 start_0)
                         end_0
                         radix_0
                         state_0))
                      (if (let ((or-part_0 (eqv? c_0 '#\x69)))
                            (if or-part_0
                              or-part_0
                              (let ((or-part_1 (eqv? c_0 '#\x49)))
                                (if or-part_1 or-part_1 #f))))
                        (let ((app_0 (get-n_0)))
                          (finish-imaginary
                           sgn_0
                           app_0
                           s_0
                           (fx+ 1 start_0)
                           end_0
                           state_0))
                        (bad-digit c_0 s_0 state_0)))))))))))))
(define read-imag
  (lambda (c_0 real-sgn_0 real_0 sgn_0 s_0 start_0 end_0 radix_0 state_0)
    (if (let ((or-part_0 (state-has-first-half? state_0)))
          (if or-part_0
            or-part_0
            (eq? 'extended (parse-state-exactness state_0))))
      (bad-misplaced c_0 s_0 state_0)
      (read-signed
       sgn_0
       s_0
       start_0
       end_0
       radix_0
       (state-set-first-half
        state_0
        (rect-prefix7.1 real-sgn_0 real_0 (fx- start_0 1)))))))
(define read-polar
  (lambda (real-sgn_0 real_0 s_0 start_0 end_0 radix_0 state_0)
    (if (let ((or-part_0 (state-has-first-half? state_0)))
          (if or-part_0
            or-part_0
            (eq? 'extended (parse-state-exactness state_0))))
      (bad-misplaced "@" s_0 state_0)
      (let ((c_0
             (if (fx= start_0 end_0)
               'eof
               (let ((c_0 (string-ref s_0 start_0)))
                 (maybe-digit c_0 radix_0)))))
        (if (let ((or-part_0 (eqv? c_0 'eof))) (if or-part_0 or-part_0 #f))
          (bad-misplaced "@" s_0 state_0)
          (if (let ((or-part_0 (eqv? c_0 '#\x2b)))
                (if or-part_0
                  or-part_0
                  (let ((or-part_1 (eqv? c_0 '#\x2d)))
                    (if or-part_1 or-part_1 #f))))
            (let ((new-state_0
                   (state-set-first-half
                    state_0
                    (polar-prefix8.1 real-sgn_0 real_0 start_0))))
              (read-signed
               (if (eq? c_0 '#\x2b) 1 -1)
               s_0
               (fx+ 1 start_0)
               end_0
               radix_0
               new-state_0))
            (if (let ((or-part_0 (fixnum? c_0))) (if or-part_0 or-part_0 #f))
              (let ((new-state_0
                     (state-set-first-half
                      state_0
                      (polar-prefix8.1 real-sgn_0 real_0 start_0))))
                (read-integer
                 1
                 c_0
                 s_0
                 (fx+ 1 start_0)
                 end_0
                 radix_0
                 new-state_0))
              (if (let ((or-part_0 (eqv? c_0 '#\x2e)))
                    (if or-part_0 or-part_0 #f))
                (let ((new-state_0
                       (state-set-first-half
                        state_0
                        (polar-prefix8.1 real-sgn_0 real_0 start_0))))
                  (let ((app_0 (fx+ 1 start_0)))
                    (read-decimal
                     1
                     #f
                     0
                     s_0
                     app_0
                     end_0
                     radix_0
                     (set-exactness.1 #f new-state_0 'approx))))
                (bad-digit c_0 s_0 state_0)))))))))
(define read-symbol-or-number.1
  (|#%name|
   read-symbol-or-number
   (lambda (extra-prefix2_0 mode1_0 init-c5_0 in6_0 orig-config7_0)
     (begin
       (let ((config_0
              (if (string? mode1_0)
                (override-parameter 1/read-cdot orig-config7_0 #f)
                orig-config7_0)))
         (let ((rt_0
                (begin-unsafe
                 (read-config/inner-readtable
                  (read-config/outer-inner config_0)))))
           (let ((c1_0
                  (if rt_0
                    (if (let ((or-part_0 (eq? mode1_0 'symbol-or-number)))
                          (if or-part_0
                            or-part_0
                            (eq? mode1_0 'symbol/indirect)))
                      (readtable-symbol-parser rt_0)
                      #f)
                    #f)))
             (if c1_0
               (readtable-apply
                c1_0
                init-c5_0
                in6_0
                config_0
                (begin-unsafe (read-config/outer-line config_0))
                (begin-unsafe (read-config/outer-col config_0))
                (begin-unsafe (read-config/outer-pos config_0)))
               (let ((accum-str_0 (accum-string-init! config_0)))
                 (let ((quoted-ever?_0 #f))
                   (let ((case-sens?_0
                          (check-parameter read-case-sensitive config_0)))
                     (begin
                       (if extra-prefix2_0
                         (accum-string-add! accum-str_0 extra-prefix2_0)
                         (void))
                       (let ((source_0
                              (begin-unsafe
                               (read-config/inner-source
                                (read-config/outer-inner config_0)))))
                         (let ((unexpected-quoted_0
                                (|#%name|
                                 unexpected-quoted
                                 (lambda (c_0 after-c_0)
                                   (begin
                                     (let ((temp12_0
                                            "~a following `~a` in ~a"))
                                       (let ((temp13_0
                                              (if (eof-object? c_0)
                                                "end-of-file"
                                                "non-character")))
                                         (let ((temp15_0
                                                (if (eq? mode1_0 'keyword)
                                                  "keyword"
                                                  (if (string? mode1_0)
                                                    "number"
                                                    "symbol"))))
                                           (reader-error.1
                                            unsafe-undefined
                                            c_0
                                            #f
                                            unsafe-undefined
                                            in6_0
                                            config_0
                                            temp12_0
                                            (list
                                             temp13_0
                                             after-c_0
                                             temp15_0))))))))))
                           (begin
                             (letrec*
                              ((loop_0
                                (|#%name|
                                 loop
                                 (lambda (init-c_0
                                          pipe-quote-c_0
                                          foldcase-from_0)
                                   (begin
                                     (let ((c_0
                                            (if init-c_0
                                              init-c_0
                                              (let ((c_0
                                                     (peek-char-or-special
                                                      in6_0
                                                      0
                                                      'special
                                                      source_0)))
                                                (if (eq? c_0 'special)
                                                  (special1.1 'special)
                                                  c_0)))))
                                       (let ((ec_0
                                              (if (let ((or-part_0 (not rt_0)))
                                                    (if or-part_0
                                                      or-part_0
                                                      (not (char? c_0))))
                                                c_0
                                                (*readtable-effective-char
                                                 rt_0
                                                 c_0
                                                 '#\x78))))
                                         (if (if pipe-quote-c_0
                                               (not (char? ec_0))
                                               #f)
                                           (begin
                                             (if init-c_0
                                               (void)
                                               (begin-unsafe
                                                (begin
                                                  (read-char-or-special
                                                   in6_0
                                                   special1.1
                                                   (begin-unsafe
                                                    (read-config/inner-source
                                                     (read-config/outer-inner
                                                      config_0))))
                                                  (void))))
                                             (unexpected-quoted_0
                                              c_0
                                              pipe-quote-c_0))
                                           (if (if (not pipe-quote-c_0)
                                                 (readtable-char-delimiter?
                                                  rt_0
                                                  c_0
                                                  config_0)
                                                 #f)
                                             (if case-sens?_0
                                               (void)
                                               (accum-string-convert!
                                                accum-str_0
                                                string-foldcase
                                                foldcase-from_0))
                                             (if (if pipe-quote-c_0
                                                   (char=? c_0 pipe-quote-c_0)
                                                   #f)
                                               (begin
                                                 (if init-c_0
                                                   (void)
                                                   (begin-unsafe
                                                    (begin
                                                      (read-char in6_0)
                                                      (void))))
                                                 (loop_0
                                                  #f
                                                  #f
                                                  (begin-unsafe
                                                   (accum-string-pos
                                                    accum-str_0))))
                                               (if (if (char=? ec_0 '#\x7c)
                                                     (check-parameter
                                                      read-accept-bar-quote
                                                      config_0)
                                                     #f)
                                                 (begin
                                                   (if init-c_0
                                                     (void)
                                                     (begin-unsafe
                                                      (begin
                                                        (read-char in6_0)
                                                        (void))))
                                                   (set! quoted-ever?_0 #t)
                                                   (if case-sens?_0
                                                     (void)
                                                     (accum-string-convert!
                                                      accum-str_0
                                                      string-foldcase
                                                      foldcase-from_0))
                                                   (loop_0
                                                    #f
                                                    c_0
                                                    (begin-unsafe
                                                     (accum-string-pos
                                                      accum-str_0))))
                                                 (if (if (char=? ec_0 '#\x5c)
                                                       (not pipe-quote-c_0)
                                                       #f)
                                                   (begin
                                                     (if init-c_0
                                                       (void)
                                                       (begin-unsafe
                                                        (begin
                                                          (read-char in6_0)
                                                          (void))))
                                                     (let ((next-c_0
                                                            (read-char-or-special
                                                             in6_0
                                                             special1.1
                                                             source_0)))
                                                       (begin
                                                         (if (char? next-c_0)
                                                           (void)
                                                           (unexpected-quoted_0
                                                            next-c_0
                                                            c_0))
                                                         (if (if pipe-quote-c_0
                                                               pipe-quote-c_0
                                                               case-sens?_0)
                                                           (void)
                                                           (accum-string-convert!
                                                            accum-str_0
                                                            string-foldcase
                                                            foldcase-from_0))
                                                         (accum-string-add!
                                                          accum-str_0
                                                          next-c_0)
                                                         (set! quoted-ever?_0
                                                           #t)
                                                         (loop_0
                                                          #f
                                                          #f
                                                          (begin-unsafe
                                                           (accum-string-pos
                                                            accum-str_0))))))
                                                   (begin
                                                     (if init-c_0
                                                       (void)
                                                       (begin-unsafe
                                                        (begin
                                                          (read-char in6_0)
                                                          (void))))
                                                     (accum-string-add!
                                                      accum-str_0
                                                      c_0)
                                                     (loop_0
                                                      #f
                                                      pipe-quote-c_0
                                                      foldcase-from_0))))))))))))))
                              (loop_0 init-c5_0 #f 0))
                             (let ((str_0
                                    (accum-string-get!.1
                                     0
                                     accum-str_0
                                     config_0)))
                               (begin
                                 (if (if (= 1 (string-length str_0))
                                       (if (not quoted-ever?_0)
                                         (char=?
                                          '#\x2e
                                          (effective-char
                                           (string-ref str_0 0)
                                           config_0))
                                         #f)
                                       #f)
                                   (let ((temp20_0 "illegal use of `.`"))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in6_0
                                      config_0
                                      temp20_0
                                      (list)))
                                   (void))
                                 (let ((num_0
                                        (if (let ((or-part_0
                                                   (eq?
                                                    mode1_0
                                                    'symbol-or-number)))
                                              (if or-part_0
                                                or-part_0
                                                (string? mode1_0)))
                                          (if (not quoted-ever?_0)
                                            (let ((app_0
                                                   (if (string? mode1_0)
                                                     (string-append
                                                      mode1_0
                                                      str_0)
                                                     str_0)))
                                              (let ((app_1
                                                     (if (check-parameter
                                                          1/read-decimal-as-inexact
                                                          config_0)
                                                       'decimal-as-inexact
                                                       'decimal-as-exact)))
                                                (unchecked-string->number
                                                 app_0
                                                 10
                                                 'read
                                                 app_1
                                                 (if (check-parameter
                                                      1/read-single-flonum
                                                      config_0)
                                                   'single
                                                   'double))))
                                            #f)
                                          #f)))
                                   (begin
                                     (if (string? num_0)
                                       (let ((temp23_0 "~a"))
                                         (reader-error.1
                                          unsafe-undefined
                                          '#\x78
                                          #f
                                          unsafe-undefined
                                          in6_0
                                          config_0
                                          temp23_0
                                          (list num_0)))
                                       (void))
                                     (if (if (not num_0) (string? mode1_0) #f)
                                       (let ((temp27_0 "bad number: `~a`"))
                                         (let ((temp28_0
                                                (string-append mode1_0 str_0)))
                                           (let ((temp27_1 temp27_0))
                                             (reader-error.1
                                              unsafe-undefined
                                              '#\x78
                                              #f
                                              unsafe-undefined
                                              in6_0
                                              config_0
                                              temp27_1
                                              (list temp28_0)))))
                                       (void))
                                     (wrap
                                      (if num_0
                                        num_0
                                        (let ((or-part_0
                                               (if (eq? mode1_0 'keyword)
                                                 (string->keyword str_0)
                                                 #f)))
                                          (if or-part_0
                                            or-part_0
                                            (string->symbol str_0))))
                                      in6_0
                                      config_0
                                      str_0))))))))))))))))))))
(define read-number-literal
  (lambda (read-one_0
           init-c_0
           in_0
           config_0
           mode_0
           starts-num?_0
           num?_0
           num-str_0)
    (let ((c_0
           (read-char/skip-whitespace-and-comments
            init-c_0
            read-one_0
            in_0
            config_0)))
      (call-with-values
       (lambda () (port-next-location* in_0 c_0))
       (case-lambda
        ((line_0 col_0 pos_0)
         (let ((ec_0
                (let ((rt_0
                       (begin-unsafe
                        (read-config/inner-readtable
                         (read-config/outer-inner config_0)))))
                  (if (let ((or-part_0 (not rt_0)))
                        (if or-part_0 or-part_0 (not (char? c_0))))
                    c_0
                    (*readtable-effective-char rt_0 c_0 '#\x78)))))
           (if (let ((or-part_0 (not (char? c_0))))
                 (if or-part_0 or-part_0 (|#%app| starts-num?_0 ec_0)))
             (let ((v_0
                    (if (char? c_0)
                      (read-symbol-or-number.1 #f mode_0 c_0 in_0 config_0)
                      c_0)))
               (if (|#%app| num?_0 v_0)
                 v_0
                 (if (eof-object? v_0)
                   v_0
                   (if (if (1/special-comment? v_0)
                         (begin-unsafe (read-config/outer-keep-comment? v_0))
                         #f)
                     v_0
                     (let ((temp6_0 (reading-at config_0 line_0 col_0 pos_0)))
                       (let ((temp7_0 "expected a ~a, found ~v"))
                         (let ((temp6_1 temp6_0))
                           (reader-error.1
                            unsafe-undefined
                            '#\x78
                            #f
                            unsafe-undefined
                            in_0
                            temp6_1
                            temp7_0
                            (list num-str_0 v_0)))))))))
             (let ((c1_0
                    (special-comment-via-readtable?
                     c_0
                     read-one_0
                     in_0
                     config_0)))
               (if c1_0
                 (if (begin-unsafe (read-config/outer-keep-comment? config_0))
                   c1_0
                   (read-number-literal
                    read-one_0
                    #f
                    in_0
                    config_0
                    mode_0
                    starts-num?_0
                    num?_0
                    num-str_0))
                 (let ((temp11_0 (reading-at config_0 line_0 col_0 pos_0)))
                   (let ((temp12_0 "expected a ~a"))
                     (let ((temp11_1 temp11_0))
                       (reader-error.1
                        unsafe-undefined
                        '#\x78
                        #f
                        unsafe-undefined
                        in_0
                        temp11_1
                        temp12_0
                        (list num-str_0))))))))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define starts-fixnum?
  (lambda (c_0)
    (let ((or-part_0 (char<=? '#\x30 c_0 '#\x39)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (char=? c_0 '#\x2d)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (char=? c_0 '#\x2b)))
              (if or-part_2 or-part_2 (char=? c_0 '#\x23)))))))))
(define read-fixnum
  (lambda (read-one_0 init-c_0 in_0 config_0)
    (read-number-literal
     read-one_0
     init-c_0
     in_0
     config_0
     "#e"
     starts-fixnum?
     fixnum?
     "fixnum")))
(define starts-flonum?
  (lambda (c_0)
    (let ((or-part_0 (starts-fixnum? c_0)))
      (if or-part_0 or-part_0 (char=? c_0 '#\x2e)))))
(define read-flonum
  (lambda (read-one_0 init-c_0 in_0 config_0)
    (read-number-literal
     read-one_0
     init-c_0
     in_0
     config_0
     "#i"
     starts-flonum?
     flonum?
     "flonum")))
(define read-vector.1
  (|#%name|
   read-vector
   (lambda (length2_0
            mode1_0
            read-one5_0
            opener-c6_0
            opener7_0
            closer8_0
            in9_0
            config10_0)
     (begin
       (let ((read-one-element_0
              (if (eq? mode1_0 'any)
                read-one5_0
                (if (eq? mode1_0 'fixnum)
                  (|#%name|
                   read-one-element
                   (lambda (init-c_0 in_0 config_0)
                     (begin
                       (begin-unsafe
                        (read-number-literal
                         read-one5_0
                         init-c_0
                         in_0
                         config_0
                         "#e"
                         starts-fixnum?
                         fixnum?
                         "fixnum")))))
                  (if (eq? mode1_0 'flonum)
                    (|#%name|
                     read-one-element
                     (lambda (init-c_0 in_0 config_0)
                       (begin
                         (begin-unsafe
                          (read-number-literal
                           read-one5_0
                           init-c_0
                           in_0
                           config_0
                           "#i"
                           starts-flonum?
                           flonum?
                           "flonum")))))
                    (void))))))
         (let ((seq_0
                (read-unwrapped-sequence.1
                 #f
                 unsafe-undefined
                 unsafe-undefined
                 #f
                 read-one5_0
                 read-one-element_0
                 opener-c6_0
                 opener7_0
                 closer8_0
                 in9_0
                 config10_0)))
           (let ((vec_0
                  (if (not length2_0)
                    (if (eq? mode1_0 'any)
                      (list->vector seq_0)
                      (if (eq? mode1_0 'fixnum)
                        (let ((len_0 (length seq_0)))
                          (begin
                            (if (exact-nonnegative-integer? len_0)
                              (void)
                              (raise-argument-error
                               'for/fxvector
                               "exact-nonnegative-integer?"
                               len_0))
                            (let ((v_0 (make-fxvector len_0 0)))
                              (begin
                                (if (zero? len_0)
                                  (void)
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (i_0 lst_0)
                                          (begin
                                            (if (pair? lst_0)
                                              (let ((e_0 (unsafe-car lst_0)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_0)))
                                                  (let ((i_1
                                                         (let ((i_1
                                                                (begin
                                                                  (if (fixnum?
                                                                       e_0)
                                                                    (unsafe-fxvector-set!
                                                                     v_0
                                                                     i_0
                                                                     e_0)
                                                                    (begin-unsafe
                                                                     (raise-argument-error
                                                                      'for*/vector
                                                                      "fixnum?"
                                                                      e_0)))
                                                                  (unsafe-fx+
                                                                   1
                                                                   i_0))))
                                                           (values i_1))))
                                                    (if (if (not
                                                             (let ((x_0
                                                                    (list
                                                                     e_0)))
                                                               (unsafe-fx=
                                                                i_1
                                                                len_0)))
                                                          #t
                                                          #f)
                                                      (for-loop_0 i_1 rest_0)
                                                      i_1))))
                                              i_0))))))
                                     (for-loop_0 0 seq_0))))
                                v_0))))
                        (if (eq? mode1_0 'flonum)
                          (let ((len_0 (length seq_0)))
                            (begin
                              (if (exact-nonnegative-integer? len_0)
                                (void)
                                (raise-argument-error
                                 'for/flvector
                                 "exact-nonnegative-integer?"
                                 len_0))
                              (let ((v_0 (make-flvector len_0 0.0)))
                                (begin
                                  (if (zero? len_0)
                                    (void)
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (i_0 lst_0)
                                            (begin
                                              (if (pair? lst_0)
                                                (let ((e_0 (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (let ((i_1
                                                           (let ((i_1 i_0))
                                                             (let ((i_2
                                                                    (begin
                                                                      (if (flonum?
                                                                           e_0)
                                                                        (unsafe-flvector-set!
                                                                         v_0
                                                                         i_1
                                                                         e_0)
                                                                        (begin-unsafe
                                                                         (raise-argument-error
                                                                          'for*/vector
                                                                          "flonum?"
                                                                          e_0)))
                                                                      (unsafe-fx+
                                                                       1
                                                                       i_1))))
                                                               (values i_2)))))
                                                      (if (if (not
                                                               (let ((x_0
                                                                      (list
                                                                       e_0)))
                                                                 (unsafe-fx=
                                                                  i_1
                                                                  len_0)))
                                                            #t
                                                            #f)
                                                        (for-loop_0 i_1 rest_0)
                                                        i_1))))
                                                i_0))))))
                                       (for-loop_0 0 seq_0))))
                                  v_0))))
                          (void))))
                    (let ((len_0 (length seq_0)))
                      (if (= length2_0 len_0)
                        (list->vector seq_0)
                        (if (< length2_0 len_0)
                          (let ((temp22_0
                                 "~avector length ~a is too small, ~a values provided"))
                            (let ((temp23_0
                                   (if (eq? mode1_0 'any)
                                     ""
                                     (if (eq? mode1_0 'fixnum)
                                       "fx"
                                       (if (eq? mode1_0 'flonum)
                                         "fl"
                                         (void))))))
                              (reader-error.1
                               unsafe-undefined
                               '#\x78
                               #f
                               unsafe-undefined
                               in9_0
                               config10_0
                               temp22_0
                               (list temp23_0 length2_0 len_0))))
                          (let ((last-or_0
                                 (|#%name|
                                  last-or
                                  (lambda (v_0)
                                    (begin
                                      (if (null? seq_0)
                                        (wrap v_0 in9_0 config10_0 #f)
                                        (letrec*
                                         ((loop_0
                                           (|#%name|
                                            loop
                                            (lambda (seq_1)
                                              (begin
                                                (if (null? (cdr seq_1))
                                                  (car seq_1)
                                                  (loop_0 (cdr seq_1))))))))
                                         (loop_0 seq_0))))))))
                            (begin
                              (if (>= (integer-length length2_0) 48)
                                (raise
                                 (|#%app|
                                  exn:fail:out-of-memory
                                  "out of memory"
                                  (current-continuation-marks)))
                                (void))
                              (let ((vec_0
                                     (if (eq? mode1_0 'any)
                                       (make-vector length2_0 (last-or_0 0))
                                       (if (eq? mode1_0 'fixnum)
                                         (make-fxvector
                                          length2_0
                                          (last-or_0 0))
                                         (if (eq? mode1_0 'flonum)
                                           (make-flvector
                                            length2_0
                                            (last-or_0 0.0))
                                           (void))))))
                                (begin
                                  (if (eq? mode1_0 'any)
                                    (begin
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (lst_0 pos_0)
                                              (begin
                                                (if (if (pair? lst_0) #t #f)
                                                  (let ((e_0
                                                         (unsafe-car lst_0)))
                                                    (let ((rest_0
                                                           (unsafe-cdr lst_0)))
                                                      (begin
                                                        (vector-set!
                                                         vec_0
                                                         pos_0
                                                         e_0)
                                                        (for-loop_0
                                                         rest_0
                                                         (+ pos_0 1)))))
                                                  (values)))))))
                                         (for-loop_0 seq_0 0)))
                                      (void))
                                    (if (eq? mode1_0 'fixnum)
                                      (begin
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (lst_0 pos_0)
                                                (begin
                                                  (if (if (pair? lst_0) #t #f)
                                                    (let ((e_0
                                                           (unsafe-car lst_0)))
                                                      (let ((rest_0
                                                             (unsafe-cdr
                                                              lst_0)))
                                                        (begin
                                                          (fxvector-set!
                                                           vec_0
                                                           pos_0
                                                           e_0)
                                                          (for-loop_0
                                                           rest_0
                                                           (+ pos_0 1)))))
                                                    (values)))))))
                                           (for-loop_0 seq_0 0)))
                                        (void))
                                      (if (eq? mode1_0 'flonum)
                                        (begin
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (lst_0 pos_0)
                                                  (begin
                                                    (if (if (pair? lst_0)
                                                          #t
                                                          #f)
                                                      (let ((e_0
                                                             (unsafe-car
                                                              lst_0)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_0)))
                                                          (begin
                                                            (flvector-set!
                                                             vec_0
                                                             pos_0
                                                             e_0)
                                                            (for-loop_0
                                                             rest_0
                                                             (+ pos_0 1)))))
                                                      (values)))))))
                                             (for-loop_0 seq_0 0)))
                                          (void))
                                        (void))))
                                  vec_0))))))))))
             (wrap
              (if (begin-unsafe
                   (read-config/inner-for-syntax?
                    (read-config/outer-inner config10_0)))
                (vector->immutable-vector vec_0)
                vec_0)
              in9_0
              config10_0
              opener7_0))))))))
(define read-fixnum-or-flonum-vector
  (lambda (read-one_0 dispatch-c_0 c_0 c2_0 in_0 config_0)
    (let ((vector-mode_0 (if (char=? c2_0 '#\x78) 'fixnum 'flonum)))
      (begin
        (begin-unsafe (begin (read-char in_0) (void)))
        (begin
          (if (begin-unsafe
               (read-config/inner-for-syntax?
                (read-config/outer-inner config_0)))
            (let ((temp28_0 "literal f~avectors not allowed"))
              (reader-error.1
               unsafe-undefined
               '#\x78
               #f
               unsafe-undefined
               in_0
               config_0
               temp28_0
               (list c2_0)))
            (void))
          (let ((c3_0
                 (let ((source_0
                        (begin-unsafe
                         (read-config/inner-source
                          (read-config/outer-inner config_0)))))
                   (read-char-or-special in_0 special1.1 source_0))))
            (call-with-values
             (lambda ()
               (if (decimal-digit? c3_0)
                 (read-simple-number in_0 config_0 c3_0)
                 (values #f "" c3_0)))
             (case-lambda
              ((vector-len_0 len-str_0 c4_0)
               (if (eqv? c4_0 '#\x28)
                 (read-vector.1
                  vector-len_0
                  vector-mode_0
                  read-one_0
                  '#\x28
                  '#\x28
                  '#\x29
                  in_0
                  config_0)
                 (if (eqv? c4_0 '#\x5b)
                   (if (check-parameter
                        1/read-square-bracket-as-paren
                        config_0)
                     (read-vector.1
                      vector-len_0
                      vector-mode_0
                      read-one_0
                      '#\x5b
                      '#\x5b
                      '#\x5d
                      in_0
                      config_0)
                     (let ((temp48_0
                            (format
                             "~a~a"
                             dispatch-c_0
                             (format "~a~a" c_0 c2_0))))
                       (bad-syntax-error.1 '#\x78 in_0 config_0 temp48_0)))
                   (if (eqv? c4_0 '#\x7b)
                     (if (check-parameter 1/read-curly-brace-as-paren config_0)
                       (read-vector.1
                        vector-len_0
                        vector-mode_0
                        read-one_0
                        '#\x7b
                        '#\x7b
                        '#\x7d
                        in_0
                        config_0)
                       (let ((temp59_0
                              (format
                               "~a~a"
                               dispatch-c_0
                               (format "~a~a" c_0 c2_0))))
                         (bad-syntax-error.1 '#\x78 in_0 config_0 temp59_0)))
                     (let ((temp63_0
                            "expected `(`, `[`, or `{` after `#~a~a~a`"))
                       (reader-error.1
                        unsafe-undefined
                        c4_0
                        #f
                        unsafe-undefined
                        in_0
                        config_0
                        temp63_0
                        (list c_0 c2_0 len-str_0)))))))
              (args (raise-binding-result-arity-error 3 args))))))))))
(define read-simple-number
  (lambda (in_0 config_0 init-c_0)
    (let ((accum-str_0 (accum-string-init! config_0)))
      (begin
        (accum-string-add! accum-str_0 init-c_0)
        (let ((init-v_0 (digit->number init-c_0)))
          (let ((v_0
                 (read-digits.1
                  10
                  init-v_0
                  +inf.0
                  init-v_0
                  in_0
                  config_0
                  accum-str_0)))
            (let ((app_0 (accum-string-get!.1 0 accum-str_0 config_0)))
              (values
               v_0
               app_0
               (let ((source_0
                      (begin-unsafe
                       (read-config/inner-source
                        (read-config/outer-inner config_0)))))
                 (read-char-or-special in_0 special1.1 source_0))))))))))
(define read-struct
  (lambda (read-one_0 dispatch-c_0 in_0 config_0)
    (let ((c_0
           (let ((source_0
                  (begin-unsafe
                   (read-config/inner-source
                    (read-config/outer-inner config_0)))))
             (read-char-or-special in_0 special1.1 source_0))))
      (let ((ec_0 (effective-char c_0 config_0)))
        (let ((seq_0
               (if (eqv? ec_0 '#\x28)
                 (read-struct-sequence
                  read-one_0
                  c_0
                  '#\x28
                  '#\x29
                  in_0
                  config_0)
                 (if (eqv? ec_0 '#\x5b)
                   (if (check-parameter
                        1/read-square-bracket-as-paren
                        config_0)
                     (read-struct-sequence
                      read-one_0
                      c_0
                      '#\x5b
                      '#\x5d
                      in_0
                      config_0)
                     (let ((temp3_0 (format "~as~a" dispatch-c_0 c_0)))
                       (bad-syntax-error.1 '#\x78 in_0 config_0 temp3_0)))
                   (if (eqv? ec_0 '#\x7b)
                     (if (check-parameter 1/read-curly-brace-as-paren config_0)
                       (read-struct-sequence
                        read-one_0
                        c_0
                        '#\x7b
                        '#\x7d
                        in_0
                        config_0)
                       (let ((temp6_0 (format "~as~a" dispatch-c_0 c_0)))
                         (bad-syntax-error.1 '#\x78 in_0 config_0 temp6_0)))
                     (let ((temp9_0 "expected ~a after `~as`"))
                       (let ((temp10_0 (all-openers-str config_0)))
                         (let ((temp9_1 temp9_0))
                           (reader-error.1
                            unsafe-undefined
                            '#\x78
                            #f
                            unsafe-undefined
                            in_0
                            config_0
                            temp9_1
                            (list temp10_0 dispatch-c_0))))))))))
          (begin
            (if (null? seq_0)
              (let ((temp14_0 "missing structure description in `~as` form"))
                (reader-error.1
                 unsafe-undefined
                 '#\x78
                 #f
                 unsafe-undefined
                 in_0
                 config_0
                 temp14_0
                 (list dispatch-c_0)))
              (void))
            (begin
              (if (prefab-key? (car seq_0))
                (void)
                (let ((temp18_0 "invalid structure description in `~as` form"))
                  (reader-error.1
                   unsafe-undefined
                   '#\x78
                   #f
                   unsafe-undefined
                   in_0
                   config_0
                   temp18_0
                   (list dispatch-c_0))))
              (let ((with-handlers-handler21_0
                     (|#%name|
                      with-handlers-handler21
                      (lambda (exn_0) (begin #f)))))
                (let ((st_0
                       (let ((bpz_0
                              (continuation-mark-set-first
                               #f
                               break-enabled-key)))
                         (call-handled-body
                          bpz_0
                          (lambda (e_0)
                            (select-handler/no-breaks
                             e_0
                             bpz_0
                             (list
                              (cons exn:fail? with-handlers-handler21_0))))
                          (lambda ()
                            (let ((app_0 (car seq_0)))
                              (prefab-key->struct-type
                               app_0
                               (length (cdr seq_0)))))))))
                  (begin
                    (if st_0
                      (void)
                      (let ((temp24_0
                             (string-append
                              "mismatch between structure description"
                              " and number of provided field values in `~as` form")))
                        (reader-error.1
                         unsafe-undefined
                         '#\x78
                         #f
                         unsafe-undefined
                         in_0
                         config_0
                         temp24_0
                         (list dispatch-c_0))))
                    (if (begin-unsafe
                         (read-config/inner-for-syntax?
                          (read-config/outer-inner config_0)))
                      (if (let ((k_0 (car seq_0)))
                            (begin-unsafe
                             (prefab-key-all-fields-immutable? k_0)))
                        (void)
                        (let ((temp28_0
                               "cannot read mutable `~as` form as syntax"))
                          (reader-error.1
                           unsafe-undefined
                           '#\x78
                           #f
                           unsafe-undefined
                           in_0
                           config_0
                           temp28_0
                           (list dispatch-c_0))))
                      (void))
                    (wrap
                     (apply make-prefab-struct seq_0)
                     in_0
                     config_0
                     ec_0)))))))))))
(define read-struct-sequence
  (lambda (read-one_0 opener-c_0 opener_0 closer_0 in_0 config_0)
    (let ((temp36_0
           (lambda (init-c_0 in_1 config_1)
             (|#%app| read-one_0 init-c_0 in_1 (disable-wrapping config_1)))))
      (read-unwrapped-sequence.1
       'all
       unsafe-undefined
       temp36_0
       #f
       unsafe-undefined
       read-one_0
       opener-c_0
       opener_0
       closer_0
       in_0
       config_0))))
(define read-vector-or-graph
  (lambda (read-one_0 dispatch-c_0 init-c_0 in_0 config_0)
    (let ((accum-str_0 (accum-string-init! config_0)))
      (begin
        (accum-string-add! accum-str_0 init-c_0)
        (let ((init-v_0 (digit->number init-c_0)))
          (let ((v_0
                 (read-digits.1
                  10
                  init-v_0
                  +inf.0
                  init-v_0
                  in_0
                  config_0
                  accum-str_0)))
            (call-with-values
             (lambda () (port-next-location in_0))
             (case-lambda
              ((post-line_0 post-col_0 post-pos_0)
               (let ((get-accum_0
                      (|#%name|
                       get-accum
                       (lambda (c_0)
                         (begin
                           (format
                            "~a~a~a"
                            dispatch-c_0
                            (accum-string-get!.1 0 accum-str_0 config_0)
                            c_0))))))
                 (let ((c_0
                        (let ((source_0
                               (begin-unsafe
                                (read-config/inner-source
                                 (read-config/outer-inner config_0)))))
                          (read-char-or-special in_0 special1.1 source_0))))
                   (let ((ec_0 (effective-char c_0 config_0)))
                     (if (eqv? ec_0 '#\x28)
                       (begin
                         (begin-unsafe
                          (set-read-config-state-accum-str!
                           (begin-unsafe
                            (read-config/inner-st
                             (read-config/outer-inner config_0)))
                           accum-str_0))
                         (read-vector.1
                          v_0
                          'any
                          read-one_0
                          c_0
                          '#\x28
                          '#\x29
                          in_0
                          config_0))
                       (if (eqv? ec_0 '#\x5b)
                         (begin
                           (begin-unsafe
                            (set-read-config-state-accum-str!
                             (begin-unsafe
                              (read-config/inner-st
                               (read-config/outer-inner config_0)))
                             accum-str_0))
                           (if (check-parameter
                                1/read-square-bracket-as-paren
                                config_0)
                             (read-vector.1
                              v_0
                              'any
                              read-one_0
                              c_0
                              '#\x5b
                              '#\x5d
                              in_0
                              config_0)
                             (let ((temp26_0 (get-accum_0 (get-accum_0 c_0))))
                               (bad-syntax-error.1
                                '#\x78
                                in_0
                                config_0
                                temp26_0))))
                         (if (eqv? ec_0 '#\x7b)
                           (begin
                             (begin-unsafe
                              (set-read-config-state-accum-str!
                               (begin-unsafe
                                (read-config/inner-st
                                 (read-config/outer-inner config_0)))
                               accum-str_0))
                             (if (check-parameter
                                  1/read-curly-brace-as-paren
                                  config_0)
                               (read-vector.1
                                v_0
                                'any
                                read-one_0
                                c_0
                                '#\x7b
                                '#\x7d
                                in_0
                                config_0)
                               (let ((temp36_0
                                      (get-accum_0 (get-accum_0 c_0))))
                                 (bad-syntax-error.1
                                  '#\x78
                                  in_0
                                  config_0
                                  temp36_0))))
                           (if (if (eqv? c_0 '#\x3d) #t (eqv? c_0 '#\x23))
                             (begin
                               (if (check-parameter
                                    (if (begin-unsafe
                                         (read-config/inner-for-syntax?
                                          (read-config/outer-inner config_0)))
                                      1/read-syntax-accept-graph
                                      1/read-accept-graph)
                                    config_0)
                                 (void)
                                 (let ((temp39_0
                                        "`#...~a` forms not enabled for `~a` mode"))
                                   (let ((temp41_0
                                          (if (begin-unsafe
                                               (read-config/inner-for-syntax?
                                                (read-config/outer-inner
                                                 config_0)))
                                            "read-syntax"
                                            "read")))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      config_0
                                      temp39_0
                                      (list c_0 temp41_0)))))
                               (if (<=
                                    (begin-unsafe
                                     (accum-string-pos accum-str_0))
                                    8)
                                 (void)
                                 (let ((temp44_0
                                        "graph ID too long in `~a~a~a`"))
                                   (let ((temp46_0
                                          (accum-string-get!.1
                                           0
                                           accum-str_0
                                           config_0)))
                                     (let ((temp44_1 temp44_0))
                                       (reader-error.1
                                        unsafe-undefined
                                        '#\x78
                                        #f
                                        unsafe-undefined
                                        in_0
                                        config_0
                                        temp44_1
                                        (list dispatch-c_0 temp46_0 c_0))))))
                               (if (eqv? c_0 '#\x3d)
                                 (let ((ph_0 (make-placeholder 'placeholder)))
                                   (let ((ht_0 (get-graph-hash config_0)))
                                     (begin
                                       (if (hash-ref ht_0 v_0 #f)
                                         (let ((temp52_0
                                                "multiple `~a~a~a` tags"))
                                           (let ((temp54_0
                                                  (accum-string-get!.1
                                                   0
                                                   accum-str_0
                                                   config_0)))
                                             (let ((temp52_1 temp52_0))
                                               (reader-error.1
                                                unsafe-undefined
                                                '#\x78
                                                #f
                                                unsafe-undefined
                                                in_0
                                                config_0
                                                temp52_1
                                                (list
                                                 dispatch-c_0
                                                 temp54_0
                                                 c_0)))))
                                         (void))
                                       (begin
                                         (hash-set! ht_0 v_0 ph_0)
                                         (let ((result-v_0
                                                (|#%app|
                                                 read-one_0
                                                 #f
                                                 in_0
                                                 (next-readtable config_0))))
                                           (begin
                                             (if (eof-object? result-v_0)
                                               (let ((temp61_0
                                                      "expected an element for graph after `~a~a~a`, found end-of-file"))
                                                 (let ((temp63_0
                                                        (accum-string-get!.1
                                                         0
                                                         accum-str_0
                                                         config_0)))
                                                   (let ((temp61_1 temp61_0))
                                                     (reader-error.1
                                                      unsafe-undefined
                                                      result-v_0
                                                      #f
                                                      unsafe-undefined
                                                      in_0
                                                      config_0
                                                      temp61_1
                                                      (list
                                                       dispatch-c_0
                                                       temp63_0
                                                       c_0)))))
                                               (void))
                                             (begin-unsafe
                                              (set-read-config-state-accum-str!
                                               (begin-unsafe
                                                (read-config/inner-st
                                                 (read-config/outer-inner
                                                  config_0)))
                                               accum-str_0))
                                             (placeholder-set! ph_0 result-v_0)
                                             (wrap
                                              ph_0
                                              in_0
                                              config_0
                                              ph_0)))))))
                                 (if (eqv? c_0 '#\x23)
                                   (let ((ph_0
                                          (hash-ref
                                           (let ((or-part_0
                                                  (read-config-state-graph
                                                   (begin-unsafe
                                                    (read-config/inner-st
                                                     (read-config/outer-inner
                                                      config_0))))))
                                             (if or-part_0
                                               or-part_0
                                               hash2725))
                                           v_0
                                           (lambda ()
                                             (let ((temp69_0
                                                    "no preceding `~a~a=` for `~a~a~a`"))
                                               (let ((temp73_0
                                                      (accum-string-get!.1
                                                       0
                                                       accum-str_0
                                                       config_0)))
                                                 (let ((temp69_1 temp69_0))
                                                   (reader-error.1
                                                    unsafe-undefined
                                                    '#\x78
                                                    #f
                                                    unsafe-undefined
                                                    in_0
                                                    config_0
                                                    temp69_1
                                                    (list
                                                     dispatch-c_0
                                                     v_0
                                                     dispatch-c_0
                                                     temp73_0
                                                     c_0)))))))))
                                     (begin
                                       (begin-unsafe
                                        (set-read-config-state-accum-str!
                                         (begin-unsafe
                                          (read-config/inner-st
                                           (read-config/outer-inner config_0)))
                                         accum-str_0))
                                       (wrap ph_0 in_0 config_0 ph_0)))
                                   (void))))
                             (let ((temp80_0 "bad syntax `~a`"))
                               (let ((temp81_0 (get-accum_0 c_0)))
                                 (let ((temp80_1 temp80_0))
                                   (reader-error.1
                                    unsafe-undefined
                                    c_0
                                    #f
                                    unsafe-undefined
                                    in_0
                                    config_0
                                    temp80_1
                                    (list temp81_0)))))))))))))
              (args (raise-binding-result-arity-error 3 args))))))))))
(define get-graph-hash
  (lambda (config_0)
    (let ((st_0
           (begin-unsafe
            (read-config/inner-st (read-config/outer-inner config_0)))))
      (let ((or-part_0 (read-config-state-graph st_0)))
        (if or-part_0
          or-part_0
          (let ((ht_0 (make-hasheqv)))
            (begin (set-read-config-state-graph! st_0 ht_0) ht_0)))))))
(define coerce-key
  (lambda (key_0 config_0)
    (let ((for-syntax?_0
           (begin-unsafe
            (read-config/inner-for-syntax?
             (read-config/outer-inner config_0)))))
      (|#%app|
       (begin-unsafe
        (read-config/inner-coerce-key (read-config/outer-inner config_0)))
       for-syntax?_0
       key_0))))
(define read-hash
  (lambda (read-one_0 dispatch-c_0 init-c_0 in_0 config_0)
    (let ((accum-str_0 (accum-string-init! config_0)))
      (begin
        (accum-string-add! accum-str_0 dispatch-c_0)
        (begin
          (accum-string-add! accum-str_0 init-c_0)
          (let ((get-next!_0
                 (|#%name|
                  get-next!
                  (lambda (expect-c_0 expect-alt-c_0)
                    (begin
                      (let ((c_0
                             (let ((source_0
                                    (begin-unsafe
                                     (read-config/inner-source
                                      (read-config/outer-inner config_0)))))
                               (read-char-or-special
                                in_0
                                special1.1
                                source_0))))
                        (begin
                          (if (let ((or-part_0 (eqv? c_0 expect-c_0)))
                                (if or-part_0
                                  or-part_0
                                  (eqv? c_0 expect-alt-c_0)))
                            (void)
                            (let ((temp4_0 "expected `~a` after `~a`"))
                              (let ((temp6_0
                                     (accum-string-get!.1
                                      0
                                      accum-str_0
                                      config_0)))
                                (let ((temp4_1 temp4_0))
                                  (reader-error.1
                                   unsafe-undefined
                                   c_0
                                   #f
                                   unsafe-undefined
                                   in_0
                                   config_0
                                   temp4_1
                                   (list expect-c_0 temp6_0))))))
                          (accum-string-add! accum-str_0 c_0))))))))
            (begin
              (get-next!_0 '#\x61 '#\x41)
              (begin
                (get-next!_0 '#\x73 '#\x53)
                (begin
                  (get-next!_0 '#\x68 '#\x48)
                  (call-with-values
                   (lambda ()
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (mode_0)
                           (begin
                             (let ((c_0
                                    (let ((source_0
                                           (begin-unsafe
                                            (read-config/inner-source
                                             (read-config/outer-inner
                                              config_0)))))
                                      (read-char-or-special
                                       in_0
                                       special1.1
                                       source_0))))
                               (let ((ec_0 (effective-char c_0 config_0)))
                                 (if (eqv? ec_0 '#\x28)
                                   (call-with-values
                                    (lambda () (port-next-location in_0))
                                    (case-lambda
                                     ((open-end-line_0
                                       open-end-col_0
                                       open-end-pos_0)
                                      (let ((read-one-key+value_0
                                             (make-read-one-key+value
                                              read-one_0
                                              c_0
                                              '#\x29
                                              open-end-pos_0)))
                                        (values
                                         (read-unwrapped-sequence.1
                                          #f
                                          config_0
                                          unsafe-undefined
                                          #f
                                          unsafe-undefined
                                          read-one-key+value_0
                                          c_0
                                          '#\x28
                                          '#\x29
                                          in_0
                                          config_0)
                                         ec_0
                                         mode_0)))
                                     (args
                                      (raise-binding-result-arity-error
                                       3
                                       args))))
                                   (if (eqv? ec_0 '#\x5b)
                                     (if (check-parameter
                                          1/read-square-bracket-as-paren
                                          config_0)
                                       (call-with-values
                                        (lambda () (port-next-location in_0))
                                        (case-lambda
                                         ((open-end-line_0
                                           open-end-col_0
                                           open-end-pos_0)
                                          (let ((read-one-key+value_0
                                                 (make-read-one-key+value
                                                  read-one_0
                                                  c_0
                                                  '#\x5d
                                                  open-end-pos_0)))
                                            (values
                                             (read-unwrapped-sequence.1
                                              #f
                                              config_0
                                              unsafe-undefined
                                              #f
                                              unsafe-undefined
                                              read-one-key+value_0
                                              c_0
                                              '#\x5b
                                              '#\x5d
                                              in_0
                                              config_0)
                                             ec_0
                                             mode_0)))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args))))
                                       (let ((temp27_0 "illegal use of `~a`"))
                                         (reader-error.1
                                          unsafe-undefined
                                          '#\x78
                                          #f
                                          unsafe-undefined
                                          in_0
                                          config_0
                                          temp27_0
                                          (list c_0))))
                                     (if (eqv? ec_0 '#\x7b)
                                       (if (check-parameter
                                            1/read-curly-brace-as-paren
                                            config_0)
                                         (call-with-values
                                          (lambda () (port-next-location in_0))
                                          (case-lambda
                                           ((open-end-line_0
                                             open-end-col_0
                                             open-end-pos_0)
                                            (let ((read-one-key+value_0
                                                   (make-read-one-key+value
                                                    read-one_0
                                                    c_0
                                                    '#\x7d
                                                    open-end-pos_0)))
                                              (values
                                               (read-unwrapped-sequence.1
                                                #f
                                                config_0
                                                unsafe-undefined
                                                #f
                                                unsafe-undefined
                                                read-one-key+value_0
                                                c_0
                                                '#\x7b
                                                '#\x7d
                                                in_0
                                                config_0)
                                               ec_0
                                               mode_0)))
                                           (args
                                            (raise-binding-result-arity-error
                                             3
                                             args))))
                                         (let ((temp39_0
                                                "illegal use of `~a`"))
                                           (reader-error.1
                                            unsafe-undefined
                                            '#\x78
                                            #f
                                            unsafe-undefined
                                            in_0
                                            config_0
                                            temp39_0
                                            (list c_0))))
                                       (if (if (eqv? ec_0 '#\x65)
                                             #t
                                             (eqv? ec_0 '#\x45))
                                         (begin
                                           (accum-string-add! accum-str_0 c_0)
                                           (get-next!_0 '#\x71 '#\x51)
                                           (loop_0 'eq))
                                         (if (if (eqv? ec_0 '#\x76)
                                               #t
                                               (eqv? ec_0 '#\x56))
                                           (begin
                                             (accum-string-add!
                                              accum-str_0
                                              c_0)
                                             (if (eq? mode_0 'eq)
                                               (loop_0 'eqv)
                                               (let ((temp43_0
                                                      "bad syntax `~a`"))
                                                 (let ((temp44_0
                                                        (accum-string-get!.1
                                                         0
                                                         accum-str_0
                                                         config_0)))
                                                   (let ((temp43_1 temp43_0))
                                                     (reader-error.1
                                                      unsafe-undefined
                                                      '#\x78
                                                      #f
                                                      unsafe-undefined
                                                      in_0
                                                      config_0
                                                      temp43_1
                                                      (list temp44_0)))))))
                                           (if (if (eqv? ec_0 '#\x61)
                                                 #t
                                                 (eqv? ec_0 '#\x41))
                                             (begin
                                               (accum-string-add!
                                                accum-str_0
                                                c_0)
                                               (get-next!_0 '#\x6c '#\x4c)
                                               (get-next!_0 '#\x77 '#\x57)
                                               (if (eq? mode_0 'equal)
                                                 (loop_0 'equal-always)
                                                 (let ((temp49_0
                                                        "bad syntax `~a`"))
                                                   (let ((temp50_0
                                                          (accum-string-get!.1
                                                           0
                                                           accum-str_0
                                                           config_0)))
                                                     (let ((temp49_1 temp49_0))
                                                       (reader-error.1
                                                        unsafe-undefined
                                                        '#\x78
                                                        #f
                                                        unsafe-undefined
                                                        in_0
                                                        config_0
                                                        temp49_1
                                                        (list temp50_0)))))))
                                             (begin
                                               (if (char? c_0)
                                                 (accum-string-add!
                                                  accum-str_0
                                                  c_0)
                                                 (void))
                                               (let ((temp56_0
                                                      "bad syntax `~a`"))
                                                 (let ((temp57_0
                                                        (accum-string-get!.1
                                                         0
                                                         accum-str_0
                                                         config_0)))
                                                   (let ((temp56_1 temp56_0))
                                                     (reader-error.1
                                                      unsafe-undefined
                                                      c_0
                                                      #f
                                                      unsafe-undefined
                                                      in_0
                                                      config_0
                                                      temp56_1
                                                      (list
                                                       temp57_0)))))))))))))))))))
                      (loop_0 'equal)))
                   (case-lambda
                    ((content_0 opener_0 mode_0)
                     (let ((graph?_0
                            (if (read-config-state-graph
                                 (begin-unsafe
                                  (read-config/inner-st
                                   (read-config/outer-inner config_0))))
                              #t
                              #f)))
                       (wrap
                        (if (eq? mode_0 'equal)
                          (if graph?_0
                            (make-hash-placeholder content_0)
                            (make-immutable-hash content_0))
                          (if (eq? mode_0 'eq)
                            (if graph?_0
                              (make-hasheq-placeholder content_0)
                              (make-immutable-hasheq content_0))
                            (if (eq? mode_0 'eqv)
                              (if graph?_0
                                (make-hasheqv-placeholder content_0)
                                (make-immutable-hasheqv content_0))
                              (if (eq? mode_0 'equal-always)
                                (if graph?_0
                                  (make-hashalw-placeholder content_0)
                                  (make-immutable-hashalw content_0))
                                (void)))))
                        in_0
                        config_0
                        opener_0)))
                    (args (raise-binding-result-arity-error 3 args)))))))))))))
(define make-read-one-key+value
  (lambda (read-one_0 overall-opener-c_0 overall-closer-ec_0 prefix-end-pos_0)
    (lambda (init-c_0 in_0 config/maybe-keep-comment_0)
      (let ((config_0 (discard-comment config/maybe-keep-comment_0)))
        (let ((c_0
               (read-char/skip-whitespace-and-comments
                init-c_0
                read-one_0
                in_0
                config_0)))
          (call-with-values
           (lambda () (port-next-location* in_0 c_0))
           (case-lambda
            ((open-line_0 open-col_0 open-pos_0)
             (let ((ec_0 (effective-char c_0 config_0)))
               (let ((elem-config_0 (next-readtable config_0)))
                 (let ((closer_0
                        (if (eqv? ec_0 '#\x28)
                          '#\x29
                          (if (eqv? ec_0 '#\x5b)
                            (if (check-parameter
                                 1/read-square-bracket-as-paren
                                 config_0)
                              '#\x5d
                              #f)
                            (if (eqv? ec_0 '#\x7b)
                              (if (check-parameter
                                   1/read-curly-brace-as-paren
                                   config_0)
                                '#\x7d
                                #f)
                              #f)))))
                   (if (not closer_0)
                     (if (eof-object? c_0)
                       (let ((temp64_0 "expected ~a to close `~a`"))
                         (let ((temp65_0
                                (begin-unsafe
                                 (effective-char-names
                                  overall-closer-ec_0
                                  config_0
                                  "closer"))))
                           (let ((temp64_1 temp64_0))
                             (reader-error.1
                              unsafe-undefined
                              c_0
                              prefix-end-pos_0
                              unsafe-undefined
                              in_0
                              config_0
                              temp64_1
                              (list temp65_0 overall-opener-c_0)))))
                       (if (char-closer? ec_0 config_0)
                         (let ((temp68_0
                                (reading-at
                                 config_0
                                 open-line_0
                                 open-col_0
                                 open-pos_0)))
                           (let ((temp69_0 "~a"))
                             (let ((temp70_0
                                    (indentation-unexpected-closer-message
                                     ec_0
                                     c_0
                                     config_0)))
                               (let ((temp69_1 temp69_0) (temp68_1 temp68_0))
                                 (reader-error.1
                                  unsafe-undefined
                                  '#\x78
                                  #f
                                  unsafe-undefined
                                  in_0
                                  temp68_1
                                  temp69_1
                                  (list temp70_0))))))
                         (let ((c1_0
                                (special-comment-via-readtable?
                                 c_0
                                 read-one_0
                                 in_0
                                 elem-config_0)))
                           (if c1_0
                             (if (begin-unsafe
                                  (read-config/outer-keep-comment?
                                   config/maybe-keep-comment_0))
                               c1_0
                               (|#%app|
                                (make-read-one-key+value
                                 read-one_0
                                 overall-opener-c_0
                                 overall-closer-ec_0
                                 prefix-end-pos_0)
                                #f
                                in_0
                                config_0))
                             (let ((temp72_0
                                    (reading-at
                                     config_0
                                     open-line_0
                                     open-col_0
                                     open-pos_0)))
                               (let ((temp73_0
                                      "expected ~a to start a hash pair"))
                                 (let ((temp74_0 (all-openers-str config_0)))
                                   (let ((temp73_1 temp73_0)
                                         (temp72_1 temp72_0))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      temp72_1
                                      temp73_1
                                      (list temp74_0))))))))))
                     (let ((k_0
                            (|#%app|
                             read-one_0
                             #f
                             in_0
                             (disable-wrapping elem-config_0))))
                       (letrec*
                        ((dot-loop_0
                          (|#%name|
                           dot-loop
                           (lambda ()
                             (begin
                               (let ((dot-c_0
                                      (read-char/skip-whitespace-and-comments
                                       #f
                                       read-one_0
                                       in_0
                                       config_0)))
                                 (call-with-values
                                  (lambda ()
                                    (port-next-location* in_0 dot-c_0))
                                  (case-lambda
                                   ((dot-line_0 dot-col_0 dot-pos_0)
                                    (let ((dot-ec_0
                                           (effective-char dot-c_0 config_0)))
                                      (if (if (eqv? dot-ec_0 '#\x2e)
                                            (let ((c_1
                                                   (let ((source_0
                                                          (begin-unsafe
                                                           (read-config/inner-source
                                                            (read-config/outer-inner
                                                             config_0)))))
                                                     (let ((c_1
                                                            (peek-char-or-special
                                                             in_0
                                                             0
                                                             'special
                                                             source_0)))
                                                       (if (eq? c_1 'special)
                                                         (special1.1 'special)
                                                         c_1)))))
                                              (begin-unsafe
                                               (readtable-char-delimiter?
                                                (begin-unsafe
                                                 (read-config/inner-readtable
                                                  (read-config/outer-inner
                                                   config_0)))
                                                c_1
                                                config_0)))
                                            #f)
                                        (let ((v_0
                                               (|#%app|
                                                read-one_0
                                                #f
                                                in_0
                                                elem-config_0)))
                                          (letrec*
                                           ((closer-loop_0
                                             (|#%name|
                                              closer-loop
                                              (lambda ()
                                                (begin
                                                  (let ((closer-c_0
                                                         (read-char/skip-whitespace-and-comments
                                                          #f
                                                          read-one_0
                                                          in_0
                                                          config_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (port-next-location*
                                                        in_0
                                                        closer-c_0))
                                                     (case-lambda
                                                      ((closer-line_0
                                                        closer-col_0
                                                        closer-pos_0)
                                                       (let ((closer-ec_0
                                                              (effective-char
                                                               closer-c_0
                                                               config_0)))
                                                         (if (eqv?
                                                              closer-ec_0
                                                              closer_0)
                                                           (cons
                                                            (coerce-key
                                                             k_0
                                                             elem-config_0)
                                                            v_0)
                                                           (if (special-comment-via-readtable?
                                                                closer-c_0
                                                                read-one_0
                                                                in_0
                                                                config_0)
                                                             (closer-loop_0)
                                                             (let ((temp76_0
                                                                    (reading-at
                                                                     config_0
                                                                     closer-line_0
                                                                     closer-col_0
                                                                     closer-pos_0)))
                                                               (let ((temp78_0
                                                                      "expected ~a after value within a hash"))
                                                                 (let ((temp79_0
                                                                        (begin-unsafe
                                                                         (effective-char-names
                                                                          closer_0
                                                                          config_0
                                                                          "closer"))))
                                                                   (let ((temp78_1
                                                                          temp78_0)
                                                                         (temp76_1
                                                                          temp76_0))
                                                                     (reader-error.1
                                                                      unsafe-undefined
                                                                      closer-c_0
                                                                      #f
                                                                      unsafe-undefined
                                                                      in_0
                                                                      temp76_1
                                                                      temp78_1
                                                                      (list
                                                                       temp79_0))))))))))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        3
                                                        args))))))))))
                                           (closer-loop_0)))
                                        (if (special-comment-via-readtable?
                                             dot-c_0
                                             read-one_0
                                             in_0
                                             config_0)
                                          (dot-loop_0)
                                          (let ((temp81_0
                                                 (reading-at
                                                  config_0
                                                  dot-line_0
                                                  dot-col_0
                                                  dot-pos_0)))
                                            (let ((temp83_0
                                                   "expected ~a and value for hash"))
                                              (let ((temp84_0
                                                     (begin-unsafe "`.`")))
                                                (let ((temp83_1 temp83_0)
                                                      (temp81_1 temp81_0))
                                                  (reader-error.1
                                                   unsafe-undefined
                                                   dot-c_0
                                                   #f
                                                   unsafe-undefined
                                                   in_0
                                                   temp81_1
                                                   temp83_1
                                                   (list temp84_0))))))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args))))))))))
                        (dot-loop_0))))))))
            (args (raise-binding-result-arity-error 3 args)))))))))
(define read-string.1
  (|#%name|
   read-string
   (lambda (mode1_0 in3_0 config4_0)
     (begin
       (let ((source_0
              (begin-unsafe
               (read-config/inner-source
                (read-config/outer-inner config4_0)))))
         (call-with-values
          (lambda () (port-next-location in3_0))
          (case-lambda
           ((open-end-line_0 open-end-col_0 open-end-pos_0)
            (let ((accum-str_0 (accum-string-init! config4_0)))
              (let ((bad-end_0
                     (|#%name|
                      bad-end
                      (lambda (c_0)
                        (begin
                          (if (eof-object? c_0)
                            (let ((temp10_0 "expected a closing `\"`"))
                              (reader-error.1
                               unsafe-undefined
                               c_0
                               open-end-pos_0
                               unsafe-undefined
                               in3_0
                               config4_0
                               temp10_0
                               (list)))
                            (let ((temp14_0
                                   "found non-character while reading a ~a"))
                              (reader-error.1
                               unsafe-undefined
                               c_0
                               #f
                               unsafe-undefined
                               in3_0
                               config4_0
                               temp14_0
                               (list mode1_0)))))))))
                (begin
                  (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda ()
                        (begin
                          (let ((c_0
                                 (read-char-or-special
                                  in3_0
                                  special1.1
                                  source_0)))
                            (if (not (char? c_0))
                              (bad-end_0 c_0)
                              (if (char=? '#\x5c c_0)
                                (let ((escaped-c_0
                                       (read-char-or-special
                                        in3_0
                                        special1.1
                                        source_0)))
                                  (begin
                                    (if (not (char? escaped-c_0))
                                      (bad-end_0 escaped-c_0)
                                      (void))
                                    (let ((unknown-error_0
                                           (|#%name|
                                            unknown-error
                                            (lambda ()
                                              (begin
                                                (let ((temp18_0
                                                       "unknown escape sequence `~a~a` in ~a"))
                                                  (reader-error.1
                                                   unsafe-undefined
                                                   '#\x78
                                                   #f
                                                   unsafe-undefined
                                                   in3_0
                                                   config4_0
                                                   temp18_0
                                                   (list
                                                    c_0
                                                    escaped-c_0
                                                    mode1_0))))))))
                                      (begin
                                        (let ((index_0
                                               (if (char? escaped-c_0)
                                                 (let ((codepoint_0
                                                        (char->integer
                                                         escaped-c_0)))
                                                   (if (if (unsafe-fx>=
                                                            codepoint_0
                                                            10)
                                                         (unsafe-fx<
                                                          codepoint_0
                                                          121)
                                                         #f)
                                                     (let ((tbl_0
                                                            '#(10
                                                               0
                                                               0
                                                               11
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               1
                                                               0
                                                               0
                                                               0
                                                               0
                                                               1
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               12
                                                               12
                                                               12
                                                               12
                                                               12
                                                               12
                                                               12
                                                               12
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               15
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               1
                                                               0
                                                               0
                                                               0
                                                               0
                                                               2
                                                               3
                                                               0
                                                               0
                                                               9
                                                               7
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               0
                                                               5
                                                               0
                                                               0
                                                               0
                                                               8
                                                               0
                                                               4
                                                               14
                                                               6
                                                               0
                                                               13)))
                                                       (unsafe-vector*-ref
                                                        tbl_0
                                                        (unsafe-fx-
                                                         codepoint_0
                                                         10)))
                                                     0))
                                                 0)))
                                          (if (unsafe-fx< index_0 7)
                                            (if (unsafe-fx< index_0 3)
                                              (if (unsafe-fx< index_0 1)
                                                (unknown-error_0)
                                                (if (unsafe-fx< index_0 2)
                                                  (accum-string-add!
                                                   accum-str_0
                                                   escaped-c_0)
                                                  (accum-string-add!
                                                   accum-str_0
                                                   '#\x7)))
                                              (if (unsafe-fx< index_0 4)
                                                (accum-string-add!
                                                 accum-str_0
                                                 '#\x8)
                                                (if (unsafe-fx< index_0 5)
                                                  (accum-string-add!
                                                   accum-str_0
                                                   '#\x9)
                                                  (if (unsafe-fx< index_0 6)
                                                    (accum-string-add!
                                                     accum-str_0
                                                     '#\xa)
                                                    (accum-string-add!
                                                     accum-str_0
                                                     '#\xb)))))
                                            (if (unsafe-fx< index_0 11)
                                              (if (unsafe-fx< index_0 8)
                                                (accum-string-add!
                                                 accum-str_0
                                                 '#\xc)
                                                (if (unsafe-fx< index_0 9)
                                                  (accum-string-add!
                                                   accum-str_0
                                                   '#\xd)
                                                  (if (unsafe-fx< index_0 10)
                                                    (accum-string-add!
                                                     accum-str_0
                                                     '#\x1b)
                                                    (void))))
                                              (if (unsafe-fx< index_0 13)
                                                (if (unsafe-fx< index_0 12)
                                                  (let ((maybe-newline-c_0
                                                         (let ((c_1
                                                                (peek-char-or-special
                                                                 in3_0
                                                                 0
                                                                 'special
                                                                 source_0)))
                                                           (if (eq?
                                                                c_1
                                                                'special)
                                                             (special1.1
                                                              'special)
                                                             c_1))))
                                                    (begin
                                                      (if (eqv?
                                                           maybe-newline-c_0
                                                           '#\xa)
                                                        (begin-unsafe
                                                         (begin
                                                           (read-char in3_0)
                                                           (void)))
                                                        (void))
                                                      (void)))
                                                  (let ((pos_0
                                                         (begin-unsafe
                                                          (accum-string-pos
                                                           accum-str_0))))
                                                    (begin
                                                      (accum-string-add!
                                                       accum-str_0
                                                       escaped-c_0)
                                                      (let ((init-v_0
                                                             (digit->number
                                                              escaped-c_0)))
                                                        (let ((v_0
                                                               (read-digits.1
                                                                8
                                                                init-v_0
                                                                2
                                                                init-v_0
                                                                in3_0
                                                                config4_0
                                                                accum-str_0)))
                                                          (begin
                                                            (if (<= v_0 255)
                                                              (void)
                                                              (let ((temp31_0
                                                                     "escape sequence `~a~a` is out of range in ~a"))
                                                                (let ((temp33_0
                                                                       (accum-string-get!.1
                                                                        pos_0
                                                                        accum-str_0
                                                                        config4_0)))
                                                                  (let ((temp31_1
                                                                         temp31_0))
                                                                    (reader-error.1
                                                                     unsafe-undefined
                                                                     '#\x78
                                                                     #f
                                                                     unsafe-undefined
                                                                     in3_0
                                                                     config4_0
                                                                     temp31_1
                                                                     (list
                                                                      c_0
                                                                      temp33_0
                                                                      mode1_0))))))
                                                            (begin-unsafe
                                                             (set-accum-string-pos!
                                                              accum-str_0
                                                              pos_0))
                                                            (accum-string-add!
                                                             accum-str_0
                                                             (integer->char
                                                              v_0))))))))
                                                (if (unsafe-fx< index_0 14)
                                                  (let ((pos_0
                                                         (begin-unsafe
                                                          (accum-string-pos
                                                           accum-str_0))))
                                                    (let ((v_0
                                                           (read-digits.1
                                                            16
                                                            0
                                                            2
                                                            #f
                                                            in3_0
                                                            config4_0
                                                            accum-str_0)))
                                                      (begin
                                                        (if (integer? v_0)
                                                          (void)
                                                          (no-hex-digits
                                                           in3_0
                                                           config4_0
                                                           v_0
                                                           c_0
                                                           escaped-c_0))
                                                        (begin-unsafe
                                                         (set-accum-string-pos!
                                                          accum-str_0
                                                          pos_0))
                                                        (accum-string-add!
                                                         accum-str_0
                                                         (integer->char
                                                          v_0)))))
                                                  (if (unsafe-fx< index_0 15)
                                                    (begin
                                                      (if (eq? mode1_0 'string)
                                                        (void)
                                                        (unknown-error_0))
                                                      (let ((pos_0
                                                             (begin-unsafe
                                                              (accum-string-pos
                                                               accum-str_0))))
                                                        (let ((v_0
                                                               (read-digits.1
                                                                16
                                                                0
                                                                4
                                                                #f
                                                                in3_0
                                                                config4_0
                                                                accum-str_0)))
                                                          (begin
                                                            (if (integer? v_0)
                                                              (void)
                                                              (no-hex-digits
                                                               in3_0
                                                               config4_0
                                                               v_0
                                                               c_0
                                                               escaped-c_0))
                                                            (if (let ((or-part_0
                                                                       (<
                                                                        v_0
                                                                        55296)))
                                                                  (if or-part_0
                                                                    or-part_0
                                                                    (>
                                                                     v_0
                                                                     57343)))
                                                              (begin
                                                                (begin-unsafe
                                                                 (set-accum-string-pos!
                                                                  accum-str_0
                                                                  pos_0))
                                                                (accum-string-add!
                                                                 accum-str_0
                                                                 (integer->char
                                                                  v_0)))
                                                              (let ((next!_0
                                                                     (|#%name|
                                                                      next!
                                                                      (lambda ()
                                                                        (begin
                                                                          (let ((next-c_0
                                                                                 (read-char-or-special
                                                                                  in3_0
                                                                                  special1.1
                                                                                  source_0)))
                                                                            (begin
                                                                              (if (char?
                                                                                   next-c_0)
                                                                                (accum-string-add!
                                                                                 accum-str_0
                                                                                 next-c_0)
                                                                                (void))
                                                                              next-c_0)))))))
                                                                (let ((v2_0
                                                                       (let ((next-c_0
                                                                              (next!_0)))
                                                                         (if (char=?
                                                                              next-c_0
                                                                              '#\x5c)
                                                                           (let ((next-c_1
                                                                                  (next!_0)))
                                                                             (if (char=?
                                                                                  next-c_1
                                                                                  '#\x75)
                                                                               (let ((v2_0
                                                                                      (read-digits.1
                                                                                       16
                                                                                       0
                                                                                       4
                                                                                       #f
                                                                                       in3_0
                                                                                       config4_0
                                                                                       accum-str_0)))
                                                                                 (if (integer?
                                                                                      v2_0)
                                                                                   (if (>=
                                                                                        v2_0
                                                                                        56320)
                                                                                     (if (<=
                                                                                          v2_0
                                                                                          57343)
                                                                                       v2_0
                                                                                       #f)
                                                                                     #f)
                                                                                   v2_0))
                                                                               next-c_1))
                                                                           next-c_0))))
                                                                  (if (integer?
                                                                       v2_0)
                                                                    (let ((combined-v_0
                                                                           (let ((app_0
                                                                                  (arithmetic-shift
                                                                                   (-
                                                                                    v_0
                                                                                    55296)
                                                                                   10)))
                                                                             (+
                                                                              app_0
                                                                              (-
                                                                               v2_0
                                                                               56320)
                                                                              65536))))
                                                                      (if (>
                                                                           combined-v_0
                                                                           1114111)
                                                                        (let ((temp55_0
                                                                               "escape sequence `~au~a` is out of range in string"))
                                                                          (let ((temp57_0
                                                                                 (accum-string-get!.1
                                                                                  pos_0
                                                                                  accum-str_0
                                                                                  config4_0)))
                                                                            (let ((temp55_1
                                                                                   temp55_0))
                                                                              (reader-error.1
                                                                               unsafe-undefined
                                                                               '#\x78
                                                                               #f
                                                                               unsafe-undefined
                                                                               in3_0
                                                                               config4_0
                                                                               temp55_1
                                                                               (list
                                                                                c_0
                                                                                temp57_0)))))
                                                                        (begin
                                                                          (begin-unsafe
                                                                           (set-accum-string-pos!
                                                                            accum-str_0
                                                                            pos_0))
                                                                          (accum-string-add!
                                                                           accum-str_0
                                                                           (integer->char
                                                                            combined-v_0)))))
                                                                    (let ((temp64_0
                                                                           "bad or incomplete surrogate-style encoding at `~au~a`"))
                                                                      (let ((temp66_0
                                                                             (accum-string-get!.1
                                                                              pos_0
                                                                              accum-str_0
                                                                              config4_0)))
                                                                        (let ((temp64_1
                                                                               temp64_0))
                                                                          (reader-error.1
                                                                           unsafe-undefined
                                                                           v2_0
                                                                           #f
                                                                           unsafe-undefined
                                                                           in3_0
                                                                           config4_0
                                                                           temp64_1
                                                                           (list
                                                                            c_0
                                                                            temp66_0)))))))))))))
                                                    (begin
                                                      (if (eq? mode1_0 'string)
                                                        (void)
                                                        (unknown-error_0))
                                                      (let ((pos_0
                                                             (begin-unsafe
                                                              (accum-string-pos
                                                               accum-str_0))))
                                                        (let ((v_0
                                                               (read-digits.1
                                                                16
                                                                0
                                                                8
                                                                #f
                                                                in3_0
                                                                config4_0
                                                                accum-str_0)))
                                                          (begin
                                                            (if (integer? v_0)
                                                              (void)
                                                              (no-hex-digits
                                                               in3_0
                                                               config4_0
                                                               v_0
                                                               c_0
                                                               escaped-c_0))
                                                            (if (if (let ((or-part_0
                                                                           (<
                                                                            v_0
                                                                            55296)))
                                                                      (if or-part_0
                                                                        or-part_0
                                                                        (>
                                                                         v_0
                                                                         57343)))
                                                                  (<=
                                                                   v_0
                                                                   1114111)
                                                                  #f)
                                                              (begin
                                                                (begin-unsafe
                                                                 (set-accum-string-pos!
                                                                  accum-str_0
                                                                  pos_0))
                                                                (accum-string-add!
                                                                 accum-str_0
                                                                 (integer->char
                                                                  v_0)))
                                                              (let ((temp77_0
                                                                     "escape sequence `~aU~a` is out of range in string"))
                                                                (let ((temp79_0
                                                                       (accum-string-get!.1
                                                                        pos_0
                                                                        accum-str_0
                                                                        config4_0)))
                                                                  (let ((temp77_1
                                                                         temp77_0))
                                                                    (reader-error.1
                                                                     unsafe-undefined
                                                                     '#\x78
                                                                     #f
                                                                     unsafe-undefined
                                                                     in3_0
                                                                     config4_0
                                                                     temp77_1
                                                                     (list
                                                                      c_0
                                                                      temp79_0))))))))))))))))
                                        (loop_0)))))
                                (if (char=? '#\x22 c_0)
                                  null
                                  (begin
                                    (if (eq? mode1_0 '|byte string|)
                                      (if (byte? (char->integer c_0))
                                        (void)
                                        (let ((temp85_0
                                               "character `~a` is out of range in byte string"))
                                          (reader-error.1
                                           unsafe-undefined
                                           '#\x78
                                           #f
                                           unsafe-undefined
                                           in3_0
                                           config4_0
                                           temp85_0
                                           (list c_0))))
                                      (void))
                                    (accum-string-add! accum-str_0 c_0)
                                    (loop_0)))))))))))
                   (loop_0))
                  (let ((str_0
                         (if (eq? mode1_0 '|byte string|)
                           (accum-string-get-bytes!.1 0 accum-str_0 config4_0)
                           (accum-string-get!.1 0 accum-str_0 config4_0))))
                    (wrap str_0 in3_0 config4_0 str_0))))))
           (args (raise-binding-result-arity-error 3 args)))))))))
(define read-here-string
  (lambda (in_0 config_0)
    (let ((source_0
           (begin-unsafe
            (read-config/inner-source (read-config/outer-inner config_0)))))
      (call-with-values
       (lambda () (port-next-location in_0))
       (case-lambda
        ((open-end-line_0 open-end-col_0 open-end-pos_0)
         (let ((accum-str_0 (accum-string-init! config_0)))
           (let ((full-terminator_0
                  (cons
                   '#\xa
                   (letrec*
                    ((loop_0
                      (|#%name|
                       loop
                       (lambda ()
                         (begin
                           (let ((c_0
                                  (read-char-or-special
                                   in_0
                                   special1.1
                                   source_0)))
                             (if (eof-object? c_0)
                               (let ((temp94_0
                                      "found end-of-file after `#<<` and before a newline"))
                                 (reader-error.1
                                  unsafe-undefined
                                  c_0
                                  #f
                                  unsafe-undefined
                                  in_0
                                  config_0
                                  temp94_0
                                  (list)))
                               (if (not (char? c_0))
                                 (let ((temp98_0
                                        "found non-character while reading `#<<`"))
                                   (reader-error.1
                                    unsafe-undefined
                                    c_0
                                    #f
                                    unsafe-undefined
                                    in_0
                                    config_0
                                    temp98_0
                                    (list)))
                                 (if (char=? c_0 '#\xa)
                                   null
                                   (cons c_0 (loop_0)))))))))))
                    (loop_0)))))
             (begin
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (terminator_0 terminator-accum_0)
                     (begin
                       (let ((c_0
                              (read-char-or-special in_0 special1.1 source_0)))
                         (if (eof-object? c_0)
                           (if (null? terminator_0)
                             (void)
                             (let ((temp103_0
                                    "found end-of-file before terminating `~a`"))
                               (let ((temp104_0
                                      (list->string (cdr full-terminator_0))))
                                 (let ((temp103_1 temp103_0))
                                   (reader-error.1
                                    unsafe-undefined
                                    c_0
                                    open-end-pos_0
                                    unsafe-undefined
                                    in_0
                                    config_0
                                    temp103_1
                                    (list temp104_0))))))
                           (if (not (char? c_0))
                             (let ((temp108_0
                                    "found non-character while reading `#<<`"))
                               (reader-error.1
                                unsafe-undefined
                                c_0
                                #f
                                unsafe-undefined
                                in_0
                                config_0
                                temp108_0
                                (list)))
                             (if (if (pair? terminator_0)
                                   (char=? c_0 (car terminator_0))
                                   #f)
                               (let ((app_0 (cdr terminator_0)))
                                 (loop_0
                                  app_0
                                  (cons
                                   (car terminator_0)
                                   terminator-accum_0)))
                               (if (if (null? terminator_0)
                                     (char=? c_0 '#\xa)
                                     #f)
                                 (void)
                                 (begin
                                   (if (null? terminator-accum_0)
                                     (void)
                                     (begin
                                       (let ((lst_0
                                              (reverse$1 terminator-accum_0)))
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (lst_1)
                                                 (begin
                                                   (if (pair? lst_1)
                                                     (let ((c_1
                                                            (unsafe-car
                                                             lst_1)))
                                                       (let ((rest_0
                                                              (unsafe-cdr
                                                               lst_1)))
                                                         (begin
                                                           (accum-string-add!
                                                            accum-str_0
                                                            c_1)
                                                           (for-loop_0
                                                            rest_0))))
                                                     (values)))))))
                                            (for-loop_0 lst_0))))
                                       (void)))
                                   (if (char=? c_0 '#\xa)
                                     (let ((app_0 (cdr full-terminator_0)))
                                       (loop_0 app_0 (list '#\xa)))
                                     (begin
                                       (accum-string-add! accum-str_0 c_0)
                                       (loop_0
                                        full-terminator_0
                                        null))))))))))))))
                (loop_0 (cdr full-terminator_0) null))
               (let ((str_0 (accum-string-get!.1 0 accum-str_0 config_0)))
                 (wrap str_0 in_0 config_0 str_0))))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define no-hex-digits
  (lambda (in_0 config_0 c_0 escaping-c_0 escaped-c_0)
    (let ((temp114_0 "no hex digit following `~a~a`"))
      (reader-error.1
       unsafe-undefined
       c_0
       #f
       unsafe-undefined
       in_0
       config_0
       temp114_0
       (list escaping-c_0 escaped-c_0)))))
(define read-character
  (lambda (in_0 config_0)
    (let ((c_0
           (let ((source_0
                  (begin-unsafe
                   (read-config/inner-source
                    (read-config/outer-inner config_0)))))
             (read-char-or-special in_0 special1.1 source_0))))
      (let ((char_0
             (if (eof-object? c_0)
               (let ((temp4_0 "expected a character after `#\\`"))
                 (reader-error.1
                  unsafe-undefined
                  c_0
                  #f
                  unsafe-undefined
                  in_0
                  config_0
                  temp4_0
                  (list)))
               (if (not (char? c_0))
                 (let ((temp8_0 "found non-character after `#\\`"))
                   (reader-error.1
                    unsafe-undefined
                    c_0
                    #f
                    unsafe-undefined
                    in_0
                    config_0
                    temp8_0
                    (list)))
                 (if (octal-digit? c_0)
                   (let ((c2_0
                          (let ((source_0
                                 (begin-unsafe
                                  (read-config/inner-source
                                   (read-config/outer-inner config_0)))))
                            (let ((c_1
                                   (peek-char-or-special
                                    in_0
                                    0
                                    'special
                                    source_0)))
                              (if (eq? c_1 'special)
                                (special1.1 'special)
                                c_1)))))
                     (if (if (char? c2_0) (octal-digit? c2_0) #f)
                       (begin
                         (begin-unsafe (begin (read-char in_0) (void)))
                         (let ((c3_0
                                (let ((source_0
                                       (begin-unsafe
                                        (read-config/inner-source
                                         (read-config/outer-inner config_0)))))
                                  (read-char-or-special
                                   in_0
                                   special1.1
                                   source_0))))
                           (let ((v_0
                                  (if (if (char? c3_0) (octal-digit? c3_0) #f)
                                    (let ((app_0
                                           (arithmetic-shift
                                            (digit->number c_0)
                                            6)))
                                      (let ((app_1
                                             (arithmetic-shift
                                              (digit->number c2_0)
                                              3)))
                                        (+ app_0 app_1 (digit->number c3_0))))
                                    #f)))
                             (begin
                               (if (if v_0 (<= v_0 255) #f)
                                 (void)
                                 (let ((temp12_0
                                        "bad character constant `#\\~a~a~a`"))
                                   (let ((temp15_0 (if (char? c3_0) c3_0 "")))
                                     (reader-error.1
                                      unsafe-undefined
                                      c3_0
                                      #f
                                      unsafe-undefined
                                      in_0
                                      config_0
                                      temp12_0
                                      (list c_0 c2_0 temp15_0)))))
                               (integer->char v_0)))))
                       c_0))
                   (if (let ((or-part_0 (char=? c_0 '#\x75)))
                         (if or-part_0 or-part_0 (char=? c_0 '#\x55)))
                     (let ((accum-str_0 (accum-string-init! config_0)))
                       (let ((v_0
                              (let ((temp20_0 (if (char=? c_0 '#\x75) 4 8)))
                                (read-digits.1
                                 16
                                 0
                                 temp20_0
                                 #f
                                 in_0
                                 config_0
                                 accum-str_0))))
                         (if (integer? v_0)
                           (if (if (let ((or-part_0 (< v_0 55296)))
                                     (if or-part_0 or-part_0 (> v_0 57343)))
                                 (<= v_0 1114111)
                                 #f)
                             (begin
                               (begin-unsafe
                                (set-read-config-state-accum-str!
                                 (begin-unsafe
                                  (read-config/inner-st
                                   (read-config/outer-inner config_0)))
                                 accum-str_0))
                               (integer->char v_0))
                             (let ((temp23_0
                                    "bad character constant `#\\u~a`"))
                               (let ((temp24_0
                                      (accum-string-get!.1
                                       0
                                       accum-str_0
                                       config_0)))
                                 (let ((temp23_1 temp23_0))
                                   (reader-error.1
                                    unsafe-undefined
                                    '#\x78
                                    #f
                                    unsafe-undefined
                                    in_0
                                    config_0
                                    temp23_1
                                    (list temp24_0))))))
                           (begin
                             (begin-unsafe
                              (set-read-config-state-accum-str!
                               (begin-unsafe
                                (read-config/inner-st
                                 (read-config/outer-inner config_0)))
                               accum-str_0))
                             c_0))))
                     (if (char-alphabetic? c_0)
                       (let ((next-c_0
                              (let ((source_0
                                     (begin-unsafe
                                      (read-config/inner-source
                                       (read-config/outer-inner config_0)))))
                                (let ((c_1
                                       (peek-char-or-special
                                        in_0
                                        0
                                        'special
                                        source_0)))
                                  (if (eq? c_1 'special)
                                    (special1.1 'special)
                                    c_1)))))
                         (if (if (char? next-c_0)
                               (char-alphabetic? next-c_0)
                               #f)
                           (let ((accum-str_0 (accum-string-init! config_0)))
                             (begin
                               (accum-string-add! accum-str_0 c_0)
                               (begin
                                 (accum-string-add! accum-str_0 next-c_0)
                                 (begin
                                   (begin-unsafe
                                    (begin (read-char in_0) (void)))
                                   (begin
                                     (letrec*
                                      ((loop_0
                                        (|#%name|
                                         loop
                                         (lambda ()
                                           (begin
                                             (let ((next-c_1
                                                    (let ((source_0
                                                           (begin-unsafe
                                                            (read-config/inner-source
                                                             (read-config/outer-inner
                                                              config_0)))))
                                                      (let ((c_1
                                                             (peek-char-or-special
                                                              in_0
                                                              0
                                                              'special
                                                              source_0)))
                                                        (if (eq? c_1 'special)
                                                          (special1.1 'special)
                                                          c_1)))))
                                               (if (if (char? next-c_1)
                                                     (char-alphabetic?
                                                      next-c_1)
                                                     #f)
                                                 (begin
                                                   (accum-string-add!
                                                    accum-str_0
                                                    next-c_1)
                                                   (begin-unsafe
                                                    (begin
                                                      (read-char in_0)
                                                      (void)))
                                                   (loop_0))
                                                 (void))))))))
                                      (loop_0))
                                     (let ((name_0
                                            (string-foldcase
                                             (accum-string-get!.1
                                              0
                                              accum-str_0
                                              config_0))))
                                       (if (if (equal? name_0 "nul")
                                             #t
                                             (equal? name_0 "null"))
                                         '#\x0
                                         (if (equal? name_0 "backspace")
                                           '#\x8
                                           (if (equal? name_0 "tab")
                                             '#\x9
                                             (if (if (equal? name_0 "newline")
                                                   #t
                                                   (equal? name_0 "linefeed"))
                                               '#\xa
                                               (if (equal? name_0 "vtab")
                                                 '#\xb
                                                 (if (equal? name_0 "page")
                                                   '#\xc
                                                   (if (equal? name_0 "return")
                                                     '#\xd
                                                     (if (equal?
                                                          name_0
                                                          "space")
                                                       '#\x20
                                                       (if (equal?
                                                            name_0
                                                            "rubout")
                                                         '#\x7f
                                                         (let ((temp31_0
                                                                "bad character constant `#\\~a`"))
                                                           (reader-error.1
                                                            unsafe-undefined
                                                            '#\x78
                                                            #f
                                                            unsafe-undefined
                                                            in_0
                                                            config_0
                                                            temp31_0
                                                            (list
                                                             name_0))))))))))))))))))
                           c_0))
                       c_0)))))))
        (wrap char_0 in_0 config_0 char_0)))))
(define read-quote
  (lambda (read-one_0 sym_0 desc_0 c_0 in_0 config_0)
    (let ((wrapped-sym_0 (wrap sym_0 in_0 config_0 c_0)))
      (call-with-values
       (lambda () (port-next-location in_0))
       (case-lambda
        ((end-line_0 end-col_0 end-pos_0)
         (let ((e_0 (|#%app| read-one_0 #f in_0 config_0)))
           (begin
             (if (eof-object? e_0)
               (let ((temp5_0 "expected an element for ~a, found end-of-file"))
                 (reader-error.1
                  unsafe-undefined
                  e_0
                  end-pos_0
                  unsafe-undefined
                  in_0
                  config_0
                  temp5_0
                  (list desc_0)))
               (void))
             (wrap (list wrapped-sym_0 e_0) in_0 config_0 #f))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define read-delimited-constant
  (lambda (init-c_0 can-match?_0 chars_0 val_0 in_0 config_0)
    (let ((accum-str_0 (accum-string-init! config_0)))
      (begin
        (accum-string-add! accum-str_0 init-c_0)
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (chars_1)
              (begin
                (let ((c_0
                       (let ((source_0
                              (begin-unsafe
                               (read-config/inner-source
                                (read-config/outer-inner config_0)))))
                         (let ((c_0
                                (peek-char-or-special
                                 in_0
                                 0
                                 'special
                                 source_0)))
                           (if (eq? c_0 'special)
                             (special1.1 'special)
                             c_0)))))
                  (if (begin-unsafe
                       (readtable-char-delimiter?
                        (begin-unsafe
                         (read-config/inner-readtable
                          (read-config/outer-inner config_0)))
                        c_0
                        config_0))
                    (if (null? chars_1)
                      (void)
                      (let ((temp4_0 "bad syntax `#~a`"))
                        (let ((temp5_0
                               (accum-string-get!.1 0 accum-str_0 config_0)))
                          (let ((temp4_1 temp4_0))
                            (reader-error.1
                             unsafe-undefined
                             c_0
                             #f
                             unsafe-undefined
                             in_0
                             config_0
                             temp4_1
                             (list temp5_0))))))
                    (if (null? chars_1)
                      (begin
                        (accum-string-add! accum-str_0 c_0)
                        (let ((temp10_0 "bad syntax `#~a`"))
                          (let ((temp11_0
                                 (accum-string-get!.1 0 accum-str_0 config_0)))
                            (let ((temp10_1 temp10_0))
                              (reader-error.1
                               unsafe-undefined
                               '#\x78
                               #f
                               unsafe-undefined
                               in_0
                               config_0
                               temp10_1
                               (list temp11_0))))))
                      (if (if can-match?_0 (char=? c_0 (car chars_1)) #f)
                        (begin
                          (begin-unsafe (begin (read-char in_0) (void)))
                          (accum-string-add! accum-str_0 c_0)
                          (loop_0 (cdr chars_1)))
                        (begin
                          (begin-unsafe
                           (begin
                             (read-char-or-special
                              in_0
                              special1.1
                              (begin-unsafe
                               (read-config/inner-source
                                (read-config/outer-inner config_0))))
                             (void)))
                          (accum-string-add! accum-str_0 c_0)
                          (let ((temp16_0 "bad syntax `#~a`"))
                            (let ((temp17_0
                                   (accum-string-get!.1
                                    0
                                    accum-str_0
                                    config_0)))
                              (let ((temp16_1 temp16_0))
                                (reader-error.1
                                 unsafe-undefined
                                 '#\x78
                                 #f
                                 unsafe-undefined
                                 in_0
                                 config_0
                                 temp16_1
                                 (list temp17_0)))))))))))))))
         (loop_0 chars_0))
        (wrap
         val_0
         in_0
         config_0
         (accum-string-get!.1 0 accum-str_0 config_0))))))
(define read-box
  (lambda (read-one_0 dispatch-c_0 in_0 config_0)
    (begin
      (if (check-parameter 1/read-accept-box config_0)
        (void)
        (let ((temp3_0 "`~a&` forms not enabled"))
          (reader-error.1
           unsafe-undefined
           '#\x78
           #f
           unsafe-undefined
           in_0
           config_0
           temp3_0
           (list dispatch-c_0))))
      (call-with-values
       (lambda () (port-next-location in_0))
       (case-lambda
        ((open-end-line_0 open-end-col_0 open-end-pos_0)
         (let ((e_0 (|#%app| read-one_0 #f in_0 (next-readtable config_0))))
           (begin
             (if (eof-object? e_0)
               (let ((temp9_0
                      "expected an element for `~a&` box, found end-of-file"))
                 (reader-error.1
                  unsafe-undefined
                  e_0
                  open-end-pos_0
                  unsafe-undefined
                  in_0
                  config_0
                  temp9_0
                  (list dispatch-c_0)))
               (void))
             (wrap
              (if (begin-unsafe
                   (read-config/inner-for-syntax?
                    (read-config/outer-inner config_0)))
                (box-immutable e_0)
                (box e_0))
              in_0
              config_0
              #f))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define read-regexp
  (lambda (mode-c_0 accum-str_0 in_0 config_0)
    (let ((c3_0
           (let ((source_0
                  (begin-unsafe
                   (read-config/inner-source
                    (read-config/outer-inner config_0)))))
             (read-char-or-special in_0 special1.1 source_0))))
      (let ((no-wrap-config_0 (disable-wrapping config_0)))
        (let ((rx_0
               (if (eqv? c3_0 '#\x22)
                 (begin
                   (begin-unsafe
                    (set-read-config-state-accum-str!
                     (begin-unsafe
                      (read-config/inner-st
                       (read-config/outer-inner config_0)))
                     accum-str_0))
                   (let ((str_0 (read-string.1 'string in_0 no-wrap-config_0)))
                     (catch-and-reraise-as-reader/proc
                      in_0
                      config_0
                      (lambda ()
                        (|#%app|
                         (if (char=? mode-c_0 '#\x72) regexp pregexp)
                         str_0)))))
                 (if (eqv? c3_0 '#\x23)
                   (begin
                     (accum-string-add! accum-str_0 c3_0)
                     (let ((c4_0
                            (let ((source_0
                                   (begin-unsafe
                                    (read-config/inner-source
                                     (read-config/outer-inner config_0)))))
                              (read-char-or-special
                               in_0
                               special1.1
                               source_0))))
                       (if (eqv? c4_0 '#\x22)
                         (begin
                           (begin-unsafe
                            (set-read-config-state-accum-str!
                             (begin-unsafe
                              (read-config/inner-st
                               (read-config/outer-inner config_0)))
                             accum-str_0))
                           (let ((bstr_0
                                  (read-string.1
                                   '|byte string|
                                   in_0
                                   no-wrap-config_0)))
                             (catch-and-reraise-as-reader/proc
                              in_0
                              config_0
                              (lambda ()
                                (|#%app|
                                 (if (char=? mode-c_0 '#\x72)
                                   byte-regexp
                                   byte-pregexp)
                                 bstr_0)))))
                         (let ((temp9_0 "expected `\"` after `~a`"))
                           (let ((temp10_0
                                  (accum-string-get!.1
                                   0
                                   accum-str_0
                                   config_0)))
                             (let ((temp9_1 temp9_0))
                               (reader-error.1
                                unsafe-undefined
                                c4_0
                                #f
                                unsafe-undefined
                                in_0
                                config_0
                                temp9_1
                                (list temp10_0))))))))
                   (let ((temp16_0 "expected `\"` or `#` after `~a`"))
                     (let ((temp17_0
                            (accum-string-get!.1 0 accum-str_0 config_0)))
                       (let ((temp16_1 temp16_0))
                         (reader-error.1
                          unsafe-undefined
                          c3_0
                          #f
                          unsafe-undefined
                          in_0
                          config_0
                          temp16_1
                          (list temp17_0)))))))))
          (wrap rx_0 in_0 config_0 #f))))))
(define read-extension-reader
  (lambda (read-one_0 read-recur_0 dispatch-c_0 in_0 config_0)
    (let ((extend-str_0
           (read-extension-prefix
            (cons dispatch-c_0 '(#\x72 #\x65))
            '(#\x61 #\x64 #\x65 #\x72)
            in_0
            config_0)))
      (begin
        (if (check-parameter 1/read-accept-reader config_0)
          (void)
          (let ((temp48_0 "`~a` not enabled"))
            (reader-error.1
             unsafe-undefined
             '#\x78
             #f
             unsafe-undefined
             in_0
             config_0
             temp48_0
             (list extend-str_0))))
        (let ((mod-path-wrapped_0
               (|#%app| read-one_0 #f in_0 (next-readtable config_0))))
          (begin
            (if (eof-object? mod-path-wrapped_0)
              (let ((temp53_0
                     "expected a datum after `~a`, found end-of-file"))
                (reader-error.1
                 unsafe-undefined
                 mod-path-wrapped_0
                 #f
                 unsafe-undefined
                 in_0
                 config_0
                 temp53_0
                 (list extend-str_0)))
              (void))
            (let ((temp41_0
                   (|#%app|
                    (begin-unsafe
                     (read-config/inner-coerce
                      (read-config/outer-inner config_0)))
                    #f
                    mod-path-wrapped_0
                    #f)))
              (read-extension.1
               #f
               mod-path-wrapped_0
               #f
               '|#reader|
               temp41_0
               read-recur_0
               in_0
               config_0))))))))
(define read-extension-lang.1
  (|#%name|
   read-extension-lang
   (lambda (get-info?1_0 read-recur3_0 dispatch-c4_0 in5_0 config6_0)
     (begin
       (let ((extend-str_0
              (read-extension-prefix
               (cons dispatch-c4_0 '(#\x6c))
               '(#\x61 #\x6e #\x67)
               in5_0
               config6_0)))
         (let ((c_0
                (let ((source_0
                       (begin-unsafe
                        (read-config/inner-source
                         (read-config/outer-inner config6_0)))))
                  (read-char-or-special in5_0 special1.1 source_0))))
           (begin
             (if (eqv? c_0 '#\x20)
               (void)
               (let ((temp64_0 "expected a single space after `~a`"))
                 (reader-error.1
                  unsafe-undefined
                  '#\x78
                  #f
                  unsafe-undefined
                  in5_0
                  config6_0
                  temp64_0
                  (list extend-str_0))))
             (read-lang.1
              get-info?1_0
              #f
              #t
              '|#lang|
              extend-str_0
              read-recur3_0
              in5_0
              config6_0))))))))
(define |read-extension-#!.1|
  (|#%name|
   |read-extension-#!|
   (lambda (get-info?8_0 read-recur10_0 dispatch-c11_0 in12_0 config13_0)
     (begin
       (let ((c_0
              (let ((source_0
                     (begin-unsafe
                      (read-config/inner-source
                       (read-config/outer-inner config13_0)))))
                (read-char-or-special in12_0 special1.1 source_0))))
         (begin
           (if (if (char? c_0) (char-lang-nonsep? c_0) #f)
             (void)
             (let ((temp75_0
                    (if (char? c_0)
                      (string dispatch-c11_0 '#\x21 c_0)
                      (string dispatch-c11_0 '#\x21))))
               (bad-syntax-error.1 '#\x78 in12_0 config13_0 temp75_0)))
           (let ((temp66_0 (string dispatch-c11_0 '#\x21)))
             (read-lang.1
              get-info?8_0
              c_0
              #f
              '|#!|
              temp66_0
              read-recur10_0
              in12_0
              config13_0))))))))
(define read-lang.1
  (|#%name|
   read-lang
   (lambda (get-info?17_0
            init-c15_0
            one-space?16_0
            who18_0
            extend-str23_0
            read-recur24_0
            in25_0
            config26_0)
     (begin
       (begin
         (if (if (check-parameter 1/read-accept-reader config26_0)
               (check-parameter 1/read-accept-lang config26_0)
               #f)
           (void)
           (let ((temp85_0 "`~a` not enabled\n  possible reason: ~a"))
             (let ((temp87_0
                    (string-append
                     "not allowed again inside a module that already starts `#lang`,"
                     " or not enabled for interactive evaluation")))
               (let ((temp85_1 temp85_0))
                 (reader-error.1
                  unsafe-undefined
                  '#\x78
                  #f
                  unsafe-undefined
                  in25_0
                  config26_0
                  temp85_1
                  (list extend-str23_0 temp87_0))))))
         (call-with-values
          (lambda () (port-next-location in25_0))
          (case-lambda
           ((line_0 col_0 pos_0)
            (let ((accum-str_0 (accum-string-init! config26_0)))
              (begin
                (if init-c15_0
                  (accum-string-add! accum-str_0 init-c15_0)
                  (void))
                (begin
                  (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda ()
                        (begin
                          (let ((c_0
                                 (let ((source_0
                                        (begin-unsafe
                                         (read-config/inner-source
                                          (read-config/outer-inner
                                           config26_0)))))
                                   (let ((c_0
                                          (peek-char-or-special
                                           in25_0
                                           0
                                           'special
                                           source_0)))
                                     (if (eq? c_0 'special)
                                       (special1.1 'special)
                                       c_0)))))
                            (if (eof-object? c_0)
                              (void)
                              (if (not (char? c_0))
                                (begin
                                  (begin-unsafe
                                   (begin
                                     (read-char-or-special
                                      in25_0
                                      special1.1
                                      (begin-unsafe
                                       (read-config/inner-source
                                        (read-config/outer-inner config26_0))))
                                     (void)))
                                  (let ((temp91_0
                                         "found non-character while reading `#~a`"))
                                    (reader-error.1
                                     unsafe-undefined
                                     c_0
                                     #f
                                     unsafe-undefined
                                     in25_0
                                     config26_0
                                     temp91_0
                                     (list extend-str23_0))))
                                (if (if (char-whitespace? c_0)
                                      (positive?
                                       (begin-unsafe
                                        (accum-string-pos accum-str_0)))
                                      #f)
                                  (void)
                                  (if (if one-space?16_0
                                        (char=? c_0 '#\x20)
                                        #f)
                                    (let ((temp95_0
                                           "expected a single space after `~a`"))
                                      (reader-error.1
                                       unsafe-undefined
                                       '#\x78
                                       #f
                                       unsafe-undefined
                                       in25_0
                                       config26_0
                                       temp95_0
                                       (list extend-str23_0)))
                                    (if (let ((or-part_0
                                               (char-lang-nonsep? c_0)))
                                          (if or-part_0
                                            or-part_0
                                            (char=? '#\x2f c_0)))
                                      (begin
                                        (begin-unsafe
                                         (begin (read-char in25_0) (void)))
                                        (accum-string-add! accum-str_0 c_0)
                                        (loop_0))
                                      (begin
                                        (begin-unsafe
                                         (begin (read-char in25_0) (void)))
                                        (let ((temp99_0
                                               (string-append
                                                "expected only alphanumeric, `-`, `+`, `_`, or `/`"
                                                " characters for `~a`, found `~a`")))
                                          (reader-error.1
                                           unsafe-undefined
                                           '#\x78
                                           #f
                                           unsafe-undefined
                                           in25_0
                                           config26_0
                                           temp99_0
                                           (list
                                            extend-str23_0
                                            c_0)))))))))))))))
                   (loop_0))
                  (let ((lang-str_0
                         (accum-string-get!.1 0 accum-str_0 config26_0)))
                    (begin
                      (if (equal? lang-str_0 "")
                        (let ((temp106_0
                               "expected a non-empty sequence of alphanumeric, `-`, `+`, `_`, or `/` after `~a~a`"))
                          (let ((temp108_0 (if one-space?16_0 " " "")))
                            (reader-error.1
                             unsafe-undefined
                             '#\x78
                             #f
                             unsafe-undefined
                             in25_0
                             config26_0
                             temp106_0
                             (list extend-str23_0 temp108_0))))
                        (void))
                      (begin
                        (if (char=? '#\x2f (string-ref lang-str_0 0))
                          (let ((temp111_0
                                 "expected a name that does not start `/` after `~a`"))
                            (reader-error.1
                             unsafe-undefined
                             '#\x78
                             #f
                             unsafe-undefined
                             in25_0
                             config26_0
                             temp111_0
                             (list extend-str23_0)))
                          (void))
                        (begin
                          (if (char=?
                               '#\x2f
                               (string-ref
                                lang-str_0
                                (sub1 (string-length lang-str_0))))
                            (let ((temp115_0
                                   "expected a name that does not end `/` after `~a`"))
                              (reader-error.1
                               unsafe-undefined
                               '#\x78
                               #f
                               unsafe-undefined
                               in25_0
                               config26_0
                               temp115_0
                               (list extend-str23_0)))
                            (void))
                          (let ((submod-path_0
                                 (list*
                                  'submod
                                  (string->symbol lang-str_0)
                                  '(reader))))
                            (let ((reader-path_0
                                   (string->symbol
                                    (string-append
                                     lang-str_0
                                     "/lang/reader"))))
                              (let ((temp80_0
                                     (reading-at
                                      config26_0
                                      line_0
                                      col_0
                                      pos_0)))
                                (read-extension.1
                                 get-info?17_0
                                 unsafe-undefined
                                 submod-path_0
                                 who18_0
                                 reader-path_0
                                 read-recur24_0
                                 in25_0
                                 temp80_0))))))))))))
           (args (raise-binding-result-arity-error 3 args)))))))))
(define char-lang-nonsep?
  (lambda (c_0)
    (if (< (char->integer c_0) 128)
      (let ((or-part_0 (char-alphabetic? c_0)))
        (if or-part_0
          or-part_0
          (let ((or-part_1 (char-numeric? c_0)))
            (if or-part_1
              or-part_1
              (let ((or-part_2 (char=? '#\x2d c_0)))
                (if or-part_2
                  or-part_2
                  (let ((or-part_3 (char=? '#\x2b c_0)))
                    (if or-part_3 or-part_3 (char=? '#\x5f c_0)))))))))
      #f)))
(define read-extension-prefix
  (lambda (already_0 wanted_0 in_0 config_0)
    (let ((accum-str_0 (accum-string-init! config_0)))
      (begin
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((c_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (begin
                          (accum-string-add! accum-str_0 c_0)
                          (for-loop_0 rest_0))))
                    (values)))))))
           (for-loop_0 already_0)))
        (void)
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (wanted_1)
              (begin
                (if (null? wanted_1)
                  (void)
                  (let ((c_0
                         (let ((source_0
                                (begin-unsafe
                                 (read-config/inner-source
                                  (read-config/outer-inner config_0)))))
                           (read-char-or-special in_0 special1.1 source_0))))
                    (begin
                      (if (char? c_0)
                        (accum-string-add! accum-str_0 c_0)
                        (void))
                      (if (eqv? c_0 (car wanted_1))
                        (void)
                        (let ((temp121_0
                               (accum-string-get!.1 0 accum-str_0 config_0)))
                          (bad-syntax-error.1 c_0 in_0 config_0 temp121_0)))
                      (loop_0 (cdr wanted_1))))))))))
         (loop_0 wanted_0))
        (accum-string-get!.1 0 accum-str_0 config_0)))))
(define read-extension.1
  (|#%name|
   read-extension
   (lambda (get-info?30_0
            mod-path-wrapped29_0
            try-first-mod-path28_0
            who31_0
            mod-path-datum36_0
            read-recur37_0
            in38_0
            config39_0)
     (begin
       (let ((mod-path-wrapped_0
              (if (eq? mod-path-wrapped29_0 unsafe-undefined)
                (|#%app|
                 (begin-unsafe
                  (read-config/inner-coerce
                   (read-config/outer-inner config39_0)))
                 #t
                 mod-path-datum36_0
                 (port+config->srcloc.1 #f in38_0 config39_0))
                mod-path-wrapped29_0)))
         (begin
           (force-parameters! config39_0)
           (let ((guard_0 (1/current-reader-guard)))
             (let ((mod-path_0
                    (let ((or-part_0
                           (if try-first-mod-path28_0
                             (let ((mod-path_0
                                    (|#%app| guard_0 try-first-mod-path28_0)))
                               (if (|#%app|
                                    (begin-unsafe
                                     (read-config/inner-module-declared?
                                      (read-config/outer-inner config39_0)))
                                    try-first-mod-path28_0)
                                 mod-path_0
                                 #f))
                             #f)))
                      (if or-part_0
                        or-part_0
                        (|#%app| guard_0 mod-path-datum36_0)))))
               (|#%app|
                (begin-unsafe
                 (read-config/inner-call-with-root-namespace
                  (read-config/outer-inner config39_0)))
                (lambda ()
                  (let ((for-syntax?_0
                         (begin-unsafe
                          (read-config/inner-for-syntax?
                           (read-config/outer-inner config39_0)))))
                    (let ((dynamic-require_0
                           (begin-unsafe
                            (read-config/inner-dynamic-require
                             (read-config/outer-inner config39_0)))))
                      (let ((no-value_0 (gensym)))
                        (let ((extension_0
                               (if get-info?30_0
                                 (|#%app|
                                  dynamic-require_0
                                  mod-path_0
                                  'get-info
                                  (lambda () no-value_0))
                                 (|#%app|
                                  dynamic-require_0
                                  mod-path_0
                                  (if for-syntax?_0 'read-syntax 'read)))))
                          (if (eq? extension_0 no-value_0)
                            #f
                            (let ((result-v_0
                                   (if (if for-syntax?_0
                                         (not get-info?30_0)
                                         #f)
                                     (if (procedure-arity-includes?
                                          extension_0
                                          6)
                                       (with-continuation-mark*
                                        push-authentic
                                        current-read-config
                                        config39_0
                                        (|#%app|
                                         extension_0
                                         (begin-unsafe
                                          (read-config/inner-source
                                           (read-config/outer-inner
                                            config39_0)))
                                         in38_0
                                         mod-path-wrapped_0
                                         (begin-unsafe
                                          (read-config/outer-line config39_0))
                                         (begin-unsafe
                                          (read-config/outer-col config39_0))
                                         (begin-unsafe
                                          (read-config/outer-pos config39_0))))
                                       (if (procedure-arity-includes?
                                            extension_0
                                            2)
                                         (with-continuation-mark*
                                          push-authentic
                                          current-read-config
                                          config39_0
                                          (|#%app|
                                           extension_0
                                           (begin-unsafe
                                            (read-config/inner-source
                                             (read-config/outer-inner
                                              config39_0)))
                                           in38_0))
                                         (raise-argument-error
                                          who31_0
                                          "(or/c (procedure-arity-includes?/c 2) (procedure-arity-includes?/c 6))"
                                          extension_0)))
                                     (if (procedure-arity-includes?
                                          extension_0
                                          5)
                                       (with-continuation-mark*
                                        push-authentic
                                        current-read-config
                                        config39_0
                                        (|#%app|
                                         extension_0
                                         in38_0
                                         mod-path-wrapped_0
                                         (begin-unsafe
                                          (read-config/outer-line config39_0))
                                         (begin-unsafe
                                          (read-config/outer-col config39_0))
                                         (begin-unsafe
                                          (read-config/outer-pos config39_0))))
                                       (if get-info?30_0
                                         (raise-argument-error
                                          who31_0
                                          "(procedure-arity-includes?/c 5)"
                                          extension_0)
                                         (if (procedure-arity-includes?
                                              extension_0
                                              1)
                                           (with-continuation-mark*
                                            push-authentic
                                            current-read-config
                                            config39_0
                                            (|#%app| extension_0 in38_0))
                                           (raise-argument-error
                                            who31_0
                                            "(or/c (procedure-arity-includes?/c 1) (procedure-arity-includes?/c 5))"
                                            extension_0)))))))
                              (if get-info?30_0
                                (begin
                                  (if (if (procedure? result-v_0)
                                        (procedure-arity-includes?
                                         result-v_0
                                         2)
                                        #f)
                                    (void)
                                    (raise-result-error
                                     'read-language
                                     "(procedure-arity-includes?/c 2)"
                                     result-v_0))
                                  result-v_0)
                                (if (1/special-comment? result-v_0)
                                  (|#%app| read-recur37_0 #f in38_0 config39_0)
                                  (coerce
                                   result-v_0
                                   in38_0
                                   config39_0)))))))))))))))))))
(define read-language/get-info
  (lambda (read-one_0 in_0 config_0 fail-k_0)
    (let ((c_0
           (read-char/skip-whitespace-and-comments
            #f
            read-one_0
            in_0
            config_0)))
      (call-with-values
       (lambda () (port-next-location* in_0 c_0))
       (case-lambda
        ((line_0 col_0 pos_0)
         (let ((l-config_0
                (override-parameter
                 1/read-accept-reader
                 (reading-at config_0 line_0 col_0 pos_0)
                 #t)))
           (if (not (eqv? c_0 '#\x23))
             (if (special-comment-via-readtable? c_0 read-one_0 in_0 config_0)
               (read-language/get-info read-one_0 in_0 config_0 fail-k_0)
               (if fail-k_0
                 (|#%app| fail-k_0)
                 (lang-error in_0 l-config_0 "" c_0)))
             (let ((c2_0
                    (let ((source_0
                           (begin-unsafe
                            (read-config/inner-source
                             (read-config/outer-inner l-config_0)))))
                      (read-char-or-special in_0 special1.1 source_0))))
               (if (eqv? c2_0 '#\x6c)
                 (read-extension-lang.1 #t read-one_0 c_0 in_0 l-config_0)
                 (if (eqv? c2_0 '#\x21)
                   (|read-extension-#!.1| #t read-one_0 c_0 in_0 l-config_0)
                   (if fail-k_0
                     (|#%app| fail-k_0)
                     (lang-error in_0 l-config_0 (string c_0) c2_0))))))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define lang-error
  (lambda (in_0 config_0 prefix_0 c_0)
    (let ((add-prefix_0
           (|#%name|
            add-prefix
            (lambda (s_0)
              (begin
                (if (string=? prefix_0 "")
                  (format "`~a` followed by ~a" prefix_0 s_0)
                  s_0))))))
      (let ((temp15_0
             (string-append
              "expected (after whitespace and comments) `#lang ` or `#!` followed"
              " immediately by a language name, found ~a")))
        (let ((temp16_0
               (if (eof-object? c_0)
                 (add-prefix_0 "end-of-file")
                 (if (not (char? c_0))
                   (add-prefix_0 "non-character")
                   (format "`~a~a`" prefix_0 c_0)))))
          (let ((temp15_1 temp15_0))
            (reader-error.1
             unsafe-undefined
             c_0
             #f
             'read-language
             in_0
             config_0
             temp15_1
             (list temp16_0))))))))
(define read.1
  (|#%name|
   read
   (lambda (call-with-root-namespace10_0
            coerce13_0
            coerce-key14_0
            dynamic-require11_0
            for-syntax?8_0
            init-c2_0
            keep-comment?15_0
            local-graph?6_0
            module-declared?12_0
            next-readtable3_0
            read-compiled9_0
            readtable4_0
            recursive?5_0
            source7_0
            wrap1_0
            in31_0)
     (begin
       (let ((next-readtable_0
              (if (eq? next-readtable3_0 unsafe-undefined)
                (1/current-readtable)
                next-readtable3_0)))
         (let ((readtable_0
                (if (eq? readtable4_0 unsafe-undefined)
                  next-readtable_0
                  readtable4_0)))
           (let ((keep-comment?_0
                  (if (eq? keep-comment?15_0 unsafe-undefined)
                    recursive?5_0
                    keep-comment?15_0)))
             (let ((config_0
                    (let ((c1_0 (if recursive?5_0 (current-read-config) #f)))
                      (if c1_0
                        (read-config-update.1
                         for-syntax?8_0
                         keep-comment?_0
                         next-readtable_0
                         readtable_0
                         local-graph?6_0
                         wrap1_0
                         c1_0)
                        (make-read-config.1
                         call-with-root-namespace10_0
                         coerce13_0
                         coerce-key14_0
                         dynamic-require11_0
                         for-syntax?8_0
                         keep-comment?_0
                         module-declared?12_0
                         next-readtable_0
                         read-compiled9_0
                         readtable_0
                         source7_0
                         wrap1_0)))))
               (let ((v_0 (read-one init-c2_0 in31_0 config_0)))
                 (if (if (let ((or-part_0 (not recursive?5_0)))
                           (if or-part_0 or-part_0 local-graph?6_0))
                       (read-config-state-graph
                        (begin-unsafe
                         (read-config/inner-st
                          (read-config/outer-inner config_0))))
                       #f)
                   (catch-and-reraise-as-reader/proc
                    #f
                    config_0
                    (lambda () (make-reader-graph v_0)))
                   (if (if recursive?5_0
                         (if (not local-graph?6_0)
                           (if (not for-syntax?8_0)
                             (if (not (eof-object? v_0))
                               (not (1/special-comment? v_0))
                               #f)
                             #f)
                           #f)
                         #f)
                     (begin (get-graph-hash config_0) v_0)
                     v_0)))))))))))
(define read-language.1
  (|#%name|
   read-language
   (lambda (call-with-root-namespace37_0
            coerce39_0
            coerce-key40_0
            dynamic-require36_0
            for-syntax?33_0
            module-declared?38_0
            read-compiled35_0
            wrap34_0
            in49_0
            fail-k50_0)
     (begin
       (let ((config_0
              (make-read-config.1
               call-with-root-namespace37_0
               coerce39_0
               coerce-key40_0
               dynamic-require36_0
               for-syntax?33_0
               #f
               module-declared?38_0
               #f
               read-compiled35_0
               #f
               #f
               wrap34_0)))
         (let ((l-config_0
                (override-parameter 1/read-accept-reader config_0 #f)))
           (read-language/get-info
            read-undotted
            in49_0
            config_0
            fail-k50_0)))))))
(define read-one
  (lambda (init-c_0 in_0 config_0)
    (if (not (check-parameter 1/read-cdot config_0))
      (read-undotted init-c_0 in_0 config_0)
      (if (check-parameter 1/read-cdot config_0)
        (call-with-values
         (lambda () (port-next-location in_0))
         (case-lambda
          ((line_0 col_0 pos_0)
           (let ((v_0 (read-undotted init-c_0 in_0 config_0)))
             (if (1/special-comment? v_0)
               v_0
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (v_1)
                     (begin
                       (let ((c_0
                              (let ((source_0
                                     (begin-unsafe
                                      (read-config/inner-source
                                       (read-config/outer-inner config_0)))))
                                (let ((c_0
                                       (peek-char-or-special
                                        in_0
                                        0
                                        'special
                                        source_0)))
                                  (if (eq? c_0 'special)
                                    (special1.1 'special)
                                    c_0)))))
                         (let ((ec_0 (effective-char c_0 config_0)))
                           (if (not (char? ec_0))
                             v_1
                             (if (char-whitespace? ec_0)
                               (begin
                                 (begin-unsafe (begin (read-char in_0) (void)))
                                 (loop_0 v_1))
                               (if (char=? ec_0 '#\x2e)
                                 (call-with-values
                                  (lambda () (port-next-location in_0))
                                  (case-lambda
                                   ((dot-line_0 dot-col_0 dot-pos_0)
                                    (begin
                                      (begin-unsafe
                                       (begin (read-char in_0) (void)))
                                      (let ((pos-config_0
                                             (reading-at
                                              config_0
                                              dot-line_0
                                              dot-col_0
                                              dot-pos_0)))
                                        (let ((cdot_0
                                               (wrap
                                                '|#%dot|
                                                in_0
                                                pos-config_0
                                                '#\x2e)))
                                          (let ((post-v_0
                                                 (read-undotted
                                                  #f
                                                  in_0
                                                  config_0)))
                                            (begin
                                              (if (eof-object? post-v_0)
                                                (let ((temp84_0
                                                       "expected a datum after cdot, found end-of-file"))
                                                  (reader-error.1
                                                   unsafe-undefined
                                                   eof
                                                   #f
                                                   unsafe-undefined
                                                   in_0
                                                   pos-config_0
                                                   temp84_0
                                                   (list)))
                                                (void))
                                              (loop_0
                                               (let ((app_0
                                                      (list
                                                       cdot_0
                                                       v_1
                                                       post-v_0)))
                                                 (wrap
                                                  app_0
                                                  in_0
                                                  (reading-at
                                                   config_0
                                                   line_0
                                                   col_0
                                                   pos_0)
                                                  '#\x2e)))))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args))))
                                 v_1))))))))))
                (loop_0 v_0)))))
          (args (raise-binding-result-arity-error 3 args))))
        (void)))))
(define read-undotted
  (lambda (init-c_0 in_0 config_0)
    (let ((c_0
           (read-char/skip-whitespace-and-comments
            init-c_0
            read-one
            in_0
            config_0)))
      (call-with-values
       (lambda () (port-next-location* in_0 c_0))
       (case-lambda
        ((line_0 col_0 pos_0)
         (if (eof-object? c_0)
           eof
           (if (not (char? c_0))
             (let ((v_0 (special-value c_0)))
               (if (1/special-comment? v_0)
                 (if (begin-unsafe (read-config/outer-keep-comment? config_0))
                   v_0
                   (read-undotted #f in_0 config_0))
                 (coerce v_0 in_0 (reading-at config_0 line_0 col_0 pos_0))))
             (let ((c2_0 (readtable-handler config_0 c_0)))
               (if c2_0
                 (let ((v_0
                        (readtable-apply
                         c2_0
                         c_0
                         in_0
                         config_0
                         line_0
                         col_0
                         pos_0)))
                   (retry-special-comment v_0 in_0 config_0))
                 (let ((ec_0 (effective-char c_0 config_0)))
                   (begin
                     (if (not (char-closer? ec_0 config_0))
                       (track-indentation! config_0 line_0 col_0)
                       (void))
                     (let ((r-config_0
                            (reading-at
                             (discard-comment config_0)
                             line_0
                             col_0
                             pos_0)))
                       (let ((index_0
                              (if (char? ec_0)
                                (let ((codepoint_0 (char->integer ec_0)))
                                  (if (if (unsafe-fx>= codepoint_0 34)
                                        (unsafe-fx< codepoint_0 126)
                                        #f)
                                    (if (unsafe-fx< codepoint_0 91)
                                      (if (unsafe-fx< codepoint_0 40)
                                        (let ((tbl_0 '#(11 1 0 0 0 2)))
                                          (unsafe-vector*-ref
                                           tbl_0
                                           (unsafe-fx- codepoint_0 34)))
                                        (if (unsafe-fx< codepoint_0 42)
                                          (let ((tbl_0 '#(5 6)))
                                            (unsafe-vector*-ref
                                             tbl_0
                                             (unsafe-fx- codepoint_0 40)))
                                          (if (unsafe-fx< codepoint_0 44)
                                            0
                                            (if (unsafe-fx< codepoint_0 45)
                                              4
                                              0))))
                                      (let ((tbl_0
                                             '#(7
                                                0
                                                8
                                                0
                                                0
                                                3
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                0
                                                9
                                                12
                                                10)))
                                        (unsafe-vector*-ref
                                         tbl_0
                                         (unsafe-fx- codepoint_0 91))))
                                    0))
                                0)))
                         (if (unsafe-fx< index_0 6)
                           (if (unsafe-fx< index_0 2)
                             (if (unsafe-fx< index_0 1)
                               (let ((v_0
                                      (let ((temp88_0
                                             (if (let ((or-part_0
                                                        (eq? c_0 ec_0)))
                                                   (if or-part_0
                                                     or-part_0
                                                     (if (<
                                                          (char->integer ec_0)
                                                          128)
                                                       (char-numeric? ec_0)
                                                       #f)))
                                               'symbol-or-number
                                               'symbol/indirect)))
                                        (read-symbol-or-number.1
                                         #f
                                         temp88_0
                                         c_0
                                         in_0
                                         r-config_0))))
                                 (retry-special-comment v_0 in_0 config_0))
                               (read-dispatch c_0 in_0 r-config_0 config_0))
                             (if (unsafe-fx< index_0 3)
                               (read-quote
                                read-one
                                'quote
                                "quoting \"'\""
                                c_0
                                in_0
                                r-config_0)
                               (if (unsafe-fx< index_0 4)
                                 (if (check-parameter
                                      1/read-accept-quasiquote
                                      config_0)
                                   (read-quote
                                    read-one
                                    'quasiquote
                                    "quasiquoting \"`\""
                                    c_0
                                    in_0
                                    r-config_0)
                                   (let ((temp91_0 "illegal use of `~a`"))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      r-config_0
                                      temp91_0
                                      (list c_0))))
                                 (if (unsafe-fx< index_0 5)
                                   (if (check-parameter
                                        1/read-accept-quasiquote
                                        config_0)
                                     (let ((c2_1
                                            (let ((source_0
                                                   (begin-unsafe
                                                    (read-config/inner-source
                                                     (read-config/outer-inner
                                                      config_0)))))
                                              (let ((c_1
                                                     (peek-char-or-special
                                                      in_0
                                                      0
                                                      'special
                                                      source_0)))
                                                (if (eq? c_1 'special)
                                                  (special1.1 'special)
                                                  c_1)))))
                                       (if (eqv? c2_1 '#\x40)
                                         (begin
                                           (begin-unsafe
                                            (begin (read-char in_0) (void)))
                                           (read-quote
                                            read-one
                                            'unquote-splicing
                                            "unquoting `,@`"
                                            c_0
                                            in_0
                                            r-config_0))
                                         (read-quote
                                          read-one
                                          'unquote
                                          "unquoting `,`"
                                          c_0
                                          in_0
                                          r-config_0)))
                                     (let ((temp95_0 "illegal use of `~a`"))
                                       (reader-error.1
                                        unsafe-undefined
                                        '#\x78
                                        #f
                                        unsafe-undefined
                                        in_0
                                        r-config_0
                                        temp95_0
                                        (list c_0))))
                                   (wrap
                                    (read-unwrapped-sequence.1
                                     'all
                                     unsafe-undefined
                                     unsafe-undefined
                                     #t
                                     unsafe-undefined
                                     read-one
                                     ec_0
                                     '#\x28
                                     '#\x29
                                     in_0
                                     r-config_0)
                                    in_0
                                    r-config_0
                                    ec_0)))))
                           (if (unsafe-fx< index_0 9)
                             (if (unsafe-fx< index_0 7)
                               (let ((temp106_0 "~a"))
                                 (let ((temp107_0
                                        (indentation-unexpected-closer-message
                                         ec_0
                                         c_0
                                         r-config_0)))
                                   (let ((temp106_1 temp106_0))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      r-config_0
                                      temp106_1
                                      (list temp107_0)))))
                               (if (unsafe-fx< index_0 8)
                                 (if (let ((or-part_0
                                            (check-parameter
                                             1/read-square-bracket-as-paren
                                             config_0)))
                                       (if or-part_0
                                         or-part_0
                                         (check-parameter
                                          1/read-square-bracket-with-tag
                                          config_0)))
                                   (wrap
                                    (read-unwrapped-sequence.1
                                     'all
                                     unsafe-undefined
                                     unsafe-undefined
                                     #t
                                     unsafe-undefined
                                     read-one
                                     ec_0
                                     '#\x5b
                                     '#\x5d
                                     in_0
                                     r-config_0)
                                    in_0
                                    r-config_0
                                    ec_0)
                                   (let ((temp117_0 "illegal use of `~a`"))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      r-config_0
                                      temp117_0
                                      (list c_0))))
                                 (if (let ((or-part_0
                                            (check-parameter
                                             1/read-square-bracket-as-paren
                                             config_0)))
                                       (if or-part_0
                                         or-part_0
                                         (check-parameter
                                          1/read-square-bracket-with-tag
                                          config_0)))
                                   (let ((temp121_0 "~a"))
                                     (let ((temp122_0
                                            (indentation-unexpected-closer-message
                                             ec_0
                                             c_0
                                             r-config_0)))
                                       (let ((temp121_1 temp121_0))
                                         (reader-error.1
                                          unsafe-undefined
                                          '#\x78
                                          #f
                                          unsafe-undefined
                                          in_0
                                          r-config_0
                                          temp121_1
                                          (list temp122_0)))))
                                   (let ((temp125_0 "illegal use of `~a`"))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      r-config_0
                                      temp125_0
                                      (list c_0))))))
                             (if (unsafe-fx< index_0 10)
                               (if (let ((or-part_0
                                          (check-parameter
                                           1/read-curly-brace-as-paren
                                           config_0)))
                                     (if or-part_0
                                       or-part_0
                                       (check-parameter
                                        1/read-curly-brace-with-tag
                                        config_0)))
                                 (wrap
                                  (read-unwrapped-sequence.1
                                   'all
                                   unsafe-undefined
                                   unsafe-undefined
                                   #t
                                   unsafe-undefined
                                   read-one
                                   ec_0
                                   '#\x7b
                                   '#\x7d
                                   in_0
                                   r-config_0)
                                  in_0
                                  r-config_0
                                  ec_0)
                                 (let ((temp136_0 "illegal use of `~a`"))
                                   (reader-error.1
                                    unsafe-undefined
                                    '#\x78
                                    #f
                                    unsafe-undefined
                                    in_0
                                    r-config_0
                                    temp136_0
                                    (list c_0))))
                               (if (unsafe-fx< index_0 11)
                                 (if (let ((or-part_0
                                            (check-parameter
                                             1/read-curly-brace-as-paren
                                             config_0)))
                                       (if or-part_0
                                         or-part_0
                                         (check-parameter
                                          1/read-curly-brace-with-tag
                                          config_0)))
                                   (let ((temp140_0 "~a"))
                                     (let ((temp141_0
                                            (indentation-unexpected-closer-message
                                             ec_0
                                             c_0
                                             r-config_0)))
                                       (let ((temp140_1 temp140_0))
                                         (reader-error.1
                                          unsafe-undefined
                                          '#\x78
                                          #f
                                          unsafe-undefined
                                          in_0
                                          r-config_0
                                          temp140_1
                                          (list temp141_0)))))
                                   (let ((temp144_0 "illegal use of `~a`"))
                                     (reader-error.1
                                      unsafe-undefined
                                      '#\x78
                                      #f
                                      unsafe-undefined
                                      in_0
                                      r-config_0
                                      temp144_0
                                      (list c_0))))
                                 (if (unsafe-fx< index_0 12)
                                   (read-string.1 'string in_0 r-config_0)
                                   (read-symbol-or-number.1
                                    #f
                                    'symbol
                                    c_0
                                    in_0
                                    r-config_0)))))))))))))))
        (args (raise-binding-result-arity-error 3 args)))))))
(define read-dispatch
  (lambda (dispatch-c_0 in_0 config_0 orig-config_0)
    (let ((c_0
           (let ((source_0
                  (begin-unsafe
                   (read-config/inner-source
                    (read-config/outer-inner config_0)))))
             (read-char-or-special in_0 special1.1 source_0))))
      (if (eof-object? c_0)
        (let ((temp155_0 "bad syntax `~a`"))
          (reader-error.1
           unsafe-undefined
           c_0
           #f
           unsafe-undefined
           in_0
           config_0
           temp155_0
           (list dispatch-c_0)))
        (if (not (char? c_0))
          (let ((temp160_0 "bad syntax `~a`"))
            (reader-error.1
             unsafe-undefined
             c_0
             #f
             unsafe-undefined
             in_0
             config_0
             temp160_0
             (list dispatch-c_0)))
          (let ((c3_0 (readtable-dispatch-handler orig-config_0 c_0)))
            (if c3_0
              (let ((line_0 (begin-unsafe (read-config/outer-line config_0))))
                (let ((col_0 (begin-unsafe (read-config/outer-col config_0))))
                  (let ((pos_0
                         (begin-unsafe (read-config/outer-pos config_0))))
                    (let ((v_0
                           (readtable-apply
                            c3_0
                            c_0
                            in_0
                            config_0
                            line_0
                            col_0
                            pos_0)))
                      (retry-special-comment v_0 in_0 orig-config_0)))))
              (let ((index_0
                     (if (char? c_0)
                       (let ((codepoint_0 (char->integer c_0)))
                         (if (if (unsafe-fx>= codepoint_0 33)
                               (unsafe-fx< codepoint_0 127)
                               #f)
                           (let ((tbl_0
                                  '#(34
                                     11
                                     0
                                     0
                                     13
                                     6
                                     7
                                     2
                                     0
                                     0
                                     0
                                     9
                                     0
                                     0
                                     0
                                     1
                                     1
                                     1
                                     1
                                     1
                                     1
                                     1
                                     1
                                     1
                                     1
                                     14
                                     0
                                     12
                                     0
                                     0
                                     0
                                     0
                                     0
                                     22
                                     29
                                     25
                                     18
                                     16
                                     0
                                     30
                                     20
                                     0
                                     0
                                     0
                                     0
                                     0
                                     24
                                     0
                                     0
                                     0
                                     0
                                     15
                                     0
                                     0
                                     0
                                     28
                                     0
                                     0
                                     3
                                     10
                                     0
                                     0
                                     0
                                     8
                                     0
                                     26
                                     29
                                     21
                                     17
                                     16
                                     0
                                     30
                                     19
                                     0
                                     0
                                     33
                                     0
                                     0
                                     23
                                     32
                                     0
                                     31
                                     5
                                     15
                                     0
                                     0
                                     0
                                     27
                                     0
                                     0
                                     4
                                     0
                                     0
                                     35)))
                             (unsafe-vector*-ref
                              tbl_0
                              (unsafe-fx- codepoint_0 33)))
                           0))
                       0)))
                (if (unsafe-fx< index_0 17)
                  (if (unsafe-fx< index_0 8)
                    (if (unsafe-fx< index_0 3)
                      (if (unsafe-fx< index_0 1)
                        (let ((temp164_0 "bad syntax `~a~a`"))
                          (reader-error.1
                           unsafe-undefined
                           '#\x78
                           #f
                           unsafe-undefined
                           in_0
                           config_0
                           temp164_0
                           (list dispatch-c_0 c_0)))
                        (if (unsafe-fx< index_0 2)
                          (read-vector-or-graph
                           read-one
                           dispatch-c_0
                           c_0
                           in_0
                           config_0)
                          (read-vector.1
                           #f
                           'any
                           read-one
                           '#\x28
                           '#\x28
                           '#\x29
                           in_0
                           config_0)))
                      (if (unsafe-fx< index_0 5)
                        (if (unsafe-fx< index_0 4)
                          (if (check-parameter
                               1/read-square-bracket-as-paren
                               config_0)
                            (read-vector.1
                             #f
                             'any
                             read-one
                             '#\x5b
                             '#\x5b
                             '#\x5d
                             in_0
                             config_0)
                            (let ((temp181_0 (format "~a~a" dispatch-c_0 c_0)))
                              (bad-syntax-error.1
                               '#\x78
                               in_0
                               config_0
                               temp181_0)))
                          (if (check-parameter
                               1/read-curly-brace-as-paren
                               config_0)
                            (read-vector.1
                             #f
                             'any
                             read-one
                             '#\x7b
                             '#\x7b
                             '#\x7d
                             in_0
                             config_0)
                            (let ((temp190_0 (format "~a~a" dispatch-c_0 c_0)))
                              (bad-syntax-error.1
                               '#\x78
                               in_0
                               config_0
                               temp190_0))))
                        (if (unsafe-fx< index_0 6)
                          (read-struct read-one dispatch-c_0 in_0 config_0)
                          (if (unsafe-fx< index_0 7)
                            (read-box read-one dispatch-c_0 in_0 config_0)
                            (read-quote
                             read-one
                             'syntax
                             "quoting #'"
                             c_0
                             in_0
                             config_0)))))
                    (if (unsafe-fx< index_0 12)
                      (if (unsafe-fx< index_0 9)
                        (read-quote
                         read-one
                         'quasisyntax
                         "quasiquoting #`"
                         c_0
                         in_0
                         config_0)
                        (if (unsafe-fx< index_0 10)
                          (let ((c2_0
                                 (let ((source_0
                                        (begin-unsafe
                                         (read-config/inner-source
                                          (read-config/outer-inner
                                           config_0)))))
                                   (let ((c_1
                                          (peek-char-or-special
                                           in_0
                                           0
                                           'special
                                           source_0)))
                                     (if (eq? c_1 'special)
                                       (special1.1 'special)
                                       c_1)))))
                            (if (eqv? c2_0 '#\x40)
                              (begin
                                (begin-unsafe (begin (read-char in_0) (void)))
                                (read-quote
                                 read-one
                                 'unsyntax-splicing
                                 "unquoting #,@"
                                 c_0
                                 in_0
                                 config_0))
                              (read-quote
                               read-one
                               'unsyntax
                               "unquoting #,"
                               c_0
                               in_0
                               config_0)))
                          (if (unsafe-fx< index_0 11)
                            (read-character in_0 config_0)
                            (read-string.1 '|byte string| in_0 config_0))))
                      (if (unsafe-fx< index_0 14)
                        (if (unsafe-fx< index_0 13)
                          (let ((c2_0
                                 (let ((source_0
                                        (begin-unsafe
                                         (read-config/inner-source
                                          (read-config/outer-inner
                                           config_0)))))
                                   (let ((c_1
                                          (peek-char-or-special
                                           in_0
                                           0
                                           'special
                                           source_0)))
                                     (if (eq? c_1 'special)
                                       (special1.1 'special)
                                       c_1)))))
                            (if (eqv? '#\x3c c2_0)
                              (begin
                                (begin-unsafe (begin (read-char in_0) (void)))
                                (read-here-string in_0 config_0))
                              (let ((temp197_0 "bad syntax `~a<`"))
                                (reader-error.1
                                 unsafe-undefined
                                 c2_0
                                 #f
                                 unsafe-undefined
                                 in_0
                                 config_0
                                 temp197_0
                                 (list dispatch-c_0)))))
                          (read-symbol-or-number.1
                           dispatch-c_0
                           'symbol
                           c_0
                           in_0
                           config_0))
                        (if (unsafe-fx< index_0 15)
                          (read-symbol-or-number.1
                           #f
                           'keyword
                           #f
                           in_0
                           config_0)
                          (if (unsafe-fx< index_0 16)
                            (let ((c2_0
                                   (let ((source_0
                                          (begin-unsafe
                                           (read-config/inner-source
                                            (read-config/outer-inner
                                             config_0)))))
                                     (let ((c_1
                                            (peek-char-or-special
                                             in_0
                                             0
                                             'special
                                             source_0)))
                                       (if (eq? c_1 'special)
                                         (special1.1 'special)
                                         c_1)))))
                              (if (begin-unsafe
                                   (readtable-char-delimiter?
                                    (begin-unsafe
                                     (read-config/inner-readtable
                                      (read-config/outer-inner config_0)))
                                    c2_0
                                    config_0))
                                (wrap #t in_0 config_0 c_0)
                                (read-delimited-constant
                                 c_0
                                 (char=? c_0 '#\x74)
                                 '(#\x72 #\x75 #\x65)
                                 #t
                                 in_0
                                 config_0)))
                            (let ((c2_0
                                   (let ((source_0
                                          (begin-unsafe
                                           (read-config/inner-source
                                            (read-config/outer-inner
                                             config_0)))))
                                     (let ((c_1
                                            (peek-char-or-special
                                             in_0
                                             0
                                             'special
                                             source_0)))
                                       (if (eq? c_1 'special)
                                         (special1.1 'special)
                                         c_1)))))
                              (if (begin-unsafe
                                   (readtable-char-delimiter?
                                    (begin-unsafe
                                     (read-config/inner-readtable
                                      (read-config/outer-inner config_0)))
                                    c2_0
                                    config_0))
                                (wrap #f in_0 config_0 c_0)
                                (if (let ((or-part_0 (char=? c2_0 '#\x78)))
                                      (if or-part_0
                                        or-part_0
                                        (char=? c2_0 '#\x6c)))
                                  (read-fixnum-or-flonum-vector
                                   read-one
                                   dispatch-c_0
                                   c_0
                                   c2_0
                                   in_0
                                   config_0)
                                  (read-delimited-constant
                                   c_0
                                   (char=? c_0 '#\x66)
                                   '(#\x61 #\x6c #\x73 #\x65)
                                   #f
                                   in_0
                                   config_0)))))))))
                  (if (unsafe-fx< index_0 26)
                    (if (unsafe-fx< index_0 21)
                      (if (unsafe-fx< index_0 18)
                        (let ((temp211_0 "#e"))
                          (read-symbol-or-number.1
                           #f
                           temp211_0
                           #f
                           in_0
                           config_0))
                        (if (unsafe-fx< index_0 19)
                          (let ((temp215_0 "#E"))
                            (read-symbol-or-number.1
                             #f
                             temp215_0
                             #f
                             in_0
                             config_0))
                          (if (unsafe-fx< index_0 20)
                            (let ((temp219_0 "#i"))
                              (read-symbol-or-number.1
                               #f
                               temp219_0
                               #f
                               in_0
                               config_0))
                            (let ((temp223_0 "#I"))
                              (read-symbol-or-number.1
                               #f
                               temp223_0
                               #f
                               in_0
                               config_0)))))
                      (if (unsafe-fx< index_0 23)
                        (if (unsafe-fx< index_0 22)
                          (let ((temp227_0 "#d"))
                            (read-symbol-or-number.1
                             #f
                             temp227_0
                             #f
                             in_0
                             config_0))
                          (let ((temp231_0 "#B"))
                            (read-symbol-or-number.1
                             #f
                             temp231_0
                             #f
                             in_0
                             config_0)))
                        (if (unsafe-fx< index_0 24)
                          (let ((temp235_0 "#o"))
                            (read-symbol-or-number.1
                             #f
                             temp235_0
                             #f
                             in_0
                             config_0))
                          (if (unsafe-fx< index_0 25)
                            (let ((temp239_0 "#O"))
                              (read-symbol-or-number.1
                               #f
                               temp239_0
                               #f
                               in_0
                               config_0))
                            (let ((temp243_0 "#D"))
                              (read-symbol-or-number.1
                               #f
                               temp243_0
                               #f
                               in_0
                               config_0))))))
                    (if (unsafe-fx< index_0 30)
                      (if (unsafe-fx< index_0 27)
                        (let ((temp247_0 "#b"))
                          (read-symbol-or-number.1
                           #f
                           temp247_0
                           #f
                           in_0
                           config_0))
                        (if (unsafe-fx< index_0 28)
                          (let ((temp251_0 "#x"))
                            (read-symbol-or-number.1
                             #f
                             temp251_0
                             #f
                             in_0
                             config_0))
                          (if (unsafe-fx< index_0 29)
                            (let ((temp255_0 "#X"))
                              (read-symbol-or-number.1
                               #f
                               temp255_0
                               #f
                               in_0
                               config_0))
                            (let ((c2_0
                                   (let ((source_0
                                          (begin-unsafe
                                           (read-config/inner-source
                                            (read-config/outer-inner
                                             config_0)))))
                                     (read-char-or-special
                                      in_0
                                      special1.1
                                      source_0))))
                              (if (if (eqv? c2_0 '#\x73) #t (eqv? c2_0 '#\x53))
                                (read-one
                                 #f
                                 in_0
                                 (override-parameter
                                  read-case-sensitive
                                  config_0
                                  #t))
                                (if (if (eqv? c2_0 '#\x69)
                                      #t
                                      (eqv? c2_0 '#\x49))
                                  (read-one
                                   #f
                                   in_0
                                   (override-parameter
                                    read-case-sensitive
                                    config_0
                                    #f))
                                  (let ((temp259_0
                                         "expected `s', `S`, `i`, or `I` after `~a~a`"))
                                    (reader-error.1
                                     unsafe-undefined
                                     c2_0
                                     #f
                                     unsafe-undefined
                                     in_0
                                     config_0
                                     temp259_0
                                     (list dispatch-c_0 c_0)))))))))
                      (if (unsafe-fx< index_0 32)
                        (if (unsafe-fx< index_0 31)
                          (read-hash read-one dispatch-c_0 c_0 in_0 config_0)
                          (let ((accum-str_0 (accum-string-init! config_0)))
                            (begin
                              (accum-string-add! accum-str_0 dispatch-c_0)
                              (begin
                                (accum-string-add! accum-str_0 c_0)
                                (let ((c2_0
                                       (let ((source_0
                                              (begin-unsafe
                                               (read-config/inner-source
                                                (read-config/outer-inner
                                                 config_0)))))
                                         (read-char-or-special
                                          in_0
                                          special1.1
                                          source_0))))
                                  (begin
                                    (if (char? c2_0)
                                      (accum-string-add! accum-str_0 c2_0)
                                      (void))
                                    (if (eqv? c2_0 '#\x78)
                                      (read-regexp
                                       c_0
                                       accum-str_0
                                       in_0
                                       config_0)
                                      (if (eqv? c2_0 '#\x65)
                                        (read-extension-reader
                                         read-one
                                         read-undotted
                                         dispatch-c_0
                                         in_0
                                         config_0)
                                        (let ((temp265_0
                                               (accum-string-get!.1
                                                0
                                                accum-str_0
                                                config_0)))
                                          (bad-syntax-error.1
                                           c2_0
                                           in_0
                                           config_0
                                           temp265_0))))))))))
                        (if (unsafe-fx< index_0 33)
                          (let ((accum-str_0 (accum-string-init! config_0)))
                            (begin
                              (accum-string-add! accum-str_0 dispatch-c_0)
                              (begin
                                (accum-string-add! accum-str_0 c_0)
                                (let ((c2_0
                                       (let ((source_0
                                              (begin-unsafe
                                               (read-config/inner-source
                                                (read-config/outer-inner
                                                 config_0)))))
                                         (read-char-or-special
                                          in_0
                                          special1.1
                                          source_0))))
                                  (begin
                                    (if (char? c2_0)
                                      (accum-string-add! accum-str_0 c2_0)
                                      (void))
                                    (if (eqv? c2_0 '#\x78)
                                      (read-regexp
                                       c_0
                                       accum-str_0
                                       in_0
                                       config_0)
                                      (let ((temp271_0
                                             (accum-string-get!.1
                                              0
                                              accum-str_0
                                              config_0)))
                                        (bad-syntax-error.1
                                         c2_0
                                         in_0
                                         config_0
                                         temp271_0))))))))
                          (if (unsafe-fx< index_0 34)
                            (read-extension-lang.1
                             #f
                             read-undotted
                             dispatch-c_0
                             in_0
                             config_0)
                            (if (unsafe-fx< index_0 35)
                              (|read-extension-#!.1|
                               #f
                               read-undotted
                               dispatch-c_0
                               in_0
                               config_0)
                              (if (check-parameter
                                   1/read-accept-compiled
                                   config_0)
                                (wrap
                                 (|#%app|
                                  (begin-unsafe
                                   (read-config/inner-read-compiled
                                    (read-config/outer-inner config_0)))
                                  in_0)
                                 in_0
                                 config_0
                                 c_0)
                                (let ((temp284_0
                                       "`~a~~` compiled expressions not enabled"))
                                  (reader-error.1
                                   unsafe-undefined
                                   '#\x78
                                   #f
                                   unsafe-undefined
                                   in_0
                                   config_0
                                   temp284_0
                                   (list dispatch-c_0)))))))))))))))))))
(define retry-special-comment
  (lambda (v_0 in_0 config_0)
    (if (1/special-comment? v_0)
      (if (begin-unsafe (read-config/outer-keep-comment? config_0))
        v_0
        (read-undotted #f in_0 config_0))
      v_0)))
(define 1/module-declared?
  (let ((module-declared?_0
         (|#%name|
          module-declared?
          (lambda (mod2_0 load?1_0)
            (begin
              (begin
                (if (module-reference? mod2_0)
                  (void)
                  (raise-argument-error
                   'module-declared?
                   module-reference-str
                   mod2_0))
                (let ((ns_0 (1/current-namespace)))
                  (let ((name_0
                         (reference->resolved-module-path.1 load?1_0 mod2_0)))
                    (if (namespace->module ns_0 name_0) #t #f)))))))))
    (|#%name|
     module-declared?
     (case-lambda
      ((mod_0) (begin (module-declared?_0 mod_0 #f)))
      ((mod_0 load?1_0) (module-declared?_0 mod_0 load?1_0))))))
(define 1/module-predefined?
  (|#%name|
   module-predefined?
   (lambda (mod_0)
     (begin
       (begin
         (if (module-reference? mod_0)
           (void)
           (raise-argument-error
            'module-predefined?
            module-reference-str
            mod_0))
         (let ((ns_0 (1/current-namespace)))
           (let ((name_0 (reference->resolved-module-path.1 #f mod_0)))
             (let ((m_0 (namespace->module ns_0 name_0)))
               (if m_0 (module-is-predefined? m_0) #f)))))))))
(define module->.1
  (|#%name|
   module->
   (lambda (extra-checks3_0 extract6_0 who7_0 mod8_0 load?5_0)
     (begin
       (begin
         (if (module-reference? mod8_0)
           (void)
           (raise-argument-error who7_0 module-reference-str mod8_0))
         (begin
           (|#%app| extra-checks3_0)
           (let ((m_0
                  (let ((app_0 (1/current-namespace)))
                    (namespace->module/complain
                     who7_0
                     app_0
                     (reference->resolved-module-path.1 load?5_0 mod8_0)))))
             (|#%app| extract6_0 m_0))))))))
(define 1/module->language-info
  (let ((module->language-info_0
         (|#%name|
          module->language-info
          (lambda (mod11_0 load?10_0)
            (begin
              (module->.1
               void
               module-language-info
               'module->language-info
               mod11_0
               load?10_0))))))
    (|#%name|
     module->language-info
     (case-lambda
      ((mod_0) (begin (module->language-info_0 mod_0 #f)))
      ((mod_0 load?10_0) (module->language-info_0 mod_0 load?10_0))))))
(define 1/module->imports
  (|#%name|
   module->imports
   (lambda (mod_0)
     (begin (module->.1 void module-requires 'module->imports mod_0 #f)))))
(define 1/module->exports
  (let ((module->exports_0
         (|#%name|
          module->exports
          (lambda (mod13_0 verbosity12_0)
            (begin
              (call-with-values
               (lambda ()
                 (let ((temp41_0
                        (lambda (m_0)
                          (values (module-provides m_0) (module-self m_0)))))
                   (let ((temp44_0
                          (lambda ()
                            (check-provides-verbosity
                             'module->exports
                             verbosity12_0))))
                     (module->.1
                      temp44_0
                      temp41_0
                      'module->exports
                      mod13_0
                      #f))))
               (case-lambda
                ((provides_0 self_0)
                 (provides->api-provides provides_0 self_0 verbosity12_0))
                (args (raise-binding-result-arity-error 2 args)))))))))
    (|#%name|
     module->exports
     (case-lambda
      ((mod_0) (begin (module->exports_0 mod_0 #f)))
      ((mod_0 verbosity12_0) (module->exports_0 mod_0 verbosity12_0))))))
(define 1/module->indirect-exports
  (|#%name|
   module->indirect-exports
   (lambda (mod_0)
     (begin
       (let ((temp46_0
              (lambda (m_0)
                (variables->api-nonprovides
                 (module-provides m_0)
                 (|#%app| (module-get-all-variables m_0))))))
         (module->.1 void temp46_0 'module->indirect-exports mod_0 #f))))))
(define 1/module-provide-protected?
  (|#%name|
   module-provide-protected?
   (lambda (mod_0 sym_0)
     (begin
       (let ((temp50_0
              (lambda (m_0)
                (let ((b/p_0 (hash-ref (module-provides m_0) sym_0 #f)))
                  (let ((or-part_0 (not b/p_0)))
                    (if or-part_0
                      or-part_0
                      (provided-as-protected? b/p_0)))))))
         (module->.1 void temp50_0 'module-provide-protected? mod_0 #f))))))
(define 1/module->realm
  (|#%name|
   module->realm
   (lambda (mod_0)
     (begin
       (let ((temp54_0 (lambda (m_0) (module-realm m_0))))
         (module->.1 void temp54_0 'module->realm mod_0 #f))))))
(define 1/module->namespace
  (let ((module->namespace_0
         (|#%name|
          module->namespace
          (lambda (mod15_0 ns14_0)
            (begin
              (let ((ns_0
                     (if (eq? ns14_0 unsafe-undefined)
                       (1/current-namespace)
                       ns14_0)))
                (begin
                  (if (module-reference? mod15_0)
                    (void)
                    (raise-argument-error
                     'module->namespace
                     module-reference-str
                     mod15_0))
                  (begin
                    (if (1/namespace? ns_0)
                      (void)
                      (raise-argument-error
                       'module->namespace
                       "namespace?"
                       ns_0))
                    (let ((name_0
                           (reference->resolved-module-path.1 #t mod15_0)))
                      (let ((phase_0 (namespace-phase ns_0)))
                        (let ((m-ns_0
                               (namespace->module-namespace.1
                                #f
                                #f
                                void
                                ns_0
                                name_0
                                phase_0)))
                          (begin
                            (if m-ns_0
                              (void)
                              (begin
                                (namespace->module/complain
                                 'module->namespace
                                 ns_0
                                 name_0)
                                (raise-arguments-error
                                 'module->namespace
                                 "module not instantiated in the current namespace"
                                 "name"
                                 name_0)))
                            (if (let ((app_0 (current-code-inspector)))
                                  (inspector-superior?
                                   app_0
                                   (namespace-inspector m-ns_0)))
                              (void)
                              (raise-arguments-error
                               'module->namespace
                               "current code inspector cannot access namespace of module"
                               "module name"
                               name_0))
                            (if (namespace-get-root-expand-ctx m-ns_0)
                              (void)
                              (let ((root-ctx_0
                                     (let ((temp66_0 (namespace-mpi m-ns_0)))
                                       (make-root-expand-context.1
                                        #f
                                        null
                                        unsafe-undefined
                                        unsafe-undefined
                                        temp66_0))))
                                (begin-unsafe
                                 (set-box!
                                  (namespace-root-expand-ctx m-ns_0)
                                  root-ctx_0))))
                            (let ((temp59_0 (namespace-mpi m-ns_0)))
                              (namespace-module-make-available!.1
                               #f
                               unsafe-undefined
                               ns_0
                               temp59_0
                               phase_0))
                            m-ns_0))))))))))))
    (|#%name|
     module->namespace
     (case-lambda
      ((mod_0) (begin (module->namespace_0 mod_0 unsafe-undefined)))
      ((mod_0 ns14_0) (module->namespace_0 mod_0 ns14_0))))))
(define 1/namespace-unprotect-module
  (let ((namespace-unprotect-module_0
         (|#%name|
          namespace-unprotect-module
          (lambda (insp17_0 mod18_0 ns16_0)
            (begin
              (let ((ns_0
                     (if (eq? ns16_0 unsafe-undefined)
                       (1/current-namespace)
                       ns16_0)))
                (begin
                  (if (inspector? insp17_0)
                    (void)
                    (raise-argument-error
                     'namespace-unprotect-module
                     "inspector?"
                     insp17_0))
                  (begin
                    (if (1/module-path? mod18_0)
                      (void)
                      (raise-argument-error
                       'namespace-unprotect-module
                       "module-path?"
                       mod18_0))
                    (begin
                      (if (1/namespace? ns_0)
                        (void)
                        (raise-argument-error
                         'namespace-unprotect-module
                         "namespace?"
                         ns_0))
                      (let ((name_0
                             (reference->resolved-module-path.1 #f mod18_0)))
                        (let ((phase_0 (namespace-phase ns_0)))
                          (let ((m-ns_0
                                 (namespace->module-namespace.1
                                  #f
                                  #f
                                  void
                                  ns_0
                                  name_0
                                  phase_0)))
                            (begin
                              (if m-ns_0
                                (void)
                                (raise-arguments-error
                                 'namespace-unprotect-module
                                 "module not instantiated"
                                 "module name"
                                 name_0))
                              (if (inspector-superior?
                                   insp17_0
                                   (namespace-inspector m-ns_0))
                                (set-namespace-inspector!
                                 m-ns_0
                                 (make-inspector (current-code-inspector)))
                                (void)))))))))))))))
    (|#%name|
     namespace-unprotect-module
     (case-lambda
      ((insp_0 mod_0)
       (begin (namespace-unprotect-module_0 insp_0 mod_0 unsafe-undefined)))
      ((insp_0 mod_0 ns16_0)
       (namespace-unprotect-module_0 insp_0 mod_0 ns16_0))))))
(define namespace->module/complain
  (lambda (who_0 ns_0 name_0)
    (let ((or-part_0 (namespace->module ns_0 name_0)))
      (if or-part_0
        or-part_0
        (raise-arguments-error
         who_0
         "unknown module in the current namespace"
         "name"
         name_0)))))
(define module-reference?
  (lambda (mod_0)
    (let ((or-part_0 (1/module-path? mod_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (1/module-path-index? mod_0)))
          (if or-part_1 or-part_1 (1/resolved-module-path? mod_0)))))))
(define module-reference-str
  "(or/c module-path? module-path-index? resolved-module-path?)")
(define reference->resolved-module-path.1
  (|#%name|
   reference->resolved-module-path
   (lambda (load?19_0 mod21_0)
     (begin
       (if (1/resolved-module-path? mod21_0)
         mod21_0
         (let ((mpi_0
                (if (1/module-path-index? mod21_0)
                  mod21_0
                  (1/module-path-index-join mod21_0 #f))))
           (1/module-path-index-resolve mpi_0 load?19_0)))))))
(define read-linklet-bundle-or-directory
  (lambda (in_0)
    (letrec*
     ((read-linklet-or-directory_0
       (|#%name|
        read-linklet-or-directory
        (lambda (initial?_0)
          (begin
            (let ((start-pos_0 (- (file-position in_0) 2)))
              (let ((vers-len_0 (min 63 (read-byte in_0))))
                (let ((vers_0 (read-bytes vers-len_0 in_0)))
                  (begin
                    (if (equal? vers_0 version-bytes$1)
                      (void)
                      (let ((app_0 (bytes->string/utf-8 vers_0 '#\x3f)))
                        (let ((app_1
                               (let ((n_0 (object-name in_0)))
                                 (if (path? n_0)
                                   (unquoted-printing-string
                                    (path->string n_0))
                                   in_0))))
                          (raise-read-error
                           '|loading code|
                           "version mismatch"
                           "expected"
                           (version)
                           "found"
                           app_0
                           "in"
                           app_1
                           "possible solution"
                           (unquoted-printing-string
                            "running `racket -y`, `raco make`, or `raco setup`")))))
                    (let ((vm-len_0 (min 63 (read-byte in_0))))
                      (let ((vm_0 (read-bytes vm-len_0 in_0)))
                        (let ((as-correlated-linklet?_0
                               (equal? vm_0 correlated-linklet-vm-bytes)))
                          (begin
                            (if (if as-correlated-linklet?_0
                                  as-correlated-linklet?_0
                                  (equal? vm_0 vm-bytes$1))
                              (void)
                              (let ((app_0 (bytes->string/utf-8 vm-bytes$1)))
                                (let ((app_1
                                       (bytes->string/utf-8 vm_0 '#\x3f)))
                                  (raise-read-error
                                   '|loading code|
                                   "virtual-machine mismatch"
                                   "expected"
                                   app_0
                                   "found"
                                   app_1
                                   "in"
                                   (let ((n_0 (object-name in_0)))
                                     (if (path? n_0)
                                       (unquoted-printing-string
                                        (path->string n_0))
                                       in_0))))))
                            (let ((tag_0 (read-byte in_0)))
                              (if (eqv? tag_0 66)
                                (let ((sha-1_0 (read-bytes 20 in_0)))
                                  (let ((b-ht_0
                                         (if as-correlated-linklet?_0
                                           (read-correlated-linklet-bundle-hash
                                            in_0)
                                           (read-linklet-bundle-hash in_0))))
                                    (begin
                                      (if (hash? b-ht_0)
                                        (void)
                                        (let ((app_0 (format "~s" b-ht_0)))
                                          (raise-read-error
                                           'read-linklet-bundle-hash
                                           "bad read result"
                                           "expected"
                                           "hash/c"
                                           "found"
                                           app_0
                                           "in"
                                           (let ((n_0 (object-name in_0)))
                                             (if (path? n_0)
                                               (path->string n_0)
                                               in_0)))))
                                      (1/hash->linklet-bundle
                                       (add-hash-code
                                        (if initial?_0
                                          (strip-submodule-references b-ht_0)
                                          b-ht_0)
                                        sha-1_0)))))
                                (if (eqv? tag_0 68)
                                  (begin
                                    (if initial?_0
                                      (void)
                                      (raise-read-error
                                       'read-compiled-linklet
                                       "expected a linklet bundle"))
                                    (read-bundle-directory_0 start-pos_0))
                                  (raise-read-error
                                   'read-compiled-linklet
                                   "expected a `B` or `D`"))))))))))))))))
      (read-bundle-directory_0
       (|#%name|
        read-bundle-directory
        (lambda (pos_0)
          (begin
            (let ((count_0 (read-int in_0)))
              (let ((position-to-name_0
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (count_1 accum_0)
                           (begin
                             (if (zero? count_1)
                               accum_0
                               (let ((bstr_0
                                      (read-bytes (read-int in_0) in_0)))
                                 (let ((offset_0 (read-int in_0)))
                                   (let ((len_0 (read-int in_0)))
                                     (begin
                                       (read-int in_0)
                                       (read-int in_0)
                                       (let ((app_0 (sub1 count_1)))
                                         (loop_0
                                          app_0
                                          (hash-set
                                           accum_0
                                           offset_0
                                           bstr_0)))))))))))))
                      (loop_0 count_0 (hasheqv)))))
                (letrec*
                 ((loop_0
                   (|#%name|
                    loop
                    (lambda (count_1 accum_0)
                      (begin
                        (if (zero? count_1)
                          (list->bundle-directory
                           accum_0
                           1/hash->linklet-directory)
                          (let ((name_0
                                 (hash-ref
                                  position-to-name_0
                                  (- (file-position in_0) pos_0)
                                  #f)))
                            (begin
                              (if name_0
                                (void)
                                (raise-read-error
                                 'read-compiled-linklet
                                 "bundle not at an expected file position"))
                              (let ((bstr_0 (read-bytes 2 in_0)))
                                (let ((bundle_0
                                       (if (equal? #vu8(35 126) bstr_0)
                                         (read-linklet-or-directory_0 #f)
                                         (if (equal? #vu8(35 102) bstr_0)
                                           #f
                                           (raise-read-error
                                            'read-compiled-linklet
                                            "expected a `#~` or `#f` for a bundle")))))
                                  (let ((app_0 (sub1 count_1)))
                                    (loop_0
                                     app_0
                                     (cons
                                      (cons (decode-name name_0 0) bundle_0)
                                      accum_0)))))))))))))
                 (loop_0 count_0 '())))))))))
     (read-linklet-or-directory_0 #t))))
(define read-int
  (lambda (in_0) (integer-bytes->integer (read-bytes 4 in_0) #f #f)))
(define decode-name
  (lambda (bstr_0 pos_0)
    (let ((blen_0 (unsafe-bytes-length bstr_0)))
      (let ((bad-bundle_0
             (|#%name|
              bad-bundle
              (lambda ()
                (begin
                  (raise-read-error
                   'read-compiled-linklet
                   "malformed bundle"))))))
        (if (= pos_0 blen_0)
          '()
          (if (> pos_0 blen_0)
            (bad-bundle_0)
            (let ((len_0 (unsafe-bytes-ref bstr_0 pos_0)))
              (begin
                (if (> (+ pos_0 len_0 1) blen_0) (bad-bundle_0) (void))
                (if (= len_0 255)
                  (let ((len_1
                         (let ((app_0 (add1 pos_0)))
                           (integer-bytes->integer
                            bstr_0
                            #f
                            #f
                            app_0
                            (+ pos_0 5)))))
                    (begin
                      (if (> (+ pos_0 len_1 1) blen_0) (bad-bundle_0) (void))
                      (let ((app_0
                             (string->symbol
                              (bytes->string/utf-8
                               (let ((app_0 (+ pos_0 5)))
                                 (subbytes bstr_0 app_0 (+ pos_0 5 len_1)))
                               '#\x3f))))
                        (cons app_0 (decode-name bstr_0 (+ pos_0 5 len_1))))))
                  (let ((app_0
                         (string->symbol
                          (bytes->string/utf-8
                           (let ((app_0 (add1 pos_0)))
                             (subbytes bstr_0 app_0 (+ pos_0 1 len_0)))
                           '#\x3f))))
                    (cons
                     app_0
                     (decode-name bstr_0 (+ pos_0 1 len_0)))))))))))))
(define list->bundle-directory
  (lambda (l_0 hash->linklet-directory_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (l_1 prev-len_0 stack_0 accum_0)
          (begin
            (begin
              (if (null? l_1)
                (raise-read-error
                 'read-compiled-linklet
                 "invalid bundle sequence")
                (void))
              (let ((p_0 (car l_1)))
                (let ((path_0 (car p_0)))
                  (let ((v_0 (cdr p_0)))
                    (let ((len_0 (length path_0)))
                      (begin
                        (if (< len_0 prev-len_0)
                          (raise-read-error
                           'read-compiled-linklet
                           "invalid bundle sequence")
                          (void))
                        (letrec*
                         ((sloop_0
                           (|#%name|
                            sloop
                            (lambda (prev-len_1 stack_1 accum_1)
                              (begin
                                (if (> len_0 (add1 prev-len_1))
                                  (let ((app_0 (add1 prev-len_1)))
                                    (let ((app_1 (cons accum_1 stack_1)))
                                      (sloop_0 app_0 app_1 (hasheq))))
                                  (let ((path_1
                                         (list-tail
                                          path_0
                                          (max 0 (sub1 prev-len_1)))))
                                    (if (= len_0 prev-len_1)
                                      (let ((accum_2
                                             (if v_0
                                               (hash-set accum_1 #f v_0)
                                               accum_1)))
                                        (if (zero? len_0)
                                          (|#%app|
                                           hash->linklet-directory_0
                                           accum_2)
                                          (let ((app_0 (cdr l_1)))
                                            (let ((app_1 (sub1 prev-len_1)))
                                              (let ((app_2 (cdr stack_1)))
                                                (loop_0
                                                 app_0
                                                 app_1
                                                 app_2
                                                 (let ((app_3 (car stack_1)))
                                                   (let ((app_4 (car path_1)))
                                                     (hash-set
                                                      app_3
                                                      app_4
                                                      (|#%app|
                                                       hash->linklet-directory_0
                                                       accum_2))))))))))
                                      (let ((path_2
                                             (if (positive? prev-len_1)
                                               (cdr path_1)
                                               path_1)))
                                        (let ((app_0 (cdr l_1)))
                                          (loop_0
                                           app_0
                                           prev-len_1
                                           stack_1
                                           (let ((app_1 (car path_2)))
                                             (hash-set
                                              accum_1
                                              app_1
                                              (|#%app|
                                               hash->linklet-directory_0
                                               (if v_0
                                                 (hasheq #f v_0)
                                                 (hasheq))))))))))))))))
                         (sloop_0 prev-len_0 stack_0 accum_0)))))))))))))
     (loop_0 l_0 0 '() (hasheq)))))
(define strip-submodule-references
  (lambda (b-ht_0) (hash-remove (hash-remove b-ht_0 'pre) 'post)))
(define add-hash-code
  (lambda (b-ht_0 sha-1_0)
    (if (bytes=?
         sha-1_0
         #vu8(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
      b-ht_0
      (hash-set b-ht_0 'hash-code sha-1_0))))
(define raise-read-error
  (lambda (who_0 msg_0 . details_0)
    (raise
     (let ((app_0
            (let ((app_0 (format "~a: ~a" who_0 msg_0)))
              (apply
               string-append
               app_0
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (details_1)
                     (begin
                       (if (null? details_1)
                         null
                         (let ((app_1 (car details_1)))
                           (let ((app_2 (format "~v" (cadr details_1))))
                             (list*
                              "\n  "
                              app_1
                              ": "
                              app_2
                              (loop_0 (cddr details_1)))))))))))
                (loop_0 details_0))))))
       (|#%app| exn:fail:read app_0 (current-continuation-marks) null)))))
(define read-syntax$1
  (|#%name|
   read-syntax
   (lambda (src_0 in_0)
     (begin
       (if (default-read-handler? in_0)
         (begin
           (maybe-flush-stdout in_0)
           (read*.1 #t #f #f unsafe-undefined #f src_0 in_0))
         (values (|#%app| (port-read-handler in_0) in_0 src_0)))))))
(define read-syntax/recursive$1
  (|#%name|
   read-syntax/recursive
   (lambda (src_0 in_0 start_0 readtable_0 graph?_0)
     (begin
       (let ((temp27_0 (not graph?_0)))
         (read*.1 #t start_0 temp27_0 readtable_0 #t src_0 in_0))))))
(define read$1
  (|#%name|
   read
   (lambda (in_0)
     (begin
       (if (default-read-handler? in_0)
         (begin
           (maybe-flush-stdout in_0)
           (read*.1 #f #f #f unsafe-undefined #f #f in_0))
         (values (|#%app| (port-read-handler in_0) in_0)))))))
(define read/recursive$1
  (|#%name|
   read/recursive
   (lambda (in_0 start_0 readtable_0 graph?_0)
     (begin
       (let ((temp35_0 (not graph?_0)))
         (read*.1 #f start_0 temp35_0 readtable_0 #t #f in_0))))))
(define read*.1
  (|#%name|
   read*
   (lambda (for-syntax?1_0
            init-c4_0
            local-graph?6_0
            readtable5_0
            recursive?2_0
            source3_0
            in13_0)
     (begin
       (let ((readtable_0
              (if (eq? readtable5_0 unsafe-undefined)
                (1/current-readtable)
                readtable5_0)))
         (begin
           (if log-performance? (start-performance-region 'read) (void))
           (begin0
             (let ((temp40_0 (if for-syntax?1_0 read-to-syntax #f)))
               (let ((read-module-declared?47_0 read-module-declared?))
                 (read.1
                  call-with-root-namespace
                  read-coerce
                  read-coerce-key
                  locked-dynamic-require
                  for-syntax?1_0
                  init-c4_0
                  unsafe-undefined
                  local-graph?6_0
                  read-module-declared?47_0
                  unsafe-undefined
                  read-linklet-bundle-or-directory
                  readtable_0
                  recursive?2_0
                  source3_0
                  temp40_0
                  in13_0)))
             (if log-performance? (end-performance-region) (void)))))))))
(define read-language$1
  (|#%name|
   read-language
   (lambda (in_0 fail-thunk_0)
     (begin
       (let ((read-module-declared?57_0 read-module-declared?))
         (read-language.1
          call-with-root-namespace
          read-coerce
          read-coerce-key
          locked-dynamic-require
          #t
          read-module-declared?57_0
          read-linklet-bundle-or-directory
          read-to-syntax
          in_0
          fail-thunk_0))))))
(define read-to-syntax
  (lambda (s-exp_0 srcloc_0 rep_0)
    (if (syntax?$1 empty-syntax)
      (let ((content*60_0 (datum-intern-literal s-exp_0)))
        (let ((props62_0
               (if (eqv? rep_0 '#\x5b)
                 original-square-props
                 (if (eqv? rep_0 '#\x7b)
                   original-curly-props
                   original-props))))
          (let ((content*60_1 content*60_0))
            (syntax2.1
             content*60_1
             (syntax-scopes empty-syntax)
             (syntax-shifted-multi-scopes empty-syntax)
             (syntax-mpi-shifts empty-syntax)
             srcloc_0
             props62_0
             (syntax-inspector empty-syntax)))))
      (raise-argument-error 'struct-copy "syntax?" empty-syntax))))
(define original-props
  (syntax-props (syntax-property$1 empty-syntax original-property-sym #t)))
(define original-square-props
  (syntax-props
   (syntax-property$1
    (syntax-property$1 empty-syntax original-property-sym #t)
    'paren-shape
    '#\x5b)))
(define original-curly-props
  (syntax-props
   (syntax-property$1
    (syntax-property$1 empty-syntax original-property-sym #t)
    'paren-shape
    '#\x7b)))
(define read-module-declared?
  (lambda (mod-path_0) (1/module-declared? mod-path_0 #t)))
(define read-coerce
  (lambda (for-syntax?_0 v_0 srcloc_0)
    (if (not for-syntax?_0)
      (if (syntax?$1 v_0) (syntax->datum$1 v_0) v_0)
      (if (syntax?$1 v_0)
        v_0
        (if (list? v_0)
          (read-to-syntax
           (reverse$1
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((e_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (let ((fold-var_1
                                   (let ((fold-var_1
                                          (cons
                                           (read-coerce #t e_0 srcloc_0)
                                           fold-var_0)))
                                     (values fold-var_1))))
                              (for-loop_0 fold-var_1 rest_0))))
                        fold-var_0))))))
               (for-loop_0 null v_0))))
           srcloc_0
           #f)
          (if (pair? v_0)
            (read-to-syntax
             (let ((app_0 (read-coerce #t (car v_0) srcloc_0)))
               (cons app_0 (read-coerce #t (cdr v_0) srcloc_0)))
             srcloc_0
             #f)
            (read-to-syntax v_0 srcloc_0 #f)))))))
(define read-coerce-key
  (lambda (for-syntax?_0 k_0)
    (if for-syntax?_0 (datum-intern-literal k_0) k_0)))
(define default-read-handler #f)
(define default-read-handler?
  (lambda (in_0)
    (if (not default-read-handler)
      (begin (set! default-read-handler (port-read-handler in_0)) #t)
      (let ((app_0 default-read-handler))
        (eq? app_0 (port-read-handler in_0))))))
(define orig-input-port (current-input-port))
(define orig-output-port (current-output-port))
(define orig-error-port (current-error-port))
(define maybe-flush-stdout
  (lambda (in_0)
    (if (eq? in_0 orig-input-port)
      (begin (flush-output orig-output-port) (flush-output orig-error-port))
      (void))))
(define call-with-root-namespace
  (lambda (thunk_0)
    (let ((root-ns_0 (namespace-root-namespace (1/current-namespace))))
      (if root-ns_0
        (with-continuation-mark*
         authentic
         parameterization-key
         (extend-parameterization
          (continuation-mark-set-first #f parameterization-key)
          1/current-namespace
          root-ns_0)
         (|#%app| thunk_0))
        (|#%app| thunk_0)))))
(define locked-dynamic-require
  (let ((locked-dynamic-require_0
         (|#%name|
          locked-dynamic-require
          (lambda (mod16_0 sym17_0 fail-thunk15_0)
            (begin
              (registry-call-with-lock
               (namespace-module-registry$1 (1/current-namespace))
               (lambda ()
                 (if fail-thunk15_0
                   (1/dynamic-require mod16_0 sym17_0 fail-thunk15_0)
                   (1/dynamic-require mod16_0 sym17_0)))))))))
    (case-lambda
     ((mod_0 sym_0) (locked-dynamic-require_0 mod_0 sym_0 #f))
     ((mod_0 sym_0 fail-thunk15_0)
      (locked-dynamic-require_0 mod_0 sym_0 fail-thunk15_0)))))
(define 1/read-syntax
  (let ((read-syntax_0
         (|#%name|
          read-syntax
          (lambda (src1_0 in2_0)
            (begin
              (let ((src_0
                     (if (eq? src1_0 unsafe-undefined)
                       (object-name (current-input-port))
                       src1_0)))
                (let ((in_0
                       (if (eq? in2_0 unsafe-undefined)
                         (current-input-port)
                         in2_0)))
                  (begin
                    (if (input-port? in_0)
                      (void)
                      (raise-argument-error 'read-syntax "input-port?" in_0))
                    (read-syntax$1 src_0 in_0)))))))))
    (|#%name|
     read-syntax
     (case-lambda
      (() (begin (read-syntax_0 unsafe-undefined unsafe-undefined)))
      ((src_0 in2_0) (read-syntax_0 src_0 in2_0))
      ((src1_0) (read-syntax_0 src1_0 unsafe-undefined))))))
(define 1/read-syntax/recursive
  (let ((read-syntax/recursive_0
         (|#%name|
          read-syntax/recursive
          (lambda (src3_0 in4_0 start5_0 readtable6_0 graph?7_0)
            (begin
              (let ((src_0
                     (if (eq? src3_0 unsafe-undefined)
                       (object-name (current-input-port))
                       src3_0)))
                (let ((in_0
                       (if (eq? in4_0 unsafe-undefined)
                         (current-input-port)
                         in4_0)))
                  (let ((readtable_0
                         (if (eq? readtable6_0 unsafe-undefined)
                           (1/current-readtable)
                           readtable6_0)))
                    (begin
                      (if (input-port? in_0)
                        (void)
                        (raise-argument-error
                         'read-syntax/recursive
                         "input-port?"
                         in_0))
                      (if (let ((or-part_0 (not start5_0)))
                            (if or-part_0 or-part_0 (char? start5_0)))
                        (void)
                        (raise-argument-error
                         'read-syntax/recursive
                         "(or/c char? #f)"
                         start5_0))
                      (if (let ((or-part_0 (not readtable_0)))
                            (if or-part_0
                              or-part_0
                              (1/readtable? readtable_0)))
                        (void)
                        (raise-argument-error
                         'read-syntax/recursive
                         "(or/c readtable? #f)"
                         readtable_0))
                      (read-syntax/recursive$1
                       src_0
                       in_0
                       start5_0
                       readtable_0
                       graph?7_0))))))))))
    (|#%name|
     read-syntax/recursive
     (case-lambda
      (()
       (begin
         (read-syntax/recursive_0
          unsafe-undefined
          unsafe-undefined
          #f
          unsafe-undefined
          #t)))
      ((src_0 in_0 start_0 readtable_0 graph?7_0)
       (read-syntax/recursive_0 src_0 in_0 start_0 readtable_0 graph?7_0))
      ((src_0 in_0 start_0 readtable6_0)
       (read-syntax/recursive_0 src_0 in_0 start_0 readtable6_0 #t))
      ((src_0 in_0 start5_0)
       (read-syntax/recursive_0 src_0 in_0 start5_0 unsafe-undefined #t))
      ((src_0 in4_0)
       (read-syntax/recursive_0 src_0 in4_0 #f unsafe-undefined #t))
      ((src3_0)
       (read-syntax/recursive_0
        src3_0
        unsafe-undefined
        #f
        unsafe-undefined
        #t))))))
(define 1/read
  (let ((read_0
         (|#%name|
          read
          (lambda (in8_0)
            (begin
              (let ((in_0
                     (if (eq? in8_0 unsafe-undefined)
                       (current-input-port)
                       in8_0)))
                (begin
                  (if (input-port? in_0)
                    (void)
                    (raise-argument-error 'read "input-port?" in_0))
                  (read$1 in_0))))))))
    (|#%name|
     read
     (case-lambda
      (() (begin (read_0 unsafe-undefined)))
      ((in8_0) (read_0 in8_0))))))
(define 1/read/recursive
  (let ((read/recursive_0
         (|#%name|
          read/recursive
          (lambda (in9_0 start10_0 readtable11_0 graph?12_0)
            (begin
              (let ((in_0
                     (if (eq? in9_0 unsafe-undefined)
                       (current-input-port)
                       in9_0)))
                (let ((readtable_0
                       (if (eq? readtable11_0 unsafe-undefined)
                         (1/current-readtable)
                         readtable11_0)))
                  (begin
                    (if (input-port? in_0)
                      (void)
                      (raise-argument-error
                       'read/recursive
                       "input-port?"
                       in_0))
                    (if (let ((or-part_0 (not start10_0)))
                          (if or-part_0 or-part_0 (char? start10_0)))
                      (void)
                      (raise-argument-error
                       'read/recursive
                       "(or/c char? #f)"
                       start10_0))
                    (if (let ((or-part_0 (not readtable_0)))
                          (if or-part_0 or-part_0 (1/readtable? readtable_0)))
                      (void)
                      (raise-argument-error
                       'read/recursive
                       "(or/c readtable? #f)"
                       readtable_0))
                    (read/recursive$1
                     in_0
                     start10_0
                     readtable_0
                     graph?12_0)))))))))
    (|#%name|
     read/recursive
     (case-lambda
      (() (begin (read/recursive_0 unsafe-undefined #f unsafe-undefined #t)))
      ((in_0 start_0 readtable_0 graph?12_0)
       (read/recursive_0 in_0 start_0 readtable_0 graph?12_0))
      ((in_0 start_0 readtable11_0)
       (read/recursive_0 in_0 start_0 readtable11_0 #t))
      ((in_0 start10_0) (read/recursive_0 in_0 start10_0 unsafe-undefined #t))
      ((in9_0) (read/recursive_0 in9_0 #f unsafe-undefined #t))))))
(define 1/read-language
  (let ((read-language_0
         (|#%name|
          read-language
          (lambda (in13_0 fail-thunk14_0)
            (begin
              (let ((in_0
                     (if (eq? in13_0 unsafe-undefined)
                       (current-input-port)
                       in13_0)))
                (let ((fail-thunk_0
                       (if (eq? fail-thunk14_0 unsafe-undefined)
                         read-language-fail-thunk
                         fail-thunk14_0)))
                  (begin
                    (if (input-port? in_0)
                      (void)
                      (raise-argument-error 'read-language "input-port?" in_0))
                    (if (if (procedure? fail-thunk_0)
                          (procedure-arity-includes? fail-thunk_0 0)
                          #f)
                      (void)
                      (raise-argument-error
                       'read-language
                       "(procedure-arity-includes/c 0)"
                       fail-thunk_0))
                    (read-language$1
                     in_0
                     (if (eq? fail-thunk_0 read-language-fail-thunk)
                       #f
                       fail-thunk_0))))))))))
    (|#%name|
     read-language
     (case-lambda
      (() (begin (read-language_0 unsafe-undefined unsafe-undefined)))
      ((in_0 fail-thunk14_0) (read-language_0 in_0 fail-thunk14_0))
      ((in13_0) (read-language_0 in13_0 unsafe-undefined))))))
(define read-language-fail-thunk (lambda () (error "fail")))
(define declare-primitive-module!
  (lambda (name_0 inst_0 in-ns_0 protected_0 cross-phase-persistent?_0)
    (let ((mpi_0 (1/module-path-index-join (list 'quote name_0) #f)))
      (let ((temp2_0
             (let ((temp4_0 (1/current-module-declare-source)))
               (let ((temp6_0 (zero? (hash-count protected_0))))
                 (let ((temp8_0
                        (hasheqv
                         0
                         (let ((lst_0 (instance-variable-names inst_0)))
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (table_0 lst_1)
                                   (begin
                                     (if (pair? lst_1)
                                       (let ((sym_0 (unsafe-car lst_1)))
                                         (let ((rest_0 (unsafe-cdr lst_1)))
                                           (let ((table_1
                                                  (let ((table_1
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((binding_0
                                                                   (make-module-binding.1
                                                                    #f
                                                                    null
                                                                    #f
                                                                    #f
                                                                    unsafe-undefined
                                                                    unsafe-undefined
                                                                    0
                                                                    unsafe-undefined
                                                                    mpi_0
                                                                    0
                                                                    sym_0)))
                                                              (values
                                                               sym_0
                                                               (if (hash-ref
                                                                    protected_0
                                                                    sym_0
                                                                    #f)
                                                                 (provided1.1
                                                                  binding_0
                                                                  #t
                                                                  #f)
                                                                 binding_0))))
                                                          (case-lambda
                                                           ((key_0 val_0)
                                                            (hash-set
                                                             table_0
                                                             key_0
                                                             val_0))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))))
                                                    (values table_1))))
                                             (for-loop_0 table_1 rest_0))))
                                       table_0))))))
                              (for-loop_0 hash2725 lst_0)))))))
                   (let ((temp9_0
                          (lambda (data-box_0
                                   ns_0
                                   phase-shift_0
                                   phase-level_0
                                   self_0
                                   bulk-binding-registry_0
                                   insp_0)
                            (if (= 0 phase-level_0)
                              (begin
                                (let ((lst_0 (instance-variable-names inst_0)))
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (lst_1)
                                          (begin
                                            (if (pair? lst_1)
                                              (let ((sym_0 (unsafe-car lst_1)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_1)))
                                                  (begin
                                                    (let ((val_0
                                                           (instance-variable-value
                                                            inst_0
                                                            sym_0)))
                                                      (namespace-set-variable!
                                                       ns_0
                                                       0
                                                       sym_0
                                                       val_0))
                                                    (for-loop_0 rest_0))))
                                              (values)))))))
                                     (for-loop_0 lst_0))))
                                (void))
                              (void)))))
                     (let ((temp8_1 temp8_0)
                           (temp6_1 temp6_0)
                           (temp4_1 temp4_0))
                       (make-module.1
                        cross-phase-persistent?_0
                        void
                        unsafe-undefined
                        unsafe-undefined
                        temp9_0
                        #f
                        0
                        0
                        temp6_1
                        unsafe-undefined
                        #f
                        void
                        #f
                        temp8_1
                        'racket
                        unsafe-undefined
                        null
                        mpi_0
                        temp4_1
                        null
                        #f))))))))
        (let ((temp3_0 (substitute-module-declare-name name_0)))
          (let ((temp2_1 temp2_0))
            (declare-module!.1 #t in-ns_0 temp2_1 temp3_0)))))))
(define-values
 (1/prop:exn:missing-module
  1/exn:missing-module?
  1/exn:missing-module-accessor)
 (make-struct-type-property
  'missing-module
  (lambda (v_0 info_0)
    (begin
      (if (if (procedure? v_0) (procedure-arity-includes? v_0 1) #f)
        (void)
        (raise-argument-error
         'guard-for-prop:exn:missing-module
         "(procedure-arity-includes/c 1)"
         v_0))
      v_0))))
(define-values
 (1/struct:exn:fail:filesystem:missing-module
  1/make-exn:fail:filesystem:missing-module
  1/exn:fail:filesystem:missing-module?
  1/exn:fail:filesystem:missing-module-path)
 (call-with-values
  (lambda ()
    (make-struct-type
     'exn:fail:filesystem:missing-module
     struct:exn:fail:filesystem
     1
     0
     #f
     (list
      (cons
       1/prop:exn:missing-module
       (lambda (e_0) (|#%app| 1/exn:fail:filesystem:missing-module-path e_0))))
     #f
     #f
     '(0)
     #f
     'exn:fail:filesystem:missing-module))
  (case-lambda
   ((struct:_0 make-_0 ?_0 -ref_0 -set!_0)
    (values struct:_0 make-_0 ?_0 (make-struct-field-accessor -ref_0 0 'path)))
   (args (raise-binding-result-arity-error 5 args)))))
(define-values
 (1/struct:exn:fail:syntax:missing-module
  1/make-exn:fail:syntax:missing-module
  1/exn:fail:syntax:missing-module?
  1/exn:fail:syntax:missing-module-path)
 (call-with-values
  (lambda ()
    (make-struct-type
     'exn:fail:syntax:missing-module
     1/struct:exn:fail:syntax
     1
     0
     #f
     (list
      (cons
       1/prop:exn:missing-module
       (lambda (e_0) (|#%app| 1/exn:fail:syntax:missing-module-path e_0))))
     #f
     #f
     '(0)
     #f
     'exn:fail:syntax:missing-module))
  (case-lambda
   ((struct:_0 make-_0 ?_0 -ref_0 -set!_0)
    (values struct:_0 make-_0 ?_0 (make-struct-field-accessor -ref_0 0 'path)))
   (args (raise-binding-result-arity-error 5 args)))))
(define 1/current-module-path-for-load
  (make-parameter
   #f
   (lambda (v_0)
     (begin
       (if (let ((or-part_0 (not v_0)))
             (if or-part_0
               or-part_0
               (let ((or-part_1 (1/module-path? v_0)))
                 (if or-part_1
                   or-part_1
                   (if (syntax?$1 v_0)
                     (1/module-path? (syntax->datum$1 v_0))
                     #f)))))
         (void)
         (raise-argument-error
          'current-module-path-for-load
          (string-append
           "(or/c module-path?"
           " (and/c syntax? (lambda (stx) (module-path? (syntax->datum stx))))"
           " #f)")
          v_0))
       v_0))
   'current-module-path-for-load))
(define maybe-raise-missing-module
  (lambda (name_0 filename_0 pre_0 rel_0 post_0 errstr_0)
    (let ((path_0 (1/current-module-path-for-load)))
      (if path_0
        (begin
          (if (syntax?$1 path_0)
            (raise
             (let ((app_0
                    (let ((app_0
                           (string-append
                            "~a: cannot open module file\n"
                            "  module path: ~s\n"
                            "  path: ~a~a~a~a\n"
                            "  system error: ~a")))
                      (let ((app_1
                             (if (syntax-srcloc$1 path_0)
                               (srcloc->string (syntax-srcloc$1 path_0))
                               name_0)))
                        (format
                         app_0
                         app_1
                         (syntax->datum$1 path_0)
                         filename_0
                         pre_0
                         rel_0
                         post_0
                         errstr_0)))))
               (let ((app_1 (current-continuation-marks)))
                 (let ((app_2 (list path_0)))
                   (|#%app|
                    1/make-exn:fail:syntax:missing-module
                    app_0
                    app_1
                    app_2
                    (syntax->datum$1 path_0))))))
            (void))
          (raise
           (let ((app_0
                  (format
                   (string-append
                    "~a: cannot open module file\n"
                    "  module path: ~s\n"
                    "  path: ~a~a~a~a\n"
                    "  system error: ~a")
                   name_0
                   path_0
                   filename_0
                   pre_0
                   rel_0
                   post_0
                   errstr_0)))
             (|#%app|
              1/make-exn:fail:filesystem:missing-module
              app_0
              (current-continuation-marks)
              path_0))))
        (void)))))
(define 1/local-expand
  (let ((local-expand_0
         (|#%name|
          local-expand
          (lambda (s2_0 context3_0 stop-ids4_0 intdefs1_0)
            (begin
              (do-local-expand.1
               #f
               #f
               #t
               unsafe-undefined
               #f
               #f
               #f
               'local-expand
               s2_0
               context3_0
               stop-ids4_0
               intdefs1_0))))))
    (|#%name|
     local-expand
     (case-lambda
      ((s_0 context_0 stop-ids_0)
       (begin (local-expand_0 s_0 context_0 stop-ids_0 #f)))
      ((s_0 context_0 stop-ids_0 intdefs1_0)
       (local-expand_0 s_0 context_0 stop-ids_0 intdefs1_0))))))
(define 1/local-expand/capture-lifts
  (let ((local-expand/capture-lifts_0
         (|#%name|
          local-expand/capture-lifts
          (lambda (s7_0 context8_0 stop-ids9_0 intdefs5_0 lift-key6_0)
            (begin
              (let ((lift-key_0
                     (if (eq? lift-key6_0 unsafe-undefined)
                       (generate-lift-key)
                       lift-key6_0)))
                (do-local-expand.1
                 #f
                 #t
                 #t
                 lift-key_0
                 #f
                 #f
                 #f
                 'local-expand
                 s7_0
                 context8_0
                 stop-ids9_0
                 intdefs5_0)))))))
    (|#%name|
     local-expand/capture-lifts
     (case-lambda
      ((s_0 context_0 stop-ids_0)
       (begin
         (local-expand/capture-lifts_0
          s_0
          context_0
          stop-ids_0
          #f
          unsafe-undefined)))
      ((s_0 context_0 stop-ids_0 intdefs_0 lift-key6_0)
       (local-expand/capture-lifts_0
        s_0
        context_0
        stop-ids_0
        intdefs_0
        lift-key6_0))
      ((s_0 context_0 stop-ids_0 intdefs5_0)
       (local-expand/capture-lifts_0
        s_0
        context_0
        stop-ids_0
        intdefs5_0
        unsafe-undefined))))))
(define 1/local-transformer-expand
  (let ((local-transformer-expand_0
         (|#%name|
          local-transformer-expand
          (lambda (s11_0 context12_0 stop-ids13_0 intdefs10_0)
            (begin
              (do-local-expand.1
               #t
               #f
               #t
               unsafe-undefined
               #f
               #f
               #f
               'local-expand
               s11_0
               context12_0
               stop-ids13_0
               intdefs10_0))))))
    (|#%name|
     local-transformer-expand
     (case-lambda
      ((s_0 context_0 stop-ids_0)
       (begin (local-transformer-expand_0 s_0 context_0 stop-ids_0 #f)))
      ((s_0 context_0 stop-ids_0 intdefs10_0)
       (local-transformer-expand_0 s_0 context_0 stop-ids_0 intdefs10_0))))))
(define 1/local-transformer-expand/capture-lifts
  (let ((local-transformer-expand/capture-lifts_0
         (|#%name|
          local-transformer-expand/capture-lifts
          (lambda (s16_0 context17_0 stop-ids18_0 intdefs14_0 lift-key15_0)
            (begin
              (let ((lift-key_0
                     (if (eq? lift-key15_0 unsafe-undefined)
                       (generate-lift-key)
                       lift-key15_0)))
                (do-local-expand.1
                 #t
                 #t
                 #t
                 lift-key_0
                 #f
                 #f
                 #f
                 'local-expand
                 s16_0
                 context17_0
                 stop-ids18_0
                 intdefs14_0)))))))
    (|#%name|
     local-transformer-expand/capture-lifts
     (case-lambda
      ((s_0 context_0 stop-ids_0)
       (begin
         (local-transformer-expand/capture-lifts_0
          s_0
          context_0
          stop-ids_0
          #f
          unsafe-undefined)))
      ((s_0 context_0 stop-ids_0 intdefs_0 lift-key15_0)
       (local-transformer-expand/capture-lifts_0
        s_0
        context_0
        stop-ids_0
        intdefs_0
        lift-key15_0))
      ((s_0 context_0 stop-ids_0 intdefs14_0)
       (local-transformer-expand/capture-lifts_0
        s_0
        context_0
        stop-ids_0
        intdefs14_0
        unsafe-undefined))))))
(define 1/syntax-local-expand-expression
  (let ((syntax-local-expand-expression_0
         (|#%name|
          syntax-local-expand-expression
          (lambda (s20_0 opaque-only?19_0)
            (begin
              (let ((exp-s_0
                     (do-local-expand.1
                      #f
                      #f
                      #f
                      unsafe-undefined
                      #t
                      opaque-only?19_0
                      #t
                      'syntax-local-expand-expression
                      s20_0
                      'expression
                      null
                      #f)))
                (let ((ctx_0 (get-current-expand-context.1 #f 'unexpected)))
                  (let ((ae_0
                         (let ((s_0
                                (datum->syntax$1
                                 #f
                                 (let ((app_0
                                        (if (parsed? exp-s_0)
                                          exp-s_0
                                          (begin-unsafe
                                           (flip-scopes
                                            exp-s_0
                                            (begin-unsafe
                                             (expand-context/outer-current-introduction-scopes
                                              ctx_0)))))))
                                   (already-expanded1.1
                                    app_0
                                    (begin-unsafe
                                     (expand-context/outer-binding-layer
                                      ctx_0)))))))
                           (begin-unsafe
                            (flip-scopes
                             s_0
                             (begin-unsafe
                              (expand-context/outer-current-introduction-scopes
                               ctx_0)))))))
                    (begin
                      (let ((obs_0
                             (begin-unsafe
                              (expand-context/inner-observer
                               (root-expand-context/outer-inner ctx_0)))))
                        (if obs_0
                          (call-expand-observe obs_0 'opaque-expr ae_0)
                          (void)))
                      (let ((obs_0
                             (begin-unsafe
                              (expand-context/inner-observer
                               (root-expand-context/outer-inner ctx_0)))))
                        (if obs_0
                          (call-expand-observe obs_0 'exit-local exp-s_0)
                          (void)))
                      (values
                       (if (not opaque-only?19_0) exp-s_0 #f)
                       ae_0))))))))))
    (|#%name|
     syntax-local-expand-expression
     (case-lambda
      ((s_0) (begin (syntax-local-expand-expression_0 s_0 #f)))
      ((s_0 opaque-only?19_0)
       (syntax-local-expand-expression_0 s_0 opaque-only?19_0))))))
(define do-local-expand.1
  (|#%name|
   do-local-expand
   (lambda (as-transformer?22_0
            capture-lifts?21_0
            |keep-#%expression?24_0|
            lift-key25_0
            skip-log-exit?27_0
            to-parsed-ok?23_0
            track-to-be-defined?26_0
            who36_0
            s-or-s-exp37_0
            context38_0
            stop-ids39_0
            intdefs35_0)
     (begin
       (let ((lift-key_0
              (if (eq? lift-key25_0 unsafe-undefined)
                (if (if capture-lifts?21_0
                      capture-lifts?21_0
                      as-transformer?22_0)
                  (generate-lift-key)
                  #f)
                lift-key25_0)))
         (begin
           (if log-performance?
             (start-performance-region 'expand 'local-expand)
             (void))
           (begin0
             (let ((s_0 (datum->syntax$1 #f s-or-s-exp37_0)))
               (begin
                 (if (let ((or-part_0 (list? context38_0)))
                       (if or-part_0
                         or-part_0
                         (memq
                          context38_0
                          (if as-transformer?22_0
                            '(expression top-level)
                            '(expression top-level module module-begin)))))
                   (void)
                   (raise-argument-error
                    who36_0
                    (if as-transformer?22_0
                      "(or/c 'expression 'top-level list?)"
                      "(or/c 'expression 'top-level 'module 'module-begin list?)")
                    context38_0))
                 (begin
                   (if (let ((or-part_0 (not stop-ids39_0)))
                         (if or-part_0
                           or-part_0
                           (if (list? stop-ids39_0)
                             (andmap_2344 identifier? stop-ids39_0)
                             #f)))
                     (void)
                     (raise-argument-error
                      who36_0
                      "(or/c (listof identifier?) #f)"
                      stop-ids39_0))
                   (begin
                     (if (intdefs-or-false? intdefs35_0)
                       (void)
                       (raise-argument-error
                        who36_0
                        intdefs-or-false?-string
                        intdefs35_0))
                     (let ((ctx_0 (get-current-expand-context.1 #f who36_0)))
                       (let ((phase_0
                              (if as-transformer?22_0
                                (add1
                                 (begin-unsafe
                                  (expand-context/inner-phase
                                   (root-expand-context/outer-inner ctx_0))))
                                (begin-unsafe
                                 (expand-context/inner-phase
                                  (root-expand-context/outer-inner ctx_0))))))
                         (let ((local-ctx_0
                                (let ((temp83_0
                                       (if |keep-#%expression?24_0|
                                         |keep-#%expression?24_0|
                                         (if (begin-unsafe
                                              (expand-context/inner-in-local-expand?
                                               (root-expand-context/outer-inner
                                                ctx_0)))
                                           (begin-unsafe
                                            (|expand-context/inner-keep-#%expression?|
                                             (root-expand-context/outer-inner
                                              ctx_0)))
                                           #f))))
                                  (make-local-expand-context.1
                                   context38_0
                                   #t
                                   intdefs35_0
                                   temp83_0
                                   phase_0
                                   stop-ids39_0
                                   to-parsed-ok?23_0
                                   track-to-be-defined?26_0
                                   ctx_0))))
                           (begin
                             (with-continuation-mark*
                              push-authentic
                              current-expand-context
                              #f
                              (if (begin-unsafe
                                   (expand-context/inner-skip-visit-available?
                                    (root-expand-context/outer-inner ctx_0)))
                                (void)
                                (namespace-visit-available-modules!
                                 (begin-unsafe
                                  (expand-context/inner-namespace
                                   (root-expand-context/outer-inner ctx_0)))
                                 phase_0)))
                             (begin
                               (let ((obs_0
                                      (begin-unsafe
                                       (expand-context/inner-observer
                                        (root-expand-context/outer-inner
                                         local-ctx_0)))))
                                 (if obs_0
                                   (call-expand-observe obs_0 'enter-local s_0)
                                   (void)))
                               (let ((input-s_0
                                      (let ((temp85_0
                                             (begin-unsafe
                                              (flip-scopes
                                               s_0
                                               (begin-unsafe
                                                (expand-context/outer-current-introduction-scopes
                                                 ctx_0))))))
                                        (add-intdef-scopes.1
                                         unsafe-undefined
                                         #f
                                         temp85_0
                                         intdefs35_0))))
                                 (begin
                                   (if as-transformer?22_0
                                     (let ((obs_0
                                            (begin-unsafe
                                             (expand-context/inner-observer
                                              (root-expand-context/outer-inner
                                               local-ctx_0)))))
                                       (if obs_0
                                         (call-expand-observe obs_0 'phase-up)
                                         (void)))
                                     (void))
                                   (begin
                                     (let ((obs_0
                                            (begin-unsafe
                                             (expand-context/inner-observer
                                              (root-expand-context/outer-inner
                                               local-ctx_0)))))
                                       (if obs_0
                                         (call-expand-observe
                                          obs_0
                                          'local-pre
                                          input-s_0)
                                         (void)))
                                     (begin
                                       (if stop-ids39_0
                                         (let ((obs_0
                                                (begin-unsafe
                                                 (expand-context/inner-observer
                                                  (root-expand-context/outer-inner
                                                   local-ctx_0)))))
                                           (if obs_0
                                             (call-expand-observe obs_0 'start)
                                             (void)))
                                         (void))
                                       (let ((output-s_0
                                              (with-continuation-mark*
                                               push-authentic
                                               current-expand-context
                                               #f
                                               (if (if as-transformer?22_0
                                                     capture-lifts?21_0
                                                     #f)
                                                 (expand-transformer.1
                                                  #t
                                                  #t
                                                  context38_0
                                                  #f
                                                  #t
                                                  lift-key_0
                                                  input-s_0
                                                  local-ctx_0)
                                                 (if as-transformer?22_0
                                                   (let ((temp99_0
                                                          (eq?
                                                           'top-level
                                                           context38_0)))
                                                     (expand-transformer.1
                                                      #f
                                                      temp99_0
                                                      context38_0
                                                      #f
                                                      #t
                                                      lift-key_0
                                                      input-s_0
                                                      local-ctx_0))
                                                   (if capture-lifts?21_0
                                                     (expand/capture-lifts.1
                                                      #t
                                                      #t
                                                      #f
                                                      lift-key_0
                                                      input-s_0
                                                      local-ctx_0)
                                                     (expand.1
                                                      #f
                                                      #f
                                                      input-s_0
                                                      local-ctx_0)))))))
                                         (begin
                                           (let ((obs_0
                                                  (begin-unsafe
                                                   (expand-context/inner-observer
                                                    (root-expand-context/outer-inner
                                                     local-ctx_0)))))
                                             (if obs_0
                                               (call-expand-observe
                                                obs_0
                                                'local-post
                                                output-s_0)
                                               (void)))
                                           (let ((result-s_0
                                                  (if (parsed? output-s_0)
                                                    output-s_0
                                                    (begin-unsafe
                                                     (flip-scopes
                                                      output-s_0
                                                      (begin-unsafe
                                                       (expand-context/outer-current-introduction-scopes
                                                        ctx_0)))))))
                                             (begin
                                               (if skip-log-exit?27_0
                                                 (void)
                                                 (let ((obs_0
                                                        (begin-unsafe
                                                         (expand-context/inner-observer
                                                          (root-expand-context/outer-inner
                                                           local-ctx_0)))))
                                                   (if obs_0
                                                     (call-expand-observe
                                                      obs_0
                                                      'exit-local
                                                      result-s_0)
                                                     (void))))
                                               result-s_0)))))))))))))))))
             (if log-performance? (end-performance-region) (void)))))))))
(define transform-syntax-vals
  (lambda (f_0 vs_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((v_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (let ((fold-var_1
                                   (cons
                                    (if (syntax?$1 v_0) (|#%app| f_0 v_0) v_0)
                                    fold-var_0)))
                              (values fold-var_1))))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null vs_0))))))
(define 1/syntax-local-apply-transformer
  (|#%name|
   syntax-local-apply-transformer
   (lambda (transformer_0 binding-id_0 context_0 intdef-ctx_0 . args_0)
     (begin
       (begin
         (if (procedure? transformer_0)
           (void)
           (raise-argument-error
            'syntax-local-apply-transformer
            "procedure?"
            transformer_0))
         (begin
           (if (let ((or-part_0 (identifier? binding-id_0)))
                 (if or-part_0 or-part_0 (eq? binding-id_0 #f)))
             (void)
             (raise-argument-error
              'syntax-local-apply-transformer
              "(or/c identifier? #f)"
              binding-id_0))
           (begin
             (if (let ((or-part_0 (list? context_0)))
                   (if or-part_0
                     or-part_0
                     (memq
                      context_0
                      '(expression top-level module module-begin))))
               (void)
               (raise-argument-error
                'syntax-local-apply-transformer
                "(or/c 'expression 'top-level 'module 'module-begin list?)"
                context_0))
             (begin
               (if (let ((or-part_0 (not intdef-ctx_0)))
                     (if or-part_0
                       or-part_0
                       (1/internal-definition-context? intdef-ctx_0)))
                 (void)
                 (raise-argument-error
                  'syntax-local-apply-transformer
                  "(or/c internal-definition-context? #f)"
                  intdef-ctx_0))
               (let ((ctx_0
                      (get-current-expand-context.1
                       #f
                       'syntax-local-apply-transformer)))
                 (let ((local-ctx_0
                        (make-local-expand-context.1
                         context_0
                         #t
                         intdef-ctx_0
                         #t
                         unsafe-undefined
                         #f
                         #f
                         #f
                         ctx_0)))
                   (let ((scoped-args_0
                          (transform-syntax-vals
                           (lambda (s_0)
                             (let ((temp6_0
                                    (begin-unsafe
                                     (flip-scopes
                                      s_0
                                      (begin-unsafe
                                       (expand-context/outer-current-introduction-scopes
                                        ctx_0))))))
                               (add-intdef-scopes.1
                                unsafe-undefined
                                #f
                                temp6_0
                                intdef-ctx_0)))
                           args_0)))
                     (let ((scoped-binding-id_0
                            (if binding-id_0
                              (begin-unsafe
                               (flip-scopes
                                binding-id_0
                                (begin-unsafe
                                 (expand-context/outer-current-introduction-scopes
                                  ctx_0))))
                              #f)))
                       (let ((output-vals_0
                              (with-continuation-mark*
                               push-authentic
                               current-expand-context
                               #f
                               (apply-transformer
                                'syntax-local-apply-transformer
                                transformer_0
                                scoped-binding-id_0
                                scoped-args_0
                                local-ctx_0))))
                         (let ((result-vals_0
                                (transform-syntax-vals
                                 (lambda (s_0)
                                   (begin-unsafe
                                    (flip-scopes
                                     s_0
                                     (begin-unsafe
                                      (expand-context/outer-current-introduction-scopes
                                       ctx_0)))))
                                 output-vals_0)))
                           (apply values result-vals_0)))))))))))))))
(define apply-transformer
  (lambda (who_0 transformer_0 binding-id_0 args_0 ctx_0)
    (call-with-values
     (lambda ()
       (if binding-id_0
         (let ((binding_0
                (let ((temp9_0
                       (begin-unsafe
                        (expand-context/inner-phase
                         (root-expand-context/outer-inner ctx_0)))))
                  (resolve+shift.1
                   'ambiguous
                   #f
                   null
                   #t
                   #f
                   binding-id_0
                   temp9_0))))
           (begin
             (if (not binding_0)
               (error who_0 "unbound identifier: ~v" binding-id_0)
               (void))
             (call-with-values
              (lambda () (lookup.1 #f #t binding_0 ctx_0 binding-id_0))
              (case-lambda
               ((t_0 primitive?_0 insp-of-t_0 protected?_0)
                (values binding_0 insp-of-t_0))
               (args (raise-binding-result-arity-error 4 args))))))
         (values #f #f)))
     (case-lambda
      ((binding_0 insp-of-t_0)
       (let ((intro-scope_0 (new-scope 'macro)))
         (let ((use-scopes_0 (maybe-create-use-site-scope ctx_0 binding_0)))
           (let ((scope-arg_0
                  (|#%name|
                   scope-arg
                   (lambda (s_0)
                     (begin
                       (let ((intro-s_0 (add-scope s_0 intro-scope_0)))
                         (let ((use-s_0 (add-scopes intro-s_0 use-scopes_0)))
                           use-s_0)))))))
             (let ((scoped-args_0 (transform-syntax-vals scope-arg_0 args_0)))
               (let ((transformed-vals_0
                      (apply-transformer-in-context
                       transformer_0
                       scoped-args_0
                       ctx_0
                       intro-scope_0
                       use-scopes_0
                       binding-id_0
                       insp-of-t_0)))
                 (let ((scope-res_0
                        (|#%name|
                         scope-res
                         (lambda (s_0)
                           (begin
                             (let ((result-s_0 (flip-scope s_0 intro-scope_0)))
                               (let ((post-s_0
                                      (begin-unsafe
                                       (apply-post-expansion
                                        (begin-unsafe
                                         (root-expand-context/outer-post-expansion
                                          ctx_0))
                                        result-s_0))))
                                 post-s_0)))))))
                   (let ((result-vals_0
                          (transform-syntax-vals
                           scope-res_0
                           transformed-vals_0)))
                     result-vals_0))))))))
      (args (raise-binding-result-arity-error 2 args))))))
(define apply-transformer-in-context
  (lambda (transformer_0
           args_0
           ctx_0
           intro-scope_0
           use-scopes_0
           binding-id_0
           insp-of-t_0)
    (let ((m-ctx_0
           (if (expand-context/outer? ctx_0)
             (let ((current-introduction-scopes16_0 (list intro-scope_0)))
               (let ((inner18_0 (root-expand-context/outer-inner ctx_0)))
                 (expand-context/outer1.1
                  inner18_0
                  (root-expand-context/outer-post-expansion ctx_0)
                  (root-expand-context/outer-use-site-scopes ctx_0)
                  (root-expand-context/outer-frame-id ctx_0)
                  (expand-context/outer-context ctx_0)
                  (expand-context/outer-env ctx_0)
                  (expand-context/outer-scopes ctx_0)
                  (expand-context/outer-def-ctx-scopes ctx_0)
                  (expand-context/outer-binding-layer ctx_0)
                  (expand-context/outer-reference-records ctx_0)
                  (expand-context/outer-only-immediate? ctx_0)
                  (expand-context/outer-need-eventually-defined ctx_0)
                  current-introduction-scopes16_0
                  use-scopes_0
                  (expand-context/outer-name ctx_0))))
             (raise-argument-error
              'struct-copy
              "expand-context/outer?"
              ctx_0))))
      (let ((transformed-vals_0
             (with-continuation-mark*
              push-authentic
              parameterization-key
              (let ((app_0
                     (continuation-mark-set-first #f parameterization-key)))
                (extend-parameterization
                 app_0
                 1/current-namespace
                 (namespace->namespace-at-phase
                  (begin-unsafe
                   (expand-context/inner-namespace
                    (root-expand-context/outer-inner ctx_0)))
                  (add1
                   (begin-unsafe
                    (expand-context/inner-phase
                     (root-expand-context/outer-inner ctx_0)))))))
              (with-continuation-mark*
               authentic
               current-expand-context
               m-ctx_0
               (with-continuation-mark*
                authentic
                current-module-code-inspector
                (let ((b_0 (current-module-code-inspector)))
                  (if (eq? insp-of-t_0 b_0)
                    insp-of-t_0
                    (if (not insp-of-t_0)
                      #f
                      (if (not b_0)
                        #f
                        (if (inspector-superior? insp-of-t_0 b_0)
                          b_0
                          (if (inspector-superior? b_0 insp-of-t_0)
                            insp-of-t_0
                            #f))))))
                (call-with-continuation-barrier
                 (lambda ()
                   (call-with-values
                    (lambda () (apply transformer_0 args_0))
                    list))))))))
        transformed-vals_0))))
(define 1/syntax-tainted?
  (|#%name|
   syntax-tainted?
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-tainted? "syntax?" s_0))
         (syntax-tainted?$1 s_0))))))
(define 1/syntax-arm
  (let ((syntax-arm_0
         (|#%name|
          syntax-arm
          (lambda (s3_0 maybe-insp1_0 use-mode?2_0)
            (begin
              (begin
                (if (syntax?$1 s3_0)
                  (void)
                  (raise-argument-error 'syntax-arm "syntax?" s3_0))
                (if (let ((or-part_0 (not maybe-insp1_0)))
                      (if or-part_0 or-part_0 (inspector? maybe-insp1_0)))
                  (void)
                  (raise-argument-error
                   'syntax-arm
                   "(or/c inspector? #f)"
                   maybe-insp1_0))
                s3_0))))))
    (|#%name|
     syntax-arm
     (case-lambda
      ((s_0) (begin (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))
      ((s_0 maybe-insp1_0) (syntax-arm_0 s_0 maybe-insp1_0 #f))))))
(define 1/syntax-disarm
  (|#%name|
   syntax-disarm
   (lambda (s_0 maybe-insp_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-disarm "syntax?" s_0))
         (if (let ((or-part_0 (not maybe-insp_0)))
               (if or-part_0 or-part_0 (inspector? maybe-insp_0)))
           (void)
           (raise-argument-error
            'syntax-disarm
            "(or/c inspector? #f)"
            maybe-insp_0))
         s_0)))))
(define 1/syntax-rearm
  (let ((syntax-rearm_0
         (|#%name|
          syntax-rearm
          (lambda (s5_0 from-s6_0 use-mode?4_0)
            (begin
              (begin
                (if (syntax?$1 s5_0)
                  (void)
                  (raise-argument-error 'syntax-rearm "syntax?" s5_0))
                (if (syntax?$1 from-s6_0)
                  (void)
                  (raise-argument-error 'syntax-rearm "syntax?" from-s6_0))
                s5_0))))))
    (|#%name|
     syntax-rearm
     (case-lambda
      ((s_0 from-s_0) (begin (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))))))
(define 1/syntax-taint
  (|#%name|
   syntax-taint
   (lambda (s_0)
     (begin
       (begin
         (if (syntax?$1 s_0)
           (void)
           (raise-argument-error 'syntax-taint "syntax?" s_0))
         (syntax-taint$1 s_0))))))
(define finish_2681
  (make-struct-type-install-properties
   '(serialized-syntax)
   5
   0
   #f
   null
   'prefab
   #f
   '(0 1 2 3 4)
   #f
   'serialized-syntax))
(define struct:serialized-syntax
  (make-record-type-descriptor
   'serialized-syntax
   #f
   (structure-type-lookup-prefab-uid 'serialized-syntax #f 5 0 #f '(0 1 2 3 4))
   #f
   #f
   '(5 . 31)))
(define effect_2423 (finish_2681 struct:serialized-syntax))
(define serialized-syntax1.1
  (|#%name|
   serialized-syntax
   (record-constructor
    (make-record-constructor-descriptor struct:serialized-syntax #f #f))))
(define serialized-syntax?_2448
  (|#%name| serialized-syntax? (record-predicate struct:serialized-syntax)))
(define serialized-syntax?
  (|#%name|
   serialized-syntax?
   (lambda (v)
     (if (serialized-syntax?_2448 v)
       #t
       ($value
        (if (impersonator? v)
          (serialized-syntax?_2448 (impersonator-val v))
          #f))))))
(define serialized-syntax-version_3038
  (|#%name|
   serialized-syntax-version
   (record-accessor struct:serialized-syntax 0)))
(define serialized-syntax-version
  (|#%name|
   serialized-syntax-version
   (lambda (s)
     (if (serialized-syntax?_2448 s)
       (serialized-syntax-version_3038 s)
       ($value
        (impersonate-ref
         serialized-syntax-version_3038
         struct:serialized-syntax
         0
         s
         'version))))))
(define serialized-syntax-mpis_2591
  (|#%name|
   serialized-syntax-mpis
   (record-accessor struct:serialized-syntax 1)))
(define serialized-syntax-mpis
  (|#%name|
   serialized-syntax-mpis
   (lambda (s)
     (if (serialized-syntax?_2448 s)
       (serialized-syntax-mpis_2591 s)
       ($value
        (impersonate-ref
         serialized-syntax-mpis_2591
         struct:serialized-syntax
         1
         s
         'mpis))))))
(define serialized-syntax-base-mpi-pos_2382
  (|#%name|
   serialized-syntax-base-mpi-pos
   (record-accessor struct:serialized-syntax 2)))
(define serialized-syntax-base-mpi-pos
  (|#%name|
   serialized-syntax-base-mpi-pos
   (lambda (s)
     (if (serialized-syntax?_2448 s)
       (serialized-syntax-base-mpi-pos_2382 s)
       ($value
        (impersonate-ref
         serialized-syntax-base-mpi-pos_2382
         struct:serialized-syntax
         2
         s
         'base-mpi-pos))))))
(define serialized-syntax-data_2598
  (|#%name|
   serialized-syntax-data
   (record-accessor struct:serialized-syntax 3)))
(define serialized-syntax-data
  (|#%name|
   serialized-syntax-data
   (lambda (s)
     (if (serialized-syntax?_2448 s)
       (serialized-syntax-data_2598 s)
       ($value
        (impersonate-ref
         serialized-syntax-data_2598
         struct:serialized-syntax
         3
         s
         'data))))))
(define serialized-syntax-need-registry?_3073
  (|#%name|
   serialized-syntax-need-registry?
   (record-accessor struct:serialized-syntax 4)))
(define serialized-syntax-need-registry?
  (|#%name|
   serialized-syntax-need-registry?
   (lambda (s)
     (if (serialized-syntax?_2448 s)
       (serialized-syntax-need-registry?_3073 s)
       ($value
        (impersonate-ref
         serialized-syntax-need-registry?_3073
         struct:serialized-syntax
         4
         s
         'need-registry?))))))
(define 1/syntax-serialize
  (let ((syntax-serialize_0
         (|#%name|
          syntax-serialize
          (lambda (stx5_0
                   base-mpi2_0
                   preserve-prop-keys3_0
                   provides-namespace4_0)
            (begin
              (let ((provides-namespace_0
                     (if (eq? provides-namespace4_0 unsafe-undefined)
                       (1/current-namespace)
                       provides-namespace4_0)))
                (begin
                  (if (syntax?$1 stx5_0)
                    (void)
                    (raise-argument-error 'syntax-serialize "syntax?" stx5_0))
                  (begin
                    (if (let ((or-part_0 (not base-mpi2_0)))
                          (if or-part_0
                            or-part_0
                            (1/module-path-index? base-mpi2_0)))
                      (void)
                      (raise-argument-error
                       'syntax-serialize
                       "(or/c module-path-index? #f)"
                       base-mpi2_0))
                    (begin
                      (if (if (list? preserve-prop-keys3_0)
                            (andmap_2344 symbol? preserve-prop-keys3_0)
                            #f)
                        (void)
                        (raise-argument-error
                         'syntax-serialize
                         "(listof symbol?)"
                         preserve-prop-keys3_0))
                      (begin
                        (if (let ((or-part_0 (not provides-namespace_0)))
                              (if or-part_0
                                or-part_0
                                (1/namespace? provides-namespace_0)))
                          (void)
                          (raise-argument-error
                           'syntax-serialize
                           "(or/c namespace? #f)"
                           provides-namespace_0))
                        (let ((mpis_0 (make-module-path-index-table)))
                          (let ((base-mpi-pos_0
                                 (if base-mpi2_0
                                   (add-module-path-index!/pos
                                    mpis_0
                                    base-mpi2_0)
                                   #f)))
                            (let ((data_0
                                   (let ((temp13_0
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (table_0 lst_0)
                                                  (begin
                                                    (if (pair? lst_0)
                                                      (let ((k_0
                                                             (unsafe-car
                                                              lst_0)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_0)))
                                                          (let ((table_1
                                                                 (let ((table_1
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (values
                                                                            k_0
                                                                            #t))
                                                                         (case-lambda
                                                                          ((key_0
                                                                            val_0)
                                                                           (hash-set
                                                                            table_0
                                                                            key_0
                                                                            val_0))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args))))))
                                                                   (values
                                                                    table_1))))
                                                            (for-loop_0
                                                             table_1
                                                             rest_0))))
                                                      table_0))))))
                                             (for-loop_0
                                              hash2610
                                              preserve-prop-keys3_0)))))
                                     (let ((temp14_0
                                            (if provides-namespace_0
                                              (|#%name|
                                               temp14
                                               (lambda (modname_0)
                                                 (begin
                                                   (not
                                                    (namespace->module
                                                     provides-namespace_0
                                                     modname_0)))))
                                              (|#%name|
                                               temp14
                                               (lambda (modname_0)
                                                 (begin #t))))))
                                       (let ((temp13_1 temp13_0))
                                         (generate-deserialize.1
                                          #t
                                          temp14_0
                                          mpis_0
                                          #f
                                          temp13_1
                                          #t
                                          stx5_0))))))
                              (serialized-syntax1.1
                               (version)
                               (generate-module-path-index-deserialize.1
                                #t
                                mpis_0)
                               base-mpi-pos_0
                               data_0
                               (if provides-namespace_0 #t #f)))))))))))))))
    (|#%name|
     syntax-serialize
     (case-lambda
      ((stx_0) (begin (syntax-serialize_0 stx_0 #f '() unsafe-undefined)))
      ((stx_0 base-mpi_0 preserve-prop-keys_0 provides-namespace4_0)
       (syntax-serialize_0
        stx_0
        base-mpi_0
        preserve-prop-keys_0
        provides-namespace4_0))
      ((stx_0 base-mpi_0 preserve-prop-keys3_0)
       (syntax-serialize_0
        stx_0
        base-mpi_0
        preserve-prop-keys3_0
        unsafe-undefined))
      ((stx_0 base-mpi2_0)
       (syntax-serialize_0 stx_0 base-mpi2_0 '() unsafe-undefined))))))
(define 1/syntax-deserialize
  (let ((syntax-deserialize_0
         (|#%name|
          syntax-deserialize
          (lambda (data7_0 base-mpi6_0)
            (begin
              (begin
                (if (let ((or-part_0 (not base-mpi6_0)))
                      (if or-part_0
                        or-part_0
                        (1/module-path-index? base-mpi6_0)))
                  (void)
                  (raise-argument-error
                   'syntax-deserialize
                   "(or/c module-path-index? #f)"
                   base-mpi6_0))
                (begin
                  (if (serialized-syntax? data7_0)
                    (void)
                    (raise-arguments-error
                     'syntax-deserialize
                     "invalid serialized form"
                     "value"
                     data7_0))
                  (begin
                    (if (equal? (version) (serialized-syntax-version data7_0))
                      (void)
                      (raise-arguments-error
                       'syntax-deserialize
                       "version mismatch"
                       "expected"
                       (version)
                       "found"
                       (serialized-syntax-version data7_0)))
                    (begin
                      (if (eq? (current-code-inspector) initial-code-inspector)
                        (void)
                        (error
                         'syntax-deserialize
                         "deserialization disallowed by code inspector"))
                      (let ((orig-mpis_0
                             (deserialize-module-path-index-data
                              (serialized-syntax-mpis data7_0))))
                        (let ((orig-base-mpi_0
                               (if base-mpi6_0
                                 (let ((pos_0
                                        (serialized-syntax-base-mpi-pos
                                         data7_0)))
                                   (if pos_0
                                     (vector-ref orig-mpis_0 pos_0)
                                     #f))
                                 #f)))
                          (let ((shifted-mpis_0
                                 (if orig-base-mpi_0
                                   (let ((len_0 (vector-length orig-mpis_0)))
                                     (begin
                                       (if (exact-nonnegative-integer? len_0)
                                         (void)
                                         (raise-argument-error
                                          'for/vector
                                          "exact-nonnegative-integer?"
                                          len_0))
                                       (let ((v_0 (make-vector len_0 0)))
                                         (begin
                                           (if (zero? len_0)
                                             (void)
                                             (call-with-values
                                              (lambda ()
                                                (begin
                                                  (check-vector orig-mpis_0)
                                                  (values
                                                   orig-mpis_0
                                                   (unsafe-vector-length
                                                    orig-mpis_0))))
                                              (case-lambda
                                               ((vec_0 len_1)
                                                (begin
                                                  #f
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (i_0 pos_0)
                                                        (begin
                                                          (if (unsafe-fx<
                                                               pos_0
                                                               len_1)
                                                            (let ((mpi_0
                                                                   (unsafe-vector-ref
                                                                    vec_0
                                                                    pos_0)))
                                                              (let ((i_1
                                                                     (let ((i_1
                                                                            (begin
                                                                              (unsafe-vector*-set!
                                                                               v_0
                                                                               i_0
                                                                               (module-path-index-shift
                                                                                mpi_0
                                                                                orig-base-mpi_0
                                                                                base-mpi6_0))
                                                                              (unsafe-fx+
                                                                               1
                                                                               i_0))))
                                                                       (values
                                                                        i_1))))
                                                                (if (if (not
                                                                         (let ((x_0
                                                                                (list
                                                                                 mpi_0)))
                                                                           (unsafe-fx=
                                                                            i_1
                                                                            len_0)))
                                                                      #t
                                                                      #f)
                                                                  (for-loop_0
                                                                   i_1
                                                                   (unsafe-fx+
                                                                    1
                                                                    pos_0))
                                                                  i_1)))
                                                            i_0))))))
                                                   (for-loop_0 0 0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                           v_0))))
                                   orig-mpis_0)))
                            (let ((bulk-binding-registry_0
                                   (if (serialized-syntax-need-registry?
                                        data7_0)
                                     (namespace-bulk-binding-registry
                                      (1/current-namespace))
                                     #f)))
                              (deserialize-data
                               shifted-mpis_0
                               #f
                               bulk-binding-registry_0
                               (serialized-syntax-data data7_0)))))))))))))))
    (|#%name|
     syntax-deserialize
     (case-lambda
      ((data_0) (begin (syntax-deserialize_0 data_0 #f)))
      ((data_0 base-mpi6_0) (syntax-deserialize_0 data_0 base-mpi6_0))))))
(define 1/variable-reference->empty-namespace
  (|#%name|
   variable-reference->empty-namespace
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->empty-namespace
            "variable-reference?"
            vr_0))
         (let ((temp2_0 (1/variable-reference->namespace vr_0)))
           (new-namespace.1 #t unsafe-undefined temp2_0)))))))
(define 1/variable-reference->namespace
  (|#%name|
   variable-reference->namespace
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->namespace
            "variable-reference?"
            vr_0))
         (let ((ns_0 (variable-reference->namespace* vr_0)))
           (let ((mpi_0 (namespace-mpi ns_0)))
             (begin
               (if (non-self-module-path-index? mpi_0)
                 (with-continuation-mark*
                  push-authentic
                  parameterization-key
                  (extend-parameterization
                   (continuation-mark-set-first #f parameterization-key)
                   1/current-namespace
                   ns_0)
                  (let ((temp6_0 (namespace-0-phase ns_0)))
                    (namespace-module-make-available!.1
                     #f
                     unsafe-undefined
                     ns_0
                     mpi_0
                     temp6_0)))
                 (void))
               ns_0))))))))
(define variable-reference->namespace*
  (lambda (vr_0)
    (let ((inst_0 (variable-reference->instance vr_0)))
      (if (symbol? inst_0)
        (let ((app_0 (list 'quote inst_0)))
          (1/module->namespace
           app_0
           (instance-data (variable-reference->instance vr_0 #t))))
        (if (not inst_0)
          (instance-data (variable-reference->instance vr_0 #t))
          (instance-data inst_0))))))
(define 1/variable-reference->module-path-index
  (|#%name|
   variable-reference->module-path-index
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->module-path-index
            "variable-reference?"
            vr_0))
         (let ((mpi_0 (namespace-mpi (variable-reference->namespace* vr_0))))
           (if (begin-unsafe (eq? top-level-module-path-index mpi_0))
             #f
             mpi_0)))))))
(define 1/variable-reference->resolved-module-path
  (|#%name|
   variable-reference->resolved-module-path
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->resolved-module-path
            "variable-reference?"
            vr_0))
         (let ((mpi_0 (1/variable-reference->module-path-index vr_0)))
           (if mpi_0 (1/module-path-index-resolve mpi_0) #f)))))))
(define 1/variable-reference->module-source
  (|#%name|
   variable-reference->module-source
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->module-source
            "variable-reference?"
            vr_0))
         (let ((ns_0 (variable-reference->namespace* vr_0)))
           (namespace-source-name ns_0)))))))
(define 1/variable-reference->phase
  (|#%name|
   variable-reference->phase
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->phase
            "variable-reference?"
            vr_0))
         (namespace-phase (variable-reference->namespace* vr_0)))))))
(define 1/variable-reference->module-base-phase
  (|#%name|
   variable-reference->module-base-phase
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->module-base-phase
            "variable-reference?"
            vr_0))
         (namespace-0-phase (variable-reference->namespace* vr_0)))))))
(define 1/variable-reference->module-declaration-inspector
  (|#%name|
   variable-reference->module-declaration-inspector
   (lambda (vr_0)
     (begin
       (begin
         (if (variable-reference? vr_0)
           (void)
           (raise-argument-error
            'variable-reference->module-declaration-inspector
            "variable-reference?"
            vr_0))
         (if (variable-reference->instance vr_0)
           (raise-arguments-error
            'variable-reference->module-declaration-inspector
            "variable reference does not refer to an anonymous module variable"
            "variable reference"
            vr_0)
           (void))
         (let ((or-part_0
                (namespace-declaration-inspector
                 (variable-reference->namespace* vr_0))))
           (if or-part_0
             or-part_0
             (raise-arguments-error
              'variable-reference->module-declaration-inspector
              "given variable reference is not from a module"))))))))
(define primitive-ids
  (seteq
   'syntax?
   'syntax-e
   'syntax->datum
   'datum->syntax
   'bound-identifier=?
   'free-identifier=?
   'free-transformer-identifier=?
   'free-template-identifier=?
   'free-label-identifier=?
   'identifier-binding
   'identifier-transformer-binding
   'identifier-template-binding
   'identifier-label-binding
   'identifier-binding-symbol
   'identifier-distinct-binding
   'identifier-binding-portal-syntax
   'identifier-prune-lexical-context
   'syntax-debug-info
   'syntax-track-origin
   'syntax-shift-phase-level
   'syntax-source-module
   'identifier-prune-to-source-module
   'syntax-bound-symbols
   'syntax-bound-phases
   'syntax-srcloc
   'syntax-source
   'syntax-line
   'syntax-column
   'syntax-position
   'syntax-span
   'syntax->list
   'syntax-property
   'syntax-property-remove
   'syntax-property-preserved?
   'syntax-property-symbol-keys
   'syntax-original?
   'syntax-tainted?
   'syntax-arm
   'syntax-disarm
   'syntax-rearm
   'syntax-taint
   'syntax-binding-set
   'syntax-binding-set?
   'syntax-binding-set-extend
   'syntax-binding-set->syntax
   'syntax-serialize
   'syntax-deserialize
   'do-raise-syntax-error
   'raise-syntax-error
   'struct:exn:fail:syntax
   'exn:fail:syntax
   'make-exn:fail:syntax
   'exn:fail:syntax?
   'exn:fail:syntax-exprs
   'struct:exn:fail:syntax:unbound
   'exn:fail:syntax:unbound
   'make-exn:fail:syntax:unbound
   'exn:fail:syntax:unbound?
   'current-module-path-for-load
   'prop:exn:missing-module
   'exn:missing-module?
   'exn:missing-module-accessor
   'struct:exn:fail:filesystem:missing-module
   'exn:fail:filesystem:missing-module
   'make-exn:fail:filesystem:missing-module
   'exn:fail:filesystem:missing-module?
   'exn:fail:filesystem:missing-module-path
   'struct:exn:fail:syntax:missing-module
   'exn:fail:syntax:missing-module
   'make-exn:fail:syntax:missing-module
   'exn:fail:syntax:missing-module?
   'exn:fail:syntax:missing-module-path
   'syntax-transforming?
   'syntax-transforming-with-lifts?
   'syntax-transforming-module-expression?
   'syntax-local-transforming-module-provides?
   'syntax-local-context
   'syntax-local-introduce
   'syntax-local-identifier-as-binding
   'syntax-local-phase-level
   'syntax-local-name
   'make-syntax-introducer
   'make-interned-syntax-introducer
   'make-syntax-delta-introducer
   'syntax-local-make-delta-introducer
   'syntax-local-value
   'syntax-local-value/immediate
   'syntax-local-lift-expression
   'syntax-local-lift-values-expression
   'syntax-local-lift-context
   'syntax-local-lift-module
   'syntax-local-lift-require
   'syntax-local-lift-provide
   'syntax-local-lift-module-end-declaration
   'syntax-local-module-defined-identifiers
   'syntax-local-module-required-identifiers
   'syntax-local-module-exports
   'syntax-local-submodules
   'syntax-local-module-interned-scope-symbols
   'syntax-local-get-shadower
   'syntax-local-apply-transformer
   'local-expand
   'local-expand/capture-lifts
   'local-transformer-expand
   'local-transformer-expand/capture-lifts
   'syntax-local-expand-expression
   'internal-definition-context?
   'syntax-local-make-definition-context
   'syntax-local-bind-syntaxes
   'internal-definition-context-binding-identifiers
   'internal-definition-context-introduce
   'internal-definition-context-seal
   'identifier-remove-from-definition-context
   'internal-definition-context-add-scopes
   'internal-definition-context-splice-binding-identifier
   'make-set!-transformer
   'prop:set!-transformer
   'set!-transformer?
   'set!-transformer-procedure
   'rename-transformer?
   'prop:rename-transformer
   'make-rename-transformer
   'rename-transformer-target
   'portal-syntax?
   'make-portal-syntax
   'portal-syntax-content
   'prop:liberal-define-context
   'liberal-define-context?
   'prop:expansion-contexts
   'module-path?
   'resolved-module-path?
   'make-resolved-module-path
   'resolved-module-path-name
   'module-path-index?
   'module-path-index-resolve
   'module-path-index-join
   'module-path-index-split
   'module-path-index-submodule
   'current-module-name-resolver
   'current-module-declare-name
   'current-module-declare-source
   'current-namespace
   'namespace-module-registry
   'namespace?
   'variable-reference->empty-namespace
   'variable-reference->namespace
   'variable-reference->resolved-module-path
   'variable-reference->module-path-index
   'variable-reference->module-source
   'variable-reference->phase
   'variable-reference->module-base-phase
   'variable-reference->module-declaration-inspector
   'read-syntax
   'read-syntax/recursive))
(define effect_2033
  (begin
    (void
     (begin
       (add-core-primitive!.1 #f 'syntax? syntax?$1)
       (add-core-primitive!.1 #f 'syntax-e 1/syntax-e)
       (add-core-primitive!.1 #f 'syntax->datum 1/syntax->datum)
       (add-core-primitive!.1 #f 'datum->syntax 1/datum->syntax)
       (add-core-primitive!.1 #f 'bound-identifier=? 1/bound-identifier=?)
       (add-core-primitive!.1 #f 'free-identifier=? 1/free-identifier=?)
       (add-core-primitive!.1
        #f
        'free-transformer-identifier=?
        1/free-transformer-identifier=?)
       (add-core-primitive!.1
        #f
        'free-template-identifier=?
        1/free-template-identifier=?)
       (add-core-primitive!.1
        #f
        'free-label-identifier=?
        1/free-label-identifier=?)
       (add-core-primitive!.1 #f 'identifier-binding 1/identifier-binding)
       (add-core-primitive!.1
        #f
        'identifier-transformer-binding
        1/identifier-transformer-binding)
       (add-core-primitive!.1
        #f
        'identifier-template-binding
        1/identifier-template-binding)
       (add-core-primitive!.1
        #f
        'identifier-label-binding
        1/identifier-label-binding)
       (add-core-primitive!.1
        #f
        'identifier-binding-symbol
        1/identifier-binding-symbol)
       (add-core-primitive!.1
        #f
        'identifier-distinct-binding
        1/identifier-distinct-binding)
       (add-core-primitive!.1
        #t
        'identifier-binding-portal-syntax
        1/identifier-binding-portal-syntax)
       (add-core-primitive!.1
        #f
        'identifier-prune-lexical-context
        1/identifier-prune-lexical-context)
       (add-core-primitive!.1 #f 'syntax-debug-info 1/syntax-debug-info)
       (add-core-primitive!.1 #f 'syntax-track-origin 1/syntax-track-origin)
       (add-core-primitive!.1
        #f
        'syntax-shift-phase-level
        1/syntax-shift-phase-level)
       (add-core-primitive!.1 #f 'syntax-source-module 1/syntax-source-module)
       (add-core-primitive!.1
        #f
        'identifier-prune-to-source-module
        1/identifier-prune-to-source-module)
       (add-core-primitive!.1 #f 'syntax-bound-symbols 1/syntax-bound-symbols)
       (add-core-primitive!.1 #f 'syntax-bound-phases 1/syntax-bound-phases)
       (add-core-primitive!.1 #f 'syntax-srcloc 1/syntax-srcloc)
       (add-core-primitive!.1 #f 'syntax-source 1/syntax-source)
       (add-core-primitive!.1 #f 'syntax-line 1/syntax-line)
       (add-core-primitive!.1 #f 'syntax-column 1/syntax-column)
       (add-core-primitive!.1 #f 'syntax-position 1/syntax-position)
       (add-core-primitive!.1 #f 'syntax-span 1/syntax-span)
       (add-core-primitive!.1 #f 'syntax->list 1/syntax->list)
       (add-core-primitive!.1 #f 'syntax-property syntax-property$1)
       (add-core-primitive!.1
        #f
        'syntax-property-remove
        1/syntax-property-remove)
       (add-core-primitive!.1
        #f
        'syntax-property-preserved?
        1/syntax-property-preserved?)
       (add-core-primitive!.1
        #f
        'syntax-property-symbol-keys
        1/syntax-property-symbol-keys)
       (add-core-primitive!.1 #f 'syntax-original? 1/syntax-original?)
       (add-core-primitive!.1 #f 'syntax-tainted? 1/syntax-tainted?)
       (add-core-primitive!.1 #f 'syntax-arm 1/syntax-arm)
       (add-core-primitive!.1 #f 'syntax-disarm 1/syntax-disarm)
       (add-core-primitive!.1 #f 'syntax-rearm 1/syntax-rearm)
       (add-core-primitive!.1 #f 'syntax-taint 1/syntax-taint)
       (add-core-primitive!.1 #f 'syntax-binding-set 1/syntax-binding-set)
       (add-core-primitive!.1 #f 'syntax-binding-set? 1/syntax-binding-set?)
       (add-core-primitive!.1
        #f
        'syntax-binding-set-extend
        1/syntax-binding-set-extend)
       (add-core-primitive!.1
        #f
        'syntax-binding-set->syntax
        1/syntax-binding-set->syntax)
       (add-core-primitive!.1 #f 'syntax-serialize 1/syntax-serialize)
       (add-core-primitive!.1 #f 'syntax-deserialize 1/syntax-deserialize)
       (add-core-primitive!.1
        #f
        'do-raise-syntax-error
        1/do-raise-syntax-error)
       (add-core-primitive!.1 #f 'raise-syntax-error raise-syntax-error$1)
       (add-core-primitive!.1
        #f
        'struct:exn:fail:syntax
        1/struct:exn:fail:syntax)
       (add-core-primitive!.1 #f 'exn:fail:syntax make-exn:fail:syntax$1)
       (add-core-primitive!.1 #f 'make-exn:fail:syntax make-exn:fail:syntax$1)
       (add-core-primitive!.1 #f 'exn:fail:syntax? 1/exn:fail:syntax?)
       (add-core-primitive!.1
        #f
        'exn:fail:syntax-exprs
        1/exn:fail:syntax-exprs)
       (add-core-primitive!.1
        #f
        'struct:exn:fail:syntax:unbound
        1/struct:exn:fail:syntax:unbound)
       (add-core-primitive!.1
        #f
        'exn:fail:syntax:unbound
        make-exn:fail:syntax:unbound$1)
       (add-core-primitive!.1
        #f
        'make-exn:fail:syntax:unbound
        make-exn:fail:syntax:unbound$1)
       (add-core-primitive!.1
        #f
        'exn:fail:syntax:unbound?
        1/exn:fail:syntax:unbound?)
       (add-core-primitive!.1
        #f
        'current-module-path-for-load
        1/current-module-path-for-load)
       (add-core-primitive!.1
        #f
        'prop:exn:missing-module
        1/prop:exn:missing-module)
       (add-core-primitive!.1 #f 'exn:missing-module? 1/exn:missing-module?)
       (add-core-primitive!.1
        #f
        'exn:missing-module-accessor
        1/exn:missing-module-accessor)
       (add-core-primitive!.1
        #f
        'struct:exn:fail:filesystem:missing-module
        1/struct:exn:fail:filesystem:missing-module)
       (add-core-primitive!.1
        #f
        'exn:fail:filesystem:missing-module
        1/make-exn:fail:filesystem:missing-module)
       (add-core-primitive!.1
        #f
        'make-exn:fail:filesystem:missing-module
        1/make-exn:fail:filesystem:missing-module)
       (add-core-primitive!.1
        #f
        'exn:fail:filesystem:missing-module?
        1/exn:fail:filesystem:missing-module?)
       (add-core-primitive!.1
        #f
        'exn:fail:filesystem:missing-module-path
        1/exn:fail:filesystem:missing-module-path)
       (add-core-primitive!.1
        #f
        'struct:exn:fail:syntax:missing-module
        1/struct:exn:fail:syntax:missing-module)
       (add-core-primitive!.1
        #f
        'exn:fail:syntax:missing-module
        1/make-exn:fail:syntax:missing-module)
       (add-core-primitive!.1
        #f
        'make-exn:fail:syntax:missing-module
        1/make-exn:fail:syntax:missing-module)
       (add-core-primitive!.1
        #f
        'exn:fail:syntax:missing-module?
        1/exn:fail:syntax:missing-module?)
       (add-core-primitive!.1
        #f
        'exn:fail:syntax:missing-module-path
        1/exn:fail:syntax:missing-module-path)
       (add-core-primitive!.1 #f 'syntax-transforming? 1/syntax-transforming?)
       (add-core-primitive!.1
        #f
        'syntax-transforming-with-lifts?
        1/syntax-transforming-with-lifts?)
       (add-core-primitive!.1
        #f
        'syntax-transforming-module-expression?
        1/syntax-transforming-module-expression?)
       (add-core-primitive!.1
        #f
        'syntax-local-transforming-module-provides?
        1/syntax-local-transforming-module-provides?)
       (add-core-primitive!.1 #f 'syntax-local-context 1/syntax-local-context)
       (add-core-primitive!.1
        #f
        'syntax-local-introduce
        1/syntax-local-introduce)
       (add-core-primitive!.1
        #f
        'syntax-local-identifier-as-binding
        1/syntax-local-identifier-as-binding)
       (add-core-primitive!.1
        #f
        'syntax-local-phase-level
        1/syntax-local-phase-level)
       (add-core-primitive!.1 #f 'syntax-local-name 1/syntax-local-name)
       (add-core-primitive!.1
        #f
        'make-syntax-introducer
        1/make-syntax-introducer)
       (add-core-primitive!.1
        #f
        'make-interned-syntax-introducer
        1/make-interned-syntax-introducer)
       (add-core-primitive!.1
        #f
        'make-syntax-delta-introducer
        1/make-syntax-delta-introducer)
       (add-core-primitive!.1
        #f
        'syntax-local-make-delta-introducer
        1/syntax-local-make-delta-introducer)
       (add-core-primitive!.1 #t 'syntax-local-value 1/syntax-local-value)
       (add-core-primitive!.1
        #t
        'syntax-local-value/immediate
        1/syntax-local-value/immediate)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-expression
        1/syntax-local-lift-expression)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-values-expression
        1/syntax-local-lift-values-expression)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-context
        1/syntax-local-lift-context)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-module
        1/syntax-local-lift-module)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-require
        1/syntax-local-lift-require)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-provide
        1/syntax-local-lift-provide)
       (add-core-primitive!.1
        #f
        'syntax-local-lift-module-end-declaration
        1/syntax-local-lift-module-end-declaration)
       (add-core-primitive!.1
        #f
        'syntax-local-module-defined-identifiers
        1/syntax-local-module-defined-identifiers)
       (add-core-primitive!.1
        #f
        'syntax-local-module-required-identifiers
        1/syntax-local-module-required-identifiers)
       (add-core-primitive!.1
        #f
        'syntax-local-module-exports
        1/syntax-local-module-exports)
       (add-core-primitive!.1
        #f
        'syntax-local-submodules
        1/syntax-local-submodules)
       (add-core-primitive!.1
        #f
        'syntax-local-module-interned-scope-symbols
        1/syntax-local-module-interned-scope-symbols)
       (add-core-primitive!.1
        #f
        'syntax-local-get-shadower
        1/syntax-local-get-shadower)
       (add-core-primitive!.1
        #f
        'syntax-local-apply-transformer
        1/syntax-local-apply-transformer)
       (add-core-primitive!.1 #t 'local-expand 1/local-expand)
       (add-core-primitive!.1
        #t
        'local-expand/capture-lifts
        1/local-expand/capture-lifts)
       (add-core-primitive!.1
        #t
        'local-transformer-expand
        1/local-transformer-expand)
       (add-core-primitive!.1
        #t
        'local-transformer-expand/capture-lifts
        1/local-transformer-expand/capture-lifts)
       (add-core-primitive!.1
        #t
        'syntax-local-expand-expression
        1/syntax-local-expand-expression)
       (add-core-primitive!.1
        #f
        'internal-definition-context?
        1/internal-definition-context?)
       (add-core-primitive!.1
        #f
        'syntax-local-make-definition-context
        1/syntax-local-make-definition-context)
       (add-core-primitive!.1
        #f
        'syntax-local-bind-syntaxes
        1/syntax-local-bind-syntaxes)
       (add-core-primitive!.1
        #f
        'internal-definition-context-binding-identifiers
        1/internal-definition-context-binding-identifiers)
       (add-core-primitive!.1
        #f
        'internal-definition-context-introduce
        1/internal-definition-context-introduce)
       (add-core-primitive!.1
        #f
        'internal-definition-context-seal
        1/internal-definition-context-seal)
       (add-core-primitive!.1
        #f
        'identifier-remove-from-definition-context
        1/identifier-remove-from-definition-context)
       (add-core-primitive!.1
        #f
        'internal-definition-context-add-scopes
        1/internal-definition-context-add-scopes)
       (add-core-primitive!.1
        #f
        'internal-definition-context-splice-binding-identifier
        1/internal-definition-context-splice-binding-identifier)
       (add-core-primitive!.1
        #f
        'make-set!-transformer
        1/make-set!-transformer)
       (add-core-primitive!.1
        #f
        'prop:set!-transformer
        1/prop:set!-transformer)
       (add-core-primitive!.1 #f 'set!-transformer? 1/set!-transformer?)
       (add-core-primitive!.1
        #f
        'set!-transformer-procedure
        1/set!-transformer-procedure)
       (add-core-primitive!.1 #f 'rename-transformer? 1/rename-transformer?)
       (add-core-primitive!.1
        #f
        'prop:rename-transformer
        1/prop:rename-transformer)
       (add-core-primitive!.1
        #f
        'make-rename-transformer
        1/make-rename-transformer)
       (add-core-primitive!.1
        #f
        'rename-transformer-target
        1/rename-transformer-target)
       (add-core-primitive!.1 #f 'portal-syntax? 1/portal-syntax?)
       (add-core-primitive!.1 #f 'make-portal-syntax 1/make-portal-syntax)
       (add-core-primitive!.1
        #f
        'portal-syntax-content
        1/portal-syntax-content)
       (add-core-primitive!.1
        #f
        'prop:liberal-define-context
        1/prop:liberal-define-context)
       (add-core-primitive!.1
        #f
        'liberal-define-context?
        has-liberal-define-context-property?)
       (add-core-primitive!.1
        #f
        'prop:expansion-contexts
        1/prop:expansion-contexts)
       (add-core-primitive!.1 #f 'module-path? 1/module-path?)
       (add-core-primitive!.1
        #f
        'resolved-module-path?
        1/resolved-module-path?)
       (add-core-primitive!.1
        #f
        'make-resolved-module-path
        1/make-resolved-module-path)
       (add-core-primitive!.1
        #f
        'resolved-module-path-name
        safe-resolved-module-path-name)
       (add-core-primitive!.1 #f 'module-path-index? 1/module-path-index?)
       (add-core-primitive!.1
        #f
        'module-path-index-resolve
        1/module-path-index-resolve)
       (add-core-primitive!.1
        #f
        'module-path-index-join
        1/module-path-index-join)
       (add-core-primitive!.1
        #f
        'module-path-index-split
        1/module-path-index-split)
       (add-core-primitive!.1
        #f
        'module-path-index-submodule
        1/module-path-index-submodule)
       (add-core-primitive!.1
        #t
        'current-module-name-resolver
        1/current-module-name-resolver)
       (add-core-primitive!.1
        #f
        'current-module-declare-name
        1/current-module-declare-name)
       (add-core-primitive!.1
        #f
        'current-module-declare-source
        1/current-module-declare-source)
       (add-core-primitive!.1 #f 'current-namespace 1/current-namespace)
       (add-core-primitive!.1
        #f
        'namespace-module-registry
        namespace-module-registry$1)
       (add-core-primitive!.1 #f 'namespace? 1/namespace?)
       (add-core-primitive!.1
        #f
        'variable-reference->empty-namespace
        1/variable-reference->empty-namespace)
       (add-core-primitive!.1
        #f
        'variable-reference->namespace
        1/variable-reference->namespace)
       (add-core-primitive!.1
        #f
        'variable-reference->resolved-module-path
        1/variable-reference->resolved-module-path)
       (add-core-primitive!.1
        #f
        'variable-reference->module-path-index
        1/variable-reference->module-path-index)
       (add-core-primitive!.1
        #f
        'variable-reference->module-source
        1/variable-reference->module-source)
       (add-core-primitive!.1
        #f
        'variable-reference->phase
        1/variable-reference->phase)
       (add-core-primitive!.1
        #f
        'variable-reference->module-base-phase
        1/variable-reference->module-base-phase)
       (add-core-primitive!.1
        #f
        'variable-reference->module-declaration-inspector
        1/variable-reference->module-declaration-inspector)
       (add-core-primitive!.1 #f 'read-syntax 1/read-syntax)
       (add-core-primitive!.1
        #f
        'read-syntax/recursive
        1/read-syntax/recursive)))
    (void)))
(define declare-kernel-module!.1
  (|#%name|
   declare-kernel-module!
   (lambda (main-ids1_0 read-ids2_0 ns5_0)
     (begin
       (begin
         (let ((temp45_0
                (set-union primitive-ids (set-union main-ids1_0 read-ids2_0))))
           (let ((temp46_0
                  (hasheq
                   'variable-reference?
                   variable-reference?
                   'variable-reference-constant?
                   variable-reference-constant?
                   'variable-reference-from-unsafe?
                   variable-reference-from-unsafe?)))
             (let ((temp45_1 temp45_0))
               (copy-runtime-module!.1
                hash2610
                temp46_0
                ns5_0
                #t
                #f
                temp45_1
                '|#%runtime|
                '|#%kernel|))))
         (let ((temp49_0 '(|#%core| |#%runtime| |#%main| |#%read|)))
           (declare-reexporting-module!.1 ns5_0 #t '|#%kernel| temp49_0)))))))
(define copy-runtime-module!.1
  (|#%name|
   copy-runtime-module!
   (lambda (alts10_0
            extras11_0
            namespace8_0
            primitive?12_0
            protected?13_0
            skip9_0
            to7_0
            name21_0)
     (begin
       (let ((to-name_0 (if (eq? to7_0 unsafe-undefined) name21_0 to7_0)))
         (let ((skip-syms_0
                (if (eq? skip9_0 unsafe-undefined) (seteq) skip9_0)))
           (let ((prims_0 (primitive-table name21_0)))
             (begin
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (i_0)
                       (begin
                         (if i_0
                           (let ((sym_0 (hash-iterate-key prims_0 i_0)))
                             (begin
                               (begin-unsafe
                                (hash-set! built-in-symbols sym_0 #t))
                               (for-loop_0 (hash-iterate-next prims_0 i_0))))
                           (values)))))))
                  (for-loop_0 (hash-iterate-first prims_0))))
               (let ((ht_0
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (table_0 i_0)
                              (begin
                                (if i_0
                                  (call-with-values
                                   (lambda ()
                                     (hash-iterate-key+value prims_0 i_0))
                                   (case-lambda
                                    ((sym_0 val_0)
                                     (let ((table_1
                                            (if (begin-unsafe
                                                 (hash-ref
                                                  skip-syms_0
                                                  sym_0
                                                  #f))
                                              table_0
                                              (let ((table_1
                                                     (call-with-values
                                                      (lambda ()
                                                        (values
                                                         sym_0
                                                         (let ((or-part_0
                                                                (hash-ref
                                                                 alts10_0
                                                                 sym_0
                                                                 #f)))
                                                           (if or-part_0
                                                             or-part_0
                                                             val_0))))
                                                      (case-lambda
                                                       ((key_0 val_1)
                                                        (hash-set
                                                         table_0
                                                         key_0
                                                         val_1))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))))
                                                (values table_1)))))
                                       (for-loop_0
                                        table_1
                                        (hash-iterate-next prims_0 i_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))
                                  table_0))))))
                         (for-loop_0
                          hash2610
                          (hash-iterate-first prims_0))))))
                 (let ((ht+extras_0
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (ht_1 i_0)
                                (begin
                                  (if i_0
                                    (call-with-values
                                     (lambda ()
                                       (hash-iterate-key+value extras11_0 i_0))
                                     (case-lambda
                                      ((k_0 v_0)
                                       (let ((ht_2
                                              (let ((ht_2
                                                     (hash-set ht_1 k_0 v_0)))
                                                (values ht_2))))
                                         (for-loop_0
                                          ht_2
                                          (hash-iterate-next extras11_0 i_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))
                                    ht_1))))))
                           (for-loop_0
                            ht_0
                            (hash-iterate-first extras11_0))))))
                   (declare-hash-based-module!.1
                    namespace8_0
                    primitive?12_0
                    null
                    protected?13_0
                    #f
                    to-name_0
                    ht+extras_0)))))))))))
(define declare-hash-based-module!.1
  (|#%name|
   declare-hash-based-module!
   (lambda (namespace23_0
            primitive?24_0
            protected26_0
            protected?25_0
            register-builtin?27_0
            name33_0
            ht34_0)
     (begin
       (let ((mpi_0 (1/module-path-index-join (list 'quote name33_0) #f)))
         (let ((temp62_0 (if (not protected?25_0) (null? protected26_0) #f)))
           (let ((temp57_0
                  (let ((temp64_0
                         (hasheqv
                          0
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (table_0 i_0)
                                  (begin
                                    (if i_0
                                      (let ((sym_0
                                             (hash-iterate-key ht34_0 i_0)))
                                        (let ((table_1
                                               (let ((table_1
                                                      (call-with-values
                                                       (lambda ()
                                                         (begin
                                                           (if register-builtin?27_0
                                                             (begin-unsafe
                                                              (hash-set!
                                                               built-in-symbols
                                                               sym_0
                                                               #t))
                                                             (void))
                                                           (let ((binding_0
                                                                  (make-module-binding.1
                                                                   #f
                                                                   null
                                                                   #f
                                                                   #f
                                                                   unsafe-undefined
                                                                   unsafe-undefined
                                                                   0
                                                                   unsafe-undefined
                                                                   mpi_0
                                                                   0
                                                                   sym_0)))
                                                             (values
                                                              sym_0
                                                              (if (if protected?25_0
                                                                    protected?25_0
                                                                    (member
                                                                     sym_0
                                                                     protected26_0))
                                                                (provided1.1
                                                                 binding_0
                                                                 #t
                                                                 #f)
                                                                binding_0)))))
                                                       (case-lambda
                                                        ((key_0 val_0)
                                                         (hash-set
                                                          table_0
                                                          key_0
                                                          val_0))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args))))))
                                                 (values table_1))))
                                          (for-loop_0
                                           table_1
                                           (hash-iterate-next ht34_0 i_0))))
                                      table_0))))))
                             (for-loop_0
                              hash2725
                              (hash-iterate-first ht34_0)))))))
                    (let ((temp65_0
                           (lambda (data-box_0
                                    ns_0
                                    phase-shift_0
                                    phase-level_0
                                    self_0
                                    bulk-binding-registry_0
                                    insp_0)
                             (if (= 0 phase-level_0)
                               (begin
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (i_0)
                                         (begin
                                           (if i_0
                                             (call-with-values
                                              (lambda ()
                                                (hash-iterate-key+value
                                                 ht34_0
                                                 i_0))
                                              (case-lambda
                                               ((sym_0 val_0)
                                                (begin
                                                  (namespace-set-variable!
                                                   ns_0
                                                   0
                                                   sym_0
                                                   val_0
                                                   #t)
                                                  (for-loop_0
                                                   (hash-iterate-next
                                                    ht34_0
                                                    i_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (values)))))))
                                    (for-loop_0 (hash-iterate-first ht34_0))))
                                 (void))
                               (void)))))
                      (let ((temp64_1 temp64_0) (temp62_1 temp62_0))
                        (make-module.1
                         #t
                         void
                         unsafe-undefined
                         unsafe-undefined
                         temp65_0
                         #f
                         0
                         0
                         temp62_1
                         unsafe-undefined
                         #t
                         void
                         primitive?24_0
                         temp64_1
                         'racket
                         unsafe-undefined
                         null
                         mpi_0
                         #f
                         null
                         #f))))))
             (let ((temp58_0 (1/module-path-index-resolve mpi_0)))
               (let ((temp57_1 temp57_0))
                 (declare-module!.1
                  #t
                  namespace23_0
                  temp57_1
                  temp58_0))))))))))
(define declare-reexporting-module!.1
  (|#%name|
   declare-reexporting-module!
   (lambda (namespace37_0 reexport?36_0 name40_0 require-names41_0)
     (begin
       (let ((mpi_0 (1/module-path-index-join (list 'quote name40_0) #f)))
         (let ((require-mpis_0
                (reverse$1
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (fold-var_0 lst_0)
                         (begin
                           (if (pair? lst_0)
                             (let ((require-name_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((fold-var_1
                                        (let ((fold-var_1
                                               (cons
                                                (1/module-path-index-join
                                                 (list 'quote require-name_0)
                                                 #f)
                                                fold-var_0)))
                                          (values fold-var_1))))
                                   (for-loop_0 fold-var_1 rest_0))))
                             fold-var_0))))))
                    (for-loop_0 null require-names41_0))))))
           (let ((temp75_0 (list (cons 0 require-mpis_0))))
             (let ((temp70_0
                    (let ((temp76_0
                           (if reexport?36_0
                             (hasheqv
                              0
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (table_0 lst_0)
                                      (begin
                                        (if (pair? lst_0)
                                          (let ((require-mpi_0
                                                 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (let ((table_1
                                                     (let ((id*_0
                                                            (namespace->module
                                                             namespace37_0
                                                             (1/module-path-index-resolve
                                                              require-mpi_0))))
                                                       (begin
                                                         #t
                                                         (letrec*
                                                          ((for-loop_1
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (table_1)
                                                               (begin
                                                                 (let ((table_2
                                                                        (let ((ht_0
                                                                               (hash-ref
                                                                                (shift-provides-module-path-index
                                                                                 (module-provides
                                                                                  id*_0)
                                                                                 (module-self
                                                                                  id*_0)
                                                                                 require-mpi_0)
                                                                                0)))
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_2
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (table_2
                                                                                         i_0)
                                                                                  (begin
                                                                                    (if i_0
                                                                                      (call-with-values
                                                                                       (lambda ()
                                                                                         (hash-iterate-key+value
                                                                                          ht_0
                                                                                          i_0))
                                                                                       (case-lambda
                                                                                        ((sym_0
                                                                                          binding_0)
                                                                                         (let ((table_3
                                                                                                (let ((table_3
                                                                                                       (call-with-values
                                                                                                        (lambda ()
                                                                                                          (values
                                                                                                           sym_0
                                                                                                           binding_0))
                                                                                                        (case-lambda
                                                                                                         ((key_0
                                                                                                           val_0)
                                                                                                          (hash-set
                                                                                                           table_2
                                                                                                           key_0
                                                                                                           val_0))
                                                                                                         (args
                                                                                                          (raise-binding-result-arity-error
                                                                                                           2
                                                                                                           args))))))
                                                                                                  (values
                                                                                                   table_3))))
                                                                                           (for-loop_2
                                                                                            table_3
                                                                                            (hash-iterate-next
                                                                                             ht_0
                                                                                             i_0))))
                                                                                        (args
                                                                                         (raise-binding-result-arity-error
                                                                                          2
                                                                                          args))))
                                                                                      table_2))))))
                                                                             (for-loop_2
                                                                              table_1
                                                                              (hash-iterate-first
                                                                               ht_0)))))))
                                                                   table_2))))))
                                                          (for-loop_1
                                                           table_0))))))
                                                (for-loop_0 table_1 rest_0))))
                                          table_0))))))
                                 (for-loop_0 hash2725 require-mpis_0))))
                             hash2589)))
                      (let ((temp75_1 temp75_0))
                        (make-module.1
                         #t
                         void
                         unsafe-undefined
                         unsafe-undefined
                         void
                         #f
                         0
                         0
                         #f
                         unsafe-undefined
                         #t
                         void
                         #f
                         temp76_0
                         'racket
                         unsafe-undefined
                         temp75_1
                         mpi_0
                         #f
                         null
                         #f)))))
               (let ((temp71_0 (1/module-path-index-resolve mpi_0)))
                 (let ((temp70_1 temp70_0))
                   (declare-module!.1
                    #t
                    namespace37_0
                    temp70_1
                    temp71_0)))))))))))
(define read-primitives
  (hasheq
   'read
   1/read
   'read/recursive
   1/read/recursive
   'read-language
   1/read-language
   'string->number
   1/string->number
   'current-reader-guard
   1/current-reader-guard
   'read-square-bracket-as-paren
   1/read-square-bracket-as-paren
   'read-curly-brace-as-paren
   1/read-curly-brace-as-paren
   'read-square-bracket-with-tag
   1/read-square-bracket-with-tag
   'read-curly-brace-with-tag
   1/read-curly-brace-with-tag
   'read-cdot
   1/read-cdot
   'read-accept-graph
   1/read-accept-graph
   'read-syntax-accept-graph
   1/read-syntax-accept-graph
   'read-accept-compiled
   1/read-accept-compiled
   'read-accept-box
   1/read-accept-box
   'read-decimal-as-inexact
   1/read-decimal-as-inexact
   'read-single-flonum
   1/read-single-flonum
   'read-accept-dot
   1/read-accept-dot
   'read-accept-infix-dot
   1/read-accept-infix-dot
   'read-accept-quasiquote
   1/read-accept-quasiquote
   'read-accept-reader
   1/read-accept-reader
   'read-accept-lang
   1/read-accept-lang
   'current-readtable
   1/current-readtable
   'readtable?
   1/readtable?
   'make-readtable
   1/make-readtable
   'readtable-mapping
   1/readtable-mapping
   'special-comment?
   1/special-comment?
   'make-special-comment
   1/make-special-comment
   'special-comment-value
   1/special-comment-value))
(define main-primitives
  (hasheq
   'eval
   eval$1
   'eval-syntax
   1/eval-syntax
   'compile
   compile$1
   'compile-syntax
   1/compile-syntax
   'expand
   1/expand
   'expand-syntax
   1/expand-syntax
   'expand-once
   1/expand-once
   'expand-syntax-once
   1/expand-syntax-once
   'expand-to-top-form
   1/expand-to-top-form
   'expand-syntax-to-top-form
   1/expand-syntax-to-top-form
   'dynamic-require
   1/dynamic-require
   'dynamic-require-for-syntax
   1/dynamic-require-for-syntax
   'load
   1/load
   'load-extension
   1/load-extension
   'load/use-compiled
   1/load/use-compiled
   'current-eval
   1/current-eval
   'current-compile
   1/current-compile
   'current-load
   1/current-load
   'current-load/use-compiled
   1/current-load/use-compiled
   'collection-path
   1/collection-path
   'collection-file-path
   1/collection-file-path
   'find-library-collection-paths
   1/find-library-collection-paths
   'find-library-collection-links
   1/find-library-collection-links
   'find-compiled-file-roots
   1/find-compiled-file-roots
   'read-installation-configuration-table
   1/read-installation-configuration-table
   'current-library-collection-paths
   1/current-library-collection-paths
   'current-library-collection-links
   1/current-library-collection-links
   'use-compiled-file-paths
   1/use-compiled-file-paths
   'current-compiled-file-roots
   1/current-compiled-file-roots
   'use-compiled-file-check
   1/use-compiled-file-check
   'use-collection-link-paths
   1/use-collection-link-paths
   'use-user-specific-search-paths
   1/use-user-specific-search-paths
   'compiled-expression?
   1/compiled-expression?
   'compiled-module-expression?
   1/compiled-module-expression?
   'module-compiled-name
   1/module-compiled-name
   'module-compiled-submodules
   1/module-compiled-submodules
   'module-compiled-language-info
   1/module-compiled-language-info
   'module-compiled-imports
   1/module-compiled-imports
   'module-compiled-exports
   1/module-compiled-exports
   'module-compiled-indirect-exports
   1/module-compiled-indirect-exports
   'module-compiled-cross-phase-persistent?
   1/module-compiled-cross-phase-persistent?
   'module-compiled-realm
   1/module-compiled-realm
   'compiled-expression-recompile
   1/compiled-expression-recompile
   'make-empty-namespace
   1/make-empty-namespace
   'namespace-attach-module
   1/namespace-attach-module
   'namespace-attach-module-declaration
   1/namespace-attach-module-declaration
   'namespace-symbol->identifier
   1/namespace-symbol->identifier
   'namespace-module-identifier
   1/namespace-module-identifier
   'namespace-syntax-introduce
   1/namespace-syntax-introduce
   'namespace-require
   1/namespace-require
   'namespace-require/copy
   1/namespace-require/copy
   'namespace-require/constant
   1/namespace-require/constant
   'namespace-require/expansion-time
   1/namespace-require/expansion-time
   'namespace-variable-value
   1/namespace-variable-value
   'namespace-set-variable-value!
   1/namespace-set-variable-value!
   'namespace-undefine-variable!
   1/namespace-undefine-variable!
   'namespace-mapped-symbols
   1/namespace-mapped-symbols
   'namespace-base-phase
   1/namespace-base-phase
   'namespace-call-with-registry-lock
   1/namespace-call-with-registry-lock
   'module-declared?
   1/module-declared?
   'module-predefined?
   1/module-predefined?
   'module->language-info
   1/module->language-info
   'module->imports
   1/module->imports
   'module->exports
   1/module->exports
   'module->indirect-exports
   1/module->indirect-exports
   'module->realm
   1/module->realm
   'module-provide-protected?
   1/module-provide-protected?
   'module->namespace
   1/module->namespace
   'module-cache-clear!
   1/module-cache-clear!
   'namespace-unprotect-module
   1/namespace-unprotect-module))
(define utils-primitives
  (hasheq
   'path-string?
   path-string?
   'normal-case-path
   normal-case-path
   'path-replace-extension
   path-replace-extension
   'path-add-extension
   path-add-extension
   'reroot-path
   reroot-path
   'path-list-string->path-list
   path-list-string->path-list
   'find-executable-path
   find-executable-path
   'call-with-default-reading-parameterization
   call-with-default-reading-parameterization
   'collection-path
   1/collection-path
   'collection-file-path
   1/collection-file-path
   'find-library-collection-paths
   1/find-library-collection-paths
   'find-library-collection-links
   1/find-library-collection-links
   'get-installation-name
   get-installation-name
   'load/use-compiled
   1/load/use-compiled
   'find-main-config
   find-main-config
   'find-main-collects
   find-main-collects))
(define 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) (|#%app| TH-place-channel-ref x_0 0))))))
(define TH-place-channel-in
  (lambda (x_0) (|#%app| TH-place-channel-ref x_0 0)))
(define TH-place-channel-out
  (lambda (x_0) (|#%app| TH-place-channel-ref x_0 1)))
(define place-struct-primitives
  (hasheq
   'struct:TH-place-channel
   struct:TH-place-channel
   'TH-place-channel
   TH-place-channel
   'TH-place-channel?
   TH-place-channel?
   'TH-place-channel-in
   TH-place-channel-in
   'TH-place-channel-out
   TH-place-channel-out))
(define 1/linklet-directory?
  (|#%name|
   linklet-directory?
   (lambda (v_0)
     (begin
       (let ((or-part_0 (linklet-directory?$1 v_0)))
         (if or-part_0 or-part_0 (compiled-in-memory? v_0)))))))
(define 1/linklet-directory->hash
  (|#%name|
   linklet-directory->hash
   (lambda (ld_0)
     (begin
       (linklet-directory->hash$1
        (if (compiled-in-memory? ld_0)
          (compiled-in-memory-linklet-directory ld_0)
          ld_0))))))
(define 1/linklet?
  (|#%name|
   linklet?
   (lambda (l_0)
     (begin
       (let ((or-part_0 (linklet? l_0)))
         (if or-part_0 or-part_0 (correlated-linklet? l_0)))))))
(define 1/recompile-linklet
  (|#%name|
   recompile-linklet
   (case-lambda
    ((lnk_0) (begin (recompile-linklet (force-compile-linklet lnk_0))))
    ((lnk_0 name_0) (recompile-linklet (force-compile-linklet lnk_0) name_0))
    ((lnk_0 name_0 import-keys_0)
     (recompile-linklet (force-compile-linklet lnk_0) name_0 import-keys_0))
    ((lnk_0 name_0 import-keys_0 get-import_0)
     (recompile-linklet
      (force-compile-linklet lnk_0)
      name_0
      import-keys_0
      get-import_0))
    ((lnk_0 name_0 import-keys_0 get-import_0 options_0)
     (recompile-linklet
      (force-compile-linklet lnk_0)
      name_0
      import-keys_0
      get-import_0
      options_0)))))
(define 1/eval-linklet
  (|#%name|
   eval-linklet
   (lambda (lnk_0) (begin (eval-linklet (force-compile-linklet lnk_0))))))
(define 1/instantiate-linklet
  (let ((instantiate-linklet_0
         (|#%name|
          instantiate-linklet
          (lambda (lnk3_0
                   import-instances4_0
                   target-instance1_0
                   use-prompt?2_0)
            (begin
              (instantiate-linklet
               (force-compile-linklet lnk3_0)
               import-instances4_0
               target-instance1_0
               use-prompt?2_0))))))
    (|#%name|
     instantiate-linklet
     (case-lambda
      ((lnk_0 import-instances_0)
       (begin (instantiate-linklet_0 lnk_0 import-instances_0 #f #f)))
      ((lnk_0 import-instances_0 target-instance_0 use-prompt?2_0)
       (instantiate-linklet_0
        lnk_0
        import-instances_0
        target-instance_0
        use-prompt?2_0))
      ((lnk_0 import-instances_0 target-instance1_0)
       (instantiate-linklet_0
        lnk_0
        import-instances_0
        target-instance1_0
        #f))))))
(define 1/linklet-import-variables
  (|#%name|
   linklet-import-variables
   (lambda (lnk_0)
     (begin (linklet-import-variables (force-compile-linklet lnk_0))))))
(define 1/linklet-export-variables
  (|#%name|
   linklet-export-variables
   (lambda (lnk_0)
     (begin (linklet-export-variables (force-compile-linklet lnk_0))))))
(define 1/linklet-body-reserved-symbol?
  (|#%name|
   linklet-body-reserved-symbol?
   (lambda (s_0)
     (begin
       (begin
         (if (symbol? s_0)
           (void)
           (raise-argument-error 'linklet-body-reserved-symbol? "symbol?" s_0))
         (begin-unsafe (hash-ref built-in-symbols s_0 #f)))))))
(define linklet-primitives
  (hasheq
   'primitive-table
   primitive-table
   'primitive->compiled-position
   primitive->compiled-position
   'compiled-position->primitive
   compiled-position->primitive
   'primitive-in-category?
   primitive-in-category?
   'primitive-lookup
   primitive-lookup
   'compile-linklet
   compile-linklet
   'instance?
   instance?
   'make-instance
   make-instance
   'instance-name
   instance-name
   'instance-data
   instance-data
   'instance-variable-names
   instance-variable-names
   'instance-variable-value
   instance-variable-value
   'instance-set-variable-value!
   instance-set-variable-value!
   'instance-unset-variable!
   instance-unset-variable!
   'instance-describe-variable!
   instance-describe-variable!
   'linklet-virtual-machine-bytes
   linklet-virtual-machine-bytes
   'write-linklet-bundle-hash
   write-linklet-bundle-hash
   'read-linklet-bundle-hash
   read-linklet-bundle-hash
   'variable-reference?
   variable-reference?
   'variable-reference->instance
   variable-reference->instance
   'variable-reference-constant?
   variable-reference-constant?
   'variable-reference-from-unsafe?
   variable-reference-from-unsafe?))
(define linklet-expander-primitives
  (hasheq
   'linklet-directory?
   1/linklet-directory?
   'linklet-directory->hash
   1/linklet-directory->hash
   'hash->linklet-directory
   1/hash->linklet-directory
   'linklet-bundle?
   1/linklet-bundle?
   'linklet-bundle->hash
   1/linklet-bundle->hash
   'hash->linklet-bundle
   1/hash->linklet-bundle
   'linklet-body-reserved-symbol?
   1/linklet-body-reserved-symbol?
   'linklet?
   1/linklet?
   'recompile-linklet
   1/recompile-linklet
   'eval-linklet
   1/eval-linklet
   'instantiate-linklet
   1/instantiate-linklet
   'linklet-import-variables
   1/linklet-import-variables
   'linklet-export-variables
   1/linklet-export-variables))
(define choose-file-to-load
  (let ((resolve_0
         (|#%name|
          resolve
          (lambda (s_0)
            (begin
              (if (complete-path? s_0)
                s_0
                (let ((d_0 (current-load-relative-directory)))
                  (if d_0 (path->complete-path s_0 d_0) s_0))))))))
    (let ((date-of-1_0
           (|#%name|
            date-of-1
            (lambda (a_0)
              (begin
                (let ((v_0
                       (file-or-directory-modify-seconds
                        a_0
                        #f
                        (lambda () #f))))
                  (if v_0 (cons a_0 v_0) #f)))))))
      (let ((date-of_0
             (|#%name|
              date-of
              (lambda (a_0 modes_0 roots_0)
                (begin
                  (ormap_2765
                   (lambda (root-dir_0)
                     (ormap_2765
                      (lambda (compiled-dir_0)
                        (let ((a_1 (|#%app| a_0 root-dir_0 compiled-dir_0)))
                          (date-of-1_0 a_1)))
                      modes_0))
                   roots_0))))))
        (let ((date>=?_0
               (|#%name|
                date>=?
                (lambda (modes_0 roots_0 a_0 bm_0)
                  (begin
                    (if a_0
                      (let ((am_0 (date-of_0 a_0 modes_0 roots_0)))
                        (let ((or-part_0 (if (not bm_0) am_0 #f)))
                          (if or-part_0
                            or-part_0
                            (if am_0
                              (if bm_0
                                (if (let ((app_0 (cdr am_0)))
                                      (>= app_0 (cdr bm_0)))
                                  am_0
                                  #f)
                                #f)
                              #f))))
                      #f))))))
          (lambda (path_0
                   expect-module_0
                   so-okay?_0
                   rkt-try-ss?_0
                   choose_0
                   compiled-file-roots_0
                   compiled-file-paths_0)
            (let ((orig-path_0 (resolve_0 path_0)))
              (call-with-values
               (lambda () (split-path path_0))
               (case-lambda
                ((base_0 orig-file_0 dir?_0)
                 (call-with-values
                  (lambda ()
                    (if rkt-try-ss?_0
                      (let ((b_0 (path->bytes orig-file_0)))
                        (let ((len_0 (unsafe-bytes-length b_0)))
                          (if (if (>= len_0 4)
                                (bytes=?
                                 #vu8(46 114 107 116)
                                 (subbytes b_0 (- len_0 4)))
                                #f)
                            (values
                             orig-file_0
                             (bytes->path
                              (bytes-append
                               (subbytes b_0 0 (- len_0 4))
                               #vu8(46 115 115))))
                            (values orig-file_0 #f))))
                      (values orig-file_0 #f)))
                  (case-lambda
                   ((file_0 alt-file_0)
                    (let ((path_1
                           (if (eq? file_0 orig-file_0)
                             orig-path_0
                             (build-path base_0 file_0))))
                      (let ((alt-path_0
                             (if alt-file_0
                               (if (eq? alt-file_0 orig-file_0)
                                 orig-path_0
                                 (build-path base_0 alt-file_0))
                               #f)))
                        (let ((base_1
                               (if (eq? base_0 'relative) 'same base_0)))
                          (let ((reroot_0
                                 (|#%name|
                                  reroot
                                  (lambda (p_0 d_0)
                                    (begin
                                      (if (eq? d_0 'same)
                                        p_0
                                        (if (relative-path? d_0)
                                          (build-path p_0 d_0)
                                          (reroot-path p_0 d_0))))))))
                            (let ((main-path-d_0 (date-of-1_0 path_1)))
                              (let ((alt-path-d_0
                                     (if alt-path_0
                                       (if (not main-path-d_0)
                                         (date-of-1_0 alt-path_0)
                                         #f)
                                       #f)))
                                (let ((path-d_0
                                       (if main-path-d_0
                                         main-path-d_0
                                         alt-path-d_0)))
                                  (let ((get-so_0
                                         (|#%name|
                                          get-so
                                          (lambda (file_1 rep-sfx?_0)
                                            (begin
                                              (if (eq?
                                                   'racket
                                                   (system-type 'vm))
                                                (lambda (root-dir_0
                                                         compiled-dir_0)
                                                  (let ((app_0
                                                         (reroot_0
                                                          base_1
                                                          root-dir_0)))
                                                    (let ((app_1
                                                           (system-library-subpath)))
                                                      (build-path
                                                       app_0
                                                       compiled-dir_0
                                                       "native"
                                                       app_1
                                                       (if rep-sfx?_0
                                                         (begin-unsafe
                                                          (path-adjust-extension
                                                           'path-add-extension
                                                           #vu8(95)
                                                           subbytes
                                                           file_1
                                                           dll-suffix
                                                           #t))
                                                         file_1)))))
                                                #f))))))
                                    (let ((zo_0
                                           (|#%name|
                                            zo
                                            (lambda (root-dir_0 compiled-dir_0)
                                              (begin
                                                (let ((app_0
                                                       (reroot_0
                                                        base_1
                                                        root-dir_0)))
                                                  (build-path
                                                   app_0
                                                   compiled-dir_0
                                                   (let ((sfx_0 #vu8(46 122 111)))
                                                     (begin-unsafe
                                                      (path-adjust-extension
                                                       'path-add-extension
                                                       #vu8(95)
                                                       subbytes
                                                       file_0
                                                       sfx_0
                                                       #t))))))))))
                                      (let ((alt-zo_0
                                             (|#%name|
                                              alt-zo
                                              (lambda (root-dir_0
                                                       compiled-dir_0)
                                                (begin
                                                  (let ((app_0
                                                         (reroot_0
                                                          base_1
                                                          root-dir_0)))
                                                    (build-path
                                                     app_0
                                                     compiled-dir_0
                                                     (let ((sfx_0 #vu8(46 122 111)))
                                                       (begin-unsafe
                                                        (path-adjust-extension
                                                         'path-add-extension
                                                         #vu8(95)
                                                         subbytes
                                                         alt-file_0
                                                         sfx_0
                                                         #t))))))))))
                                        (let ((so_0 (get-so_0 file_0 #t)))
                                          (let ((alt-so_0
                                                 (get-so_0 alt-file_0 #t)))
                                            (let ((try-main?_0
                                                   (if main-path-d_0
                                                     main-path-d_0
                                                     (not alt-path-d_0))))
                                              (let ((try-alt?_0
                                                     (if alt-file_0
                                                       (if alt-path-d_0
                                                         alt-path-d_0
                                                         (not main-path-d_0))
                                                       #f)))
                                                (let ((choice_0
                                                       (if choose_0
                                                         (let ((p_0
                                                                (if try-main?_0
                                                                  path_1
                                                                  alt-path_0)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (split-path p_0))
                                                            (case-lambda
                                                             ((base_2
                                                               name_0
                                                               dir?_1)
                                                              (let ((subdir_0
                                                                     (if (pair?
                                                                          compiled-file-paths_0)
                                                                       (car
                                                                        compiled-file-paths_0)
                                                                       "compiled")))
                                                                (let ((app_0
                                                                       (if (string?
                                                                            p_0)
                                                                         (string->path
                                                                          p_0)
                                                                         p_0)))
                                                                  (let ((app_1
                                                                         (build-path
                                                                          base_2
                                                                          subdir_0
                                                                          (replace-extension
                                                                           name_0
                                                                           #vu8(46 122 111)))))
                                                                    (|#%app|
                                                                     choose_0
                                                                     app_0
                                                                     app_1
                                                                     (build-path
                                                                      base_2
                                                                      subdir_0
                                                                      (replace-extension
                                                                       name_0
                                                                       #vu8(46 115 111))))))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args)))))
                                                         #f)))
                                                  (let ((c4_0
                                                         (if (not
                                                              (eq?
                                                               choice_0
                                                               'src))
                                                           (if so-okay?_0
                                                             (if so_0
                                                               (if try-main?_0
                                                                 (date>=?_0
                                                                  compiled-file-paths_0
                                                                  compiled-file-roots_0
                                                                  so_0
                                                                  path-d_0)
                                                                 #f)
                                                               #f)
                                                             #f)
                                                           #f)))
                                                    (if c4_0
                                                      (values
                                                       #f
                                                       'so
                                                       (car c4_0))
                                                      (let ((c3_0
                                                             (if (not
                                                                  (eq?
                                                                   choice_0
                                                                   'src))
                                                               (if so-okay?_0
                                                                 (if alt-so_0
                                                                   (if try-alt?_0
                                                                     (date>=?_0
                                                                      compiled-file-paths_0
                                                                      compiled-file-roots_0
                                                                      alt-so_0
                                                                      alt-path-d_0)
                                                                     #f)
                                                                   #f)
                                                                 #f)
                                                               #f)))
                                                        (if c3_0
                                                          (values
                                                           alt-path_0
                                                           'so
                                                           (car c3_0))
                                                          (let ((c2_0
                                                                 (if (not
                                                                      (eq?
                                                                       choice_0
                                                                       'src))
                                                                   (if try-main?_0
                                                                     (date>=?_0
                                                                      compiled-file-paths_0
                                                                      compiled-file-roots_0
                                                                      zo_0
                                                                      path-d_0)
                                                                     #f)
                                                                   #f)))
                                                            (if c2_0
                                                              (values
                                                               #f
                                                               'zo
                                                               (car c2_0))
                                                              (let ((c1_0
                                                                     (if (not
                                                                          (eq?
                                                                           choice_0
                                                                           'src))
                                                                       (if try-alt?_0
                                                                         (date>=?_0
                                                                          compiled-file-paths_0
                                                                          compiled-file-roots_0
                                                                          alt-zo_0
                                                                          path-d_0)
                                                                         #f)
                                                                       #f)))
                                                                (if c1_0
                                                                  (values
                                                                   alt-path_0
                                                                   'zo
                                                                   (car c1_0))
                                                                  (if (let ((or-part_0
                                                                             (not
                                                                              (pair?
                                                                               expect-module_0))))
                                                                        (if or-part_0
                                                                          or-part_0
                                                                          (let ((or-part_1
                                                                                 (car
                                                                                  expect-module_0)))
                                                                            (if or-part_1
                                                                              or-part_1
                                                                              (is-compiled-file?
                                                                               (if try-main?_0
                                                                                 path_1
                                                                                 alt-path_0))))))
                                                                    (let ((p_0
                                                                           (if try-main?_0
                                                                             path_1
                                                                             alt-path_0)))
                                                                      (values
                                                                       (if expect-module_0
                                                                         (if (not
                                                                              try-main?_0)
                                                                           p_0
                                                                           #f)
                                                                         #f)
                                                                       'src
                                                                       (if (let ((or-part_0
                                                                                  (not
                                                                                   (pair?
                                                                                    expect-module_0))))
                                                                             (if or-part_0
                                                                               or-part_0
                                                                               (file-exists?
                                                                                p_0)))
                                                                         p_0
                                                                         #f)))
                                                                    (values
                                                                     #f
                                                                     'src
                                                                     #f))))))))))))))))))))))))))
                   (args (raise-binding-result-arity-error 2 args)))))
                (args (raise-binding-result-arity-error 3 args)))))))))))
(define replace-extension
  (lambda (pth_0 what_0)
    (bytes->path
     (bytes-append
      (regexp-replace rx2900 (path->bytes pth_0) #vu8(95 92 49))
      what_0))))
(define dll-suffix (system-type 'so-suffix))
(define is-compiled-file?
  (lambda (p_0)
    (if (file-exists? p_0)
      (call-with-input-file*.1 'binary p_0 linklet-directory-start)
      #f)))
(define version-bytes (string->bytes/utf-8 (version)))
(define version-length (unsafe-bytes-length version-bytes))
(define vm-bytes (string->bytes/utf-8 (symbol->string (system-type 'vm))))
(define vm-length (unsafe-bytes-length vm-bytes))
(define linklet-bundle-or-directory-start
  (lambda (i_0 tag_0)
    (if (eq? (peek-byte i_0) 35)
      (if (eq? (peek-byte i_0 1) 126)
        (if (equal? (peek-byte i_0 2) version-length)
          (if (equal? (peek-bytes version-length 3 i_0) version-bytes)
            (if (equal? (peek-byte i_0 (+ 3 version-length)) vm-length)
              (if (equal?
                   (peek-bytes vm-length (+ 4 version-length) i_0)
                   vm-bytes)
                (if (let ((app_0
                           (peek-byte i_0 (+ 4 version-length vm-length))))
                      (equal? app_0 (char->integer tag_0)))
                  (+ version-length vm-length 5)
                  #f)
                #f)
              #f)
            #f)
          #f)
        #f)
      #f)))
(define linklet-directory-start
  (lambda (i_0)
    (let ((pos_0 (linklet-bundle-or-directory-start i_0 '#\x44)))
      (if pos_0 (+ pos_0 4) #f))))
(define linklet-bundle-hash-code
  (lambda (i_0)
    (let ((pos_0 (linklet-bundle-or-directory-start i_0 '#\x42)))
      (let ((hash-code_0 (if pos_0 (peek-bytes 20 pos_0 i_0) #f)))
        (if (bytes? hash-code_0)
          (if (= 20 (unsafe-bytes-length hash-code_0))
            (if (call-with-values
                 (lambda ()
                   (begin
                     (check-bytes hash-code_0)
                     (values hash-code_0 (unsafe-bytes-length hash-code_0))))
                 (case-lambda
                  ((vec_0 len_0)
                   (begin
                     #f
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (result_0 pos_1)
                           (begin
                             (if (unsafe-fx< pos_1 len_0)
                               (let ((c_0 (unsafe-bytes-ref vec_0 pos_1)))
                                 (let ((result_1 (not (eq? c_0 0))))
                                   (let ((result_2 (values result_1)))
                                     (if (if (not
                                              (let ((x_0 (list c_0)))
                                                result_2))
                                           #t
                                           #f)
                                       (for-loop_0
                                        result_2
                                        (unsafe-fx+ 1 pos_1))
                                       result_2))))
                               result_0))))))
                      (for-loop_0 #f 0))))
                  (args (raise-binding-result-arity-error 2 args))))
              hash-code_0
              #f)
            #f)
          #f)))))
(define with-module-reading-parameterization
  (lambda (thunk_0)
    (with-continuation-mark*
     authentic
     parameterization-key
     (extend-parameterization
      (continuation-mark-set-first #f parameterization-key)
      1/read-accept-reader
      #t
      1/read-accept-lang
      #t
      1/read-accept-compiled
      #t
      read-case-sensitive
      #t
      1/read-square-bracket-as-paren
      #t
      1/read-curly-brace-as-paren
      #t
      1/read-square-bracket-with-tag
      #f
      1/read-curly-brace-with-tag
      #f
      1/read-accept-box
      #t
      read-accept-bar-quote
      #t
      1/read-accept-graph
      #t
      1/read-syntax-accept-graph
      #f
      1/read-decimal-as-inexact
      #t
      1/read-cdot
      #f
      1/read-accept-dot
      #t
      1/read-accept-infix-dot
      #t
      1/read-accept-quasiquote
      #t
      1/current-readtable
      #f)
     (|#%app| thunk_0))))
(define check-module-form
  (lambda (exp_0 filename_0)
    (if (let ((or-part_0 (eof-object? exp_0)))
          (if or-part_0 or-part_0 (eof-object? (1/syntax-e exp_0))))
      (if filename_0
        (error
         'load-handler
         (string-append
          "expected a `module' declaration, but found end-of-file\n"
          "  file: ~a")
         filename_0)
        #f)
      (if (1/compiled-module-expression? (1/syntax-e exp_0))
        exp_0
        (if (if (syntax?$1 exp_0)
              (if (pair? (1/syntax-e exp_0))
                (if (eq? 'module (1/syntax-e (car (1/syntax-e exp_0))))
                  (let ((r_0 (cdr (1/syntax-e exp_0))))
                    (let ((r_1 (if (syntax?$1 r_0) (1/syntax-e r_0) r_0)))
                      (if (pair? r_1) (identifier? (car r_1)) #f)))
                  #f)
                #f)
              #f)
          (1/datum->syntax
           exp_0
           (let ((app_0 (1/namespace-module-identifier)))
             (cons app_0 (cdr (1/syntax-e exp_0))))
           exp_0
           exp_0)
          (if filename_0
            (error
             'default-load-handler
             (string-append
              "expected a `module' declaration, but found something else\n"
              "  file: ~a")
             filename_0)
            #f))))))
(define default-load-handler
  (lambda (path_0 expected-mod_0)
    (begin
      (if (path-string? path_0)
        (void)
        (raise-argument-error 'default-load-handler "path-string?" path_0))
      (begin
        (if (let ((or-part_0 (not expected-mod_0)))
              (if or-part_0
                or-part_0
                (let ((or-part_1 (symbol? expected-mod_0)))
                  (if or-part_1
                    or-part_1
                    (if (pair? expected-mod_0)
                      (if (list? expected-mod_0)
                        (if (let ((or-part_2 (not (car expected-mod_0))))
                              (if or-part_2
                                or-part_2
                                (symbol? (car expected-mod_0))))
                          (andmap_2344 symbol? (cdr expected-mod_0))
                          #f)
                        #f)
                      #f)))))
          (void)
          (raise-argument-error
           'default-load-handler
           "(or/c #f symbol? (cons/c (or/c #f symbol?) (non-empty-listof symbol?)))"
           expected-mod_0))
        (let ((maybe-count-lines!_0
               (|#%name|
                maybe-count-lines!
                (lambda (i_0)
                  (begin
                    (if (regexp-match? rx2937 path_0)
                      (void)
                      (port-count-lines! i_0)))))))
          (if expected-mod_0
            (|#%app|
             (call-with-input-module-file
              path_0
              (lambda (i_0)
                (begin
                  (maybe-count-lines!_0 i_0)
                  (with-module-reading-parameterization+delay-source
                   path_0
                   (lambda ()
                     (let ((c2_0 (linklet-directory-start i_0)))
                       (if c2_0
                         (let ((b-pos_0
                                (search-directory
                                 i_0
                                 c2_0
                                 (encode-symbols expected-mod_0))))
                           (if b-pos_0
                             (begin
                               (file-position i_0 b-pos_0)
                               (let ((or-part_0 (cached-bundle i_0)))
                                 (if or-part_0
                                   or-part_0
                                   (let ((v_0 (1/read i_0)))
                                     (if (1/compiled-module-expression? v_0)
                                       (lambda ()
                                         (|#%app| (1/current-eval) v_0))
                                       (let ((app_0
                                              (string-append
                                               "expected a compiled module\n"
                                               "  in: ~e\n"
                                               "  found: ~e")))
                                         (error
                                          'default-load-handler
                                          app_0
                                          (object-name i_0)
                                          v_0)))))))
                             (if (pair? expected-mod_0)
                               void
                               (let ((app_0
                                      (string-append
                                       "could not find main module\n"
                                       "  in: ~e")))
                                 (error
                                  'default-load-handler
                                  app_0
                                  (object-name i_0))))))
                         (if (if (pair? expected-mod_0)
                               (not (car expected-mod_0))
                               #f)
                           void
                           (let ((c1_0 (cached-bundle i_0)))
                             (if c1_0
                               c1_0
                               (let ((s_0
                                      (1/read-syntax (object-name i_0) i_0)))
                                 (begin
                                   (if (eof-object? s_0)
                                     (let ((app_0
                                            (string-append
                                             "expected a `module' declaration;\n"
                                             " found end-of-file\n"
                                             "  in: ~e")))
                                       (error
                                        'default-load-handler
                                        app_0
                                        (object-name i_0)))
                                     (void))
                                   (let ((m-s_0
                                          (check-module-form s_0 path_0)))
                                     (let ((s2_0
                                            (1/read-syntax
                                             (object-name i_0)
                                             i_0)))
                                       (begin
                                         (if (eof-object? s2_0)
                                           (void)
                                           (let ((app_0
                                                  (string-append
                                                   "expected a `module' declaration;\n"
                                                   " found an extra form\n"
                                                   "  in: ~e\n"
                                                   "  found: ~.s")))
                                             (error
                                              'default-load-handler
                                              app_0
                                              (object-name i_0)
                                              s2_0)))
                                         (lambda ()
                                           (|#%app|
                                            (1/current-eval)
                                            m-s_0))))))))))))))))))
            (let ((add-top-interaction_0
                   (|#%name|
                    add-top-interaction
                    (lambda (s_0)
                      (begin
                        (1/namespace-syntax-introduce
                         (1/datum->syntax
                          #f
                          (cons '|#%top-interaction| s_0)
                          s_0)))))))
              (let ((temp2_0
                     (lambda (i_0)
                       (begin
                         (maybe-count-lines!_0 i_0)
                         (letrec*
                          ((loop_0
                            (|#%name|
                             loop
                             (lambda (vals_0)
                               (begin
                                 (let ((s_0
                                        (with-continuation-mark*
                                         push-authentic
                                         parameterization-key
                                         (extend-parameterization
                                          (continuation-mark-set-first
                                           #f
                                           parameterization-key)
                                          1/read-accept-compiled
                                          #t
                                          1/read-accept-reader
                                          #t
                                          1/read-accept-lang
                                          #t)
                                         (if (load-on-demand-enabled)
                                           (with-continuation-mark*
                                            authentic
                                            parameterization-key
                                            (let ((app_0
                                                   (continuation-mark-set-first
                                                    #f
                                                    parameterization-key)))
                                              (extend-parameterization
                                               app_0
                                               read-on-demand-source
                                               (path->complete-path path_0)))
                                            (1/read-syntax
                                             (object-name i_0)
                                             i_0))
                                           (1/read-syntax
                                            (object-name i_0)
                                            i_0)))))
                                   (if (eof-object? s_0)
                                     (apply values vals_0)
                                     (loop_0
                                      (call-with-continuation-prompt
                                       (lambda ()
                                         (call-with-values
                                          (lambda ()
                                            (let ((app_0 (1/current-eval)))
                                              (|#%app|
                                               app_0
                                               (add-top-interaction_0 s_0))))
                                          list))
                                       (default-continuation-prompt-tag)
                                       (lambda args_0
                                         (apply
                                          abort-current-continuation
                                          (default-continuation-prompt-tag)
                                          args_0)))))))))))
                          (loop_0 (list (void))))))))
                (call-with-input-file*.1 'binary path_0 temp2_0)))))))))
(define cached-bundle
  (lambda (i_0)
    (let ((c3_0
           (module-cache-ref
            (make-module-cache-key (linklet-bundle-hash-code i_0)))))
      (if c3_0 (lambda () (|#%app| c3_0 (1/current-namespace))) #f))))
(define read-number
  (lambda (i_0)
    (let ((read-byte/not-eof_0
           (|#%name|
            read-byte/not-eof
            (lambda (i_1)
              (begin
                (let ((v_0 (read-byte i_1))) (if (eof-object? v_0) 0 v_0)))))))
      (let ((app_0 (read-byte/not-eof_0 i_0)))
        (let ((app_1 (arithmetic-shift (read-byte/not-eof_0 i_0) 8)))
          (let ((app_2 (arithmetic-shift (read-byte/not-eof_0 i_0) 16)))
            (bitwise-ior
             app_0
             app_1
             app_2
             (arithmetic-shift (read-byte/not-eof_0 i_0) 24))))))))
(define search-directory
  (lambda (i_0 pos_0 bstr_0)
    (if (zero? pos_0)
      #f
      (begin
        (file-position i_0 pos_0)
        (let ((name-len_0 (read-number i_0)))
          (let ((v_0 (read-bytes name-len_0 i_0)))
            (begin
              (if (if (bytes? v_0) (= (unsafe-bytes-length v_0) name-len_0) #f)
                (void)
                (let ((app_0
                       (string-append
                        "failure getting submodule path\n"
                        "  in: ~e\n"
                        "  at position: ~a\n"
                        "  expected bytes: ~a\n"
                        "  read bytes: ~e")))
                  (error
                   'deafult-load-handler
                   app_0
                   (object-name i_0)
                   pos_0
                   name-len_0
                   v_0)))
              (if (bytes=? bstr_0 v_0)
                (read-number i_0)
                (if (bytes<? bstr_0 v_0)
                  (begin
                    (read-number i_0)
                    (read-number i_0)
                    (search-directory i_0 (read-number i_0) bstr_0))
                  (begin
                    (read-number i_0)
                    (read-number i_0)
                    (read-number i_0)
                    (search-directory i_0 (read-number i_0) bstr_0)))))))))))
(define encode-symbols
  (lambda (expected-mod_0)
    (if (symbol? expected-mod_0)
      #vu8()
      (apply
       bytes-append
       (reverse$1
        (let ((lst_0 (cdr expected-mod_0)))
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (fold-var_0 lst_1)
                  (begin
                    (if (pair? lst_1)
                      (let ((s_0 (unsafe-car lst_1)))
                        (let ((rest_0 (unsafe-cdr lst_1)))
                          (let ((fold-var_1
                                 (let ((fold-var_1
                                        (cons
                                         (let ((bstr_0
                                                (string->bytes/utf-8
                                                 (symbol->string s_0))))
                                           (let ((len_0
                                                  (unsafe-bytes-length
                                                   bstr_0)))
                                             (if (< len_0 255)
                                               (bytes-append
                                                (bytes len_0)
                                                bstr_0)
                                               (bytes-append
                                                255
                                                (integer->integer-bytes
                                                 len_0
                                                 4
                                                 #f
                                                 #f)
                                                bstr_0))))
                                         fold-var_0)))
                                   (values fold-var_1))))
                            (for-loop_0 fold-var_1 rest_0))))
                      fold-var_0))))))
             (for-loop_0 null lst_0)))))))))
(define with-module-reading-parameterization+delay-source
  (lambda (path_0 thunk_0)
    (if (load-on-demand-enabled)
      (with-continuation-mark*
       authentic
       parameterization-key
       (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
         (extend-parameterization
          app_0
          read-on-demand-source
          (path->complete-path path_0)))
       (with-module-reading-parameterization thunk_0))
      (with-module-reading-parameterization thunk_0))))
(define call-with-input-module-file
  (lambda (path_0 proc_0)
    (let ((i_0 #f))
      (dynamic-wind
       (lambda () (set! i_0 (open-input-file.1 #t 'binary path_0)))
       (lambda () (|#%app| proc_0 i_0))
       (lambda () (close-input-port i_0))))))
(define default-load/use-compiled
  (let ((with-dir*_0
         (|#%name|
          with-dir*
          (lambda (base_0 t_0)
            (begin
              (with-continuation-mark*
               authentic
               parameterization-key
               (let ((app_0
                      (continuation-mark-set-first #f parameterization-key)))
                 (extend-parameterization
                  app_0
                  current-load-relative-directory
                  (if (path? base_0) base_0 (current-directory))))
               (|#%app| t_0)))))))
    (lambda (path_0 expect-module_0)
      (begin
        (if (path-string? path_0)
          (void)
          (raise-argument-error 'load/use-compiled "path-string?" path_0))
        (begin
          (if (let ((or-part_0 (not expect-module_0)))
                (if or-part_0
                  or-part_0
                  (let ((or-part_1 (symbol? expect-module_0)))
                    (if or-part_1
                      or-part_1
                      (if (list? expect-module_0)
                        (if (> (length expect-module_0) 1)
                          (if (let ((or-part_2
                                     (symbol? (car expect-module_0))))
                                (if or-part_2
                                  or-part_2
                                  (not (car expect-module_0))))
                            (andmap_2344 symbol? (cdr expect-module_0))
                            #f)
                          #f)
                        #f)))))
            (void)
            (raise-argument-error
             'load/use-compiled
             "(or/c #f symbol? (cons/c (or/c #f symbol?) (non-empty-listof symbol?)))"
             path_0))
          (let ((name_0
                 (if expect-module_0 (1/current-module-declare-name) #f)))
            (let ((ns-hts_0
                   (if name_0
                     (registry-table-ref
                      (namespace-module-registry$1 (1/current-namespace)))
                     #f)))
              (let ((use-path/src_0
                     (if ns-hts_0 (hash-ref (cdr ns-hts_0) name_0 #f) #f)))
                (if use-path/src_0
                  (with-continuation-mark*
                   authentic
                   parameterization-key
                   (let ((app_0
                          (continuation-mark-set-first
                           #f
                           parameterization-key)))
                     (extend-parameterization
                      app_0
                      1/current-module-declare-source
                      (cadr use-path/src_0)))
                   (with-dir*_0
                    (caddr use-path/src_0)
                    (lambda ()
                      (let ((app_0 (1/current-load)))
                        (|#%app|
                         app_0
                         (car use-path/src_0)
                         expect-module_0)))))
                  (call-with-values
                   (lambda ()
                     (let ((app_0 (1/current-compiled-file-roots)))
                       (choose-file-to-load
                        path_0
                        expect-module_0
                        #t
                        expect-module_0
                        #f
                        app_0
                        (1/use-compiled-file-paths))))
                   (case-lambda
                    ((the-module-declare-source_0 file-type_0 the-path_0)
                     (if the-path_0
                       (call-with-values
                        (lambda () (split-path path_0))
                        (case-lambda
                         ((_base_0 orig-file_0 dir?_0)
                          (let ((base_0
                                 (if (eq? _base_0 'relative) 'same _base_0)))
                            (begin
                              (if (eq? file-type_0 'zo)
                                (register-zo-path
                                 name_0
                                 ns-hts_0
                                 the-path_0
                                 the-module-declare-source_0
                                 base_0)
                                (void))
                              (with-continuation-mark*
                               authentic
                               parameterization-key
                               (extend-parameterization
                                (continuation-mark-set-first
                                 #f
                                 parameterization-key)
                                1/current-module-declare-source
                                the-module-declare-source_0)
                               (with-dir*_0
                                base_0
                                (lambda ()
                                  (|#%app|
                                   (if (eq? file-type_0 'so)
                                     (current-load-extension)
                                     (1/current-load))
                                   the-path_0
                                   expect-module_0)))))))
                         (args (raise-binding-result-arity-error 3 args))))
                       (void)))
                    (args (raise-binding-result-arity-error 3 args)))))))))))))
(define register-zo-path
  (lambda (name_0 ns-hts_0 path_0 src-path_0 base_0)
    (if ns-hts_0
      (let ((app_0 (cdr ns-hts_0)))
        (hash-set! app_0 name_0 (list path_0 src-path_0 base_0)))
      (void))))
(define default-reader-guard (lambda (path_0) path_0))
(define cell.1 (unsafe-make-place-local (make-weak-hasheq)))
(define registry-table-ref
  (lambda (reg_0)
    (let ((e_0 (hash-ref (unsafe-place-local-ref cell.1) reg_0 #f)))
      (if e_0 (ephemeron-value e_0) #f))))
(define registry-table-set!
  (lambda (reg_0 v_0)
    (hash-set!
     (unsafe-place-local-ref cell.1)
     reg_0
     (make-ephemeron reg_0 v_0))))
(define cell.2 (unsafe-make-place-local (make-weak-hasheq)))
(define path-cache-get
  (lambda (p_0 reg_0)
    (let ((cache_0
           (hash-ref (unsafe-place-local-ref cell.2) reg_0 hash2725)))
      (hash-ref cache_0 p_0 #f))))
(define path-cache-set!
  (lambda (p_0 reg_0 v_0)
    (let ((current-cache_0
           (hash-ref (unsafe-place-local-ref cell.2) reg_0 hash2725)))
      (let ((cache_0
             (if (= (hash-count current-cache_0) 1024)
               hash2725
               current-cache_0)))
        (hash-set!
         (unsafe-place-local-ref cell.2)
         reg_0
         (hash-set cache_0 p_0 v_0))))))
(define -loading-filename (gensym))
(define -loading-prompt-tag (make-continuation-prompt-tag 'module-loading))
(define cell.3 (unsafe-make-place-local #f))
(define cell.4 (unsafe-make-place-local #f))
(define split-relative-string
  (lambda (s_0 coll-mode?_0)
    (let ((l_0
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (s_1)
                 (begin
                   (let ((len_0 (string-length s_1)))
                     (letrec*
                      ((iloop_0
                        (|#%name|
                         iloop
                         (lambda (i_0)
                           (begin
                             (if (= i_0 len_0)
                               (list s_1)
                               (if (char=? '#\x2f (string-ref s_1 i_0))
                                 (let ((app_0 (substring s_1 0 i_0)))
                                   (cons
                                    app_0
                                    (loop_0 (substring s_1 (add1 i_0)))))
                                 (iloop_0 (add1 i_0)))))))))
                      (iloop_0 0))))))))
            (loop_0 s_0))))
      (if coll-mode?_0
        l_0
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (l_1)
              (begin
                (if (null? (cdr l_1))
                  (values null (car l_1))
                  (call-with-values
                   (lambda () (loop_0 (cdr l_1)))
                   (case-lambda
                    ((c_0 f_0) (values (cons (car l_1) c_0) f_0))
                    (args (raise-binding-result-arity-error 2 args))))))))))
         (loop_0 l_0))))))
(define format-source-location
  (lambda (stx_0)
    (srcloc->string
     (let ((app_0 (1/syntax-source stx_0)))
       (let ((app_1 (1/syntax-line stx_0)))
         (let ((app_2 (1/syntax-column stx_0)))
           (let ((app_3 (1/syntax-position stx_0)))
             (unsafe-make-srcloc
              app_0
              app_1
              app_2
              app_3
              (1/syntax-span stx_0)))))))))
(define cell.5 (unsafe-make-place-local #f))
(define cell.6 (unsafe-make-place-local #f))
(define prep-planet-resolver!
  (lambda ()
    (if (unsafe-place-local-ref cell.6)
      (void)
      (with-continuation-mark*
       authentic
       parameterization-key
       (unsafe-place-local-ref cell.5)
       (unsafe-place-local-set!
        cell.6
        (1/dynamic-require
         '(lib "planet/resolver.rkt")
         'planet-module-name-resolver))))))
(define standard-module-name-resolver
  (case-lambda
   ((s_0 from-namespace_0)
    (begin
      (if (1/resolved-module-path? s_0)
        (void)
        (raise-argument-error
         'standard-module-name-resolver
         "resolved-module-path?"
         s_0))
      (if (let ((or-part_0 (not from-namespace_0)))
            (if or-part_0 or-part_0 (1/namespace? from-namespace_0)))
        (void)
        (raise-argument-error
         'standard-module-name-resolver
         "(or/c #f namespace?)"
         from-namespace_0))
      (if (unsafe-place-local-ref cell.6)
        (|#%app| (unsafe-place-local-ref cell.6) s_0)
        (void))
      (let ((hts_0
             (let ((or-part_0
                    (registry-table-ref
                     (namespace-module-registry$1 (1/current-namespace)))))
               (if or-part_0
                 or-part_0
                 (let ((hts_0
                        (let ((app_0 (make-hasheq)))
                          (cons app_0 (make-hasheq)))))
                   (begin
                     (registry-table-set!
                      (namespace-module-registry$1 (1/current-namespace))
                      hts_0)
                     hts_0))))))
        (begin
          (hash-set! (car hts_0) s_0 'declared)
          (if from-namespace_0
            (let ((root-name_0
                   (if (pair? (1/resolved-module-path-name s_0))
                     (1/make-resolved-module-path
                      (car (1/resolved-module-path-name s_0)))
                     s_0)))
              (let ((from-hts_0
                     (registry-table-ref
                      (namespace-module-registry$1 from-namespace_0))))
                (let ((root-name_1 root-name_0))
                  (if from-hts_0
                    (let ((use-path/src_0
                           (hash-ref (cdr from-hts_0) root-name_1 #f)))
                      (if use-path/src_0
                        (hash-set! (cdr hts_0) root-name_1 use-path/src_0)
                        (void)))
                    (void)))))
            (void))))))
   ((s_0 relto_0 stx_0)
    (begin
      (log-message
       (current-logger)
       'error
       "default module name resolver called with three arguments (deprecated)"
       #f)
      (standard-module-name-resolver s_0 relto_0 stx_0 #t)))
   ((s_0 relto_0 stx_0 load?_0)
    (begin
      (if (1/module-path? s_0)
        (void)
        (if (syntax?$1 stx_0)
          (raise-syntax-error$1 #f "bad module path" stx_0)
          (raise-argument-error
           'standard-module-name-resolver
           "module-path?"
           s_0)))
      (begin
        (if (let ((or-part_0 (not relto_0)))
              (if or-part_0 or-part_0 (1/resolved-module-path? relto_0)))
          (void)
          (raise-argument-error
           'standard-module-name-resolver
           "(or/c #f resolved-module-path?)"
           relto_0))
        (begin
          (if (let ((or-part_0 (not stx_0)))
                (if or-part_0 or-part_0 (syntax?$1 stx_0)))
            (void)
            (raise-argument-error
             'standard-module-name-resolver
             "(or/c #f syntax?)"
             stx_0))
          (let ((flatten-sub-path_0
                 (|#%name|
                  flatten-sub-path
                  (lambda (base_0 orig-l_0)
                    (begin
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (a_0 l_0)
                            (begin
                              (if (null? l_0)
                                (if (null? a_0)
                                  base_0
                                  (cons base_0 (reverse$1 a_0)))
                                (if (equal? (car l_0) "..")
                                  (if (null? a_0)
                                    (error
                                     'standard-module-name-resolver
                                     "too many \"..\"s in submodule path: ~.s"
                                     (list*
                                      'submod
                                      (if (equal? base_0 ".")
                                        base_0
                                        (if (path? base_0)
                                          base_0
                                          (list
                                           (if (symbol? base_0) 'quote 'file)
                                           base_0)))
                                      orig-l_0))
                                    (let ((app_0 (cdr a_0)))
                                      (loop_0 app_0 (cdr l_0))))
                                  (let ((app_0 (cons (car l_0) a_0)))
                                    (loop_0 app_0 (cdr l_0))))))))))
                       (loop_0 null orig-l_0)))))))
            (if (if (pair? s_0) (eq? (car s_0) 'quote) #f)
              (1/make-resolved-module-path (cadr s_0))
              (if (if (pair? s_0)
                    (if (eq? (car s_0) 'submod)
                      (if (pair? (cadr s_0)) (eq? (caadr s_0) 'quote) #f)
                      #f)
                    #f)
                (1/make-resolved-module-path
                 (let ((app_0 (cadadr s_0)))
                   (flatten-sub-path_0 app_0 (cddr s_0))))
                (if (if (pair? s_0)
                      (if (eq? (car s_0) 'submod)
                        (if (let ((or-part_0 (equal? (cadr s_0) ".")))
                              (if or-part_0
                                or-part_0
                                (equal? (cadr s_0) "..")))
                          (if relto_0
                            (let ((p_0 (1/resolved-module-path-name relto_0)))
                              (let ((or-part_0 (symbol? p_0)))
                                (if or-part_0
                                  or-part_0
                                  (if (pair? p_0) (symbol? (car p_0)) #f))))
                            #f)
                          #f)
                        #f)
                      #f)
                  (let ((rp_0 (1/resolved-module-path-name relto_0)))
                    (1/make-resolved-module-path
                     (let ((app_0 (if (pair? rp_0) (car rp_0) rp_0)))
                       (flatten-sub-path_0
                        app_0
                        (let ((r_0
                               (if (equal? (cadr s_0) "..")
                                 (cdr s_0)
                                 (cddr s_0))))
                          (if (pair? rp_0) (append (cdr rp_0) r_0) r_0))))))
                  (if (if (pair? s_0) (eq? (car s_0) 'planet) #f)
                    (begin
                      (prep-planet-resolver!)
                      (|#%app|
                       (unsafe-place-local-ref cell.6)
                       s_0
                       relto_0
                       stx_0
                       load?_0
                       #f
                       (unsafe-place-local-ref cell.5)))
                    (if (if (pair? s_0)
                          (if (eq? (car s_0) 'submod)
                            (if (pair? (cadr s_0))
                              (eq? (caadr s_0) 'planet)
                              #f)
                            #f)
                          #f)
                      (begin
                        (prep-planet-resolver!)
                        (let ((app_0 (cadr s_0)))
                          (let ((app_1 (cddr s_0)))
                            (|#%app|
                             (unsafe-place-local-ref cell.6)
                             app_0
                             relto_0
                             stx_0
                             load?_0
                             app_1
                             (unsafe-place-local-ref cell.5)))))
                      (let ((get-dir_0
                             (|#%name|
                              get-dir
                              (lambda ()
                                (begin
                                  (let ((or-part_0
                                         (if relto_0
                                           (if (eq?
                                                relto_0
                                                (unsafe-place-local-ref
                                                 cell.3))
                                             (unsafe-place-local-ref cell.4)
                                             (let ((p_0
                                                    (1/resolved-module-path-name
                                                     relto_0)))
                                               (let ((p_1
                                                      (if (pair? p_0)
                                                        (car p_0)
                                                        p_0)))
                                                 (if (path? p_1)
                                                   (call-with-values
                                                    (lambda ()
                                                      (split-path p_1))
                                                    (case-lambda
                                                     ((base_0 n_0 d?_0)
                                                      (begin
                                                        (unsafe-place-local-set!
                                                         cell.3
                                                         relto_0)
                                                        (unsafe-place-local-set!
                                                         cell.4
                                                         base_0)
                                                        base_0))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       3
                                                       args))))
                                                   #f))))
                                           #f)))
                                    (if or-part_0
                                      or-part_0
                                      (let ((or-part_1
                                             (current-load-relative-directory)))
                                        (if or-part_1
                                          or-part_1
                                          (current-directory))))))))))
                        (let ((get-reg_0
                               (|#%name|
                                get-reg
                                (lambda ()
                                  (begin
                                    (namespace-module-registry$1
                                     (1/current-namespace)))))))
                          (let ((show-collection-err_0
                                 (|#%name|
                                  show-collection-err
                                  (lambda (msg_0)
                                    (begin
                                      (let ((msg_1
                                             (let ((app_0
                                                    (let ((or-part_0
                                                           (if stx_0
                                                             (if (error-print-source-location)
                                                               (format-source-location
                                                                stx_0)
                                                               #f)
                                                             #f)))
                                                      (if or-part_0
                                                        or-part_0
                                                        "standard-module-name-resolver"))))
                                               (string-append
                                                app_0
                                                ": "
                                                (regexp-replace
                                                 rx2823
                                                 msg_0
                                                 (format
                                                  "\n  for module path: ~s\n"
                                                  s_0))))))
                                        (raise
                                         (if stx_0
                                           (let ((app_0
                                                  (current-continuation-marks)))
                                             (|#%app|
                                              1/make-exn:fail:syntax:missing-module
                                              msg_1
                                              app_0
                                              (list (syntax-taint$1 stx_0))
                                              s_0))
                                           (|#%app|
                                            1/make-exn:fail:filesystem:missing-module
                                            msg_1
                                            (current-continuation-marks)
                                            s_0)))))))))
                            (let ((invent-collection-dir_0
                                   (|#%name|
                                    invent-collection-dir
                                    (lambda (f-file_0 col_0 col-path_0 fail_0)
                                      (begin
                                        (lambda (msg_0)
                                          (string->uninterned-symbol
                                           (path->string
                                            (build-path
                                             (apply
                                              build-path
                                              col_0
                                              col-path_0)
                                             f-file_0)))))))))
                              (let ((ss->rkt_0
                                     (|#%name|
                                      ss->rkt
                                      (lambda (s_1)
                                        (begin
                                          (let ((len_0 (string-length s_1)))
                                            (if (if (>= len_0 3)
                                                  (if (eqv?
                                                       '#\x2e
                                                       (string-ref
                                                        s_1
                                                        (- len_0 3)))
                                                    (if (eqv?
                                                         '#\x73
                                                         (string-ref
                                                          s_1
                                                          (- len_0 2)))
                                                      (eqv?
                                                       '#\x73
                                                       (string-ref
                                                        s_1
                                                        (- len_0 1)))
                                                      #f)
                                                    #f)
                                                  #f)
                                              (string-append
                                               (substring s_1 0 (- len_0 3))
                                               ".rkt")
                                              s_1)))))))
                                (let ((path-ss->rkt_0
                                       (|#%name|
                                        path-ss->rkt
                                        (lambda (p_0)
                                          (begin
                                            (call-with-values
                                             (lambda () (split-path p_0))
                                             (case-lambda
                                              ((base_0 name_0 dir?_0)
                                               (if (regexp-match
                                                    rx2418
                                                    (path->bytes name_0))
                                                 (path-replace-extension
                                                  p_0
                                                  #vu8(46 114 107 116))
                                                 p_0))
                                              (args
                                               (raise-binding-result-arity-error
                                                3
                                                args)))))))))
                                  (let ((s_1
                                         (if (if (pair? s_0)
                                               (eq? 'submod (car s_0))
                                               #f)
                                           (let ((v_0 (cadr s_0)))
                                             (if (let ((or-part_0
                                                        (equal? v_0 ".")))
                                                   (if or-part_0
                                                     or-part_0
                                                     (equal? v_0 "..")))
                                               (if relto_0
                                                 (let ((p_0
                                                        (1/resolved-module-path-name
                                                         relto_0)))
                                                   (if (pair? p_0)
                                                     (car p_0)
                                                     p_0))
                                                 (error
                                                  'standard-module-name-resolver
                                                  "no base path for relative submodule path: ~.s"
                                                  s_0))
                                               v_0))
                                           s_0)))
                                    (let ((subm-path_0
                                           (if (if (pair? s_0)
                                                 (eq? 'submod (car s_0))
                                                 #f)
                                             (let ((p_0
                                                    (if (if (let ((or-part_0
                                                                   (equal?
                                                                    (cadr s_0)
                                                                    ".")))
                                                              (if or-part_0
                                                                or-part_0
                                                                (equal?
                                                                 (cadr s_0)
                                                                 "..")))
                                                          relto_0
                                                          #f)
                                                      (let ((p_0
                                                             (1/resolved-module-path-name
                                                              relto_0)))
                                                        (let ((r_0
                                                               (if (equal?
                                                                    (cadr s_0)
                                                                    "..")
                                                                 (cdr s_0)
                                                                 (cddr s_0))))
                                                          (let ((p_1 p_0))
                                                            (if (pair? p_1)
                                                              (let ((app_0
                                                                     (car
                                                                      p_1)))
                                                                (flatten-sub-path_0
                                                                 app_0
                                                                 (append
                                                                  (cdr p_1)
                                                                  r_0)))
                                                              (flatten-sub-path_0
                                                               p_1
                                                               r_0)))))
                                                      (flatten-sub-path_0
                                                       "."
                                                       (if (equal?
                                                            (cadr s_0)
                                                            "..")
                                                         (cdr s_0)
                                                         (cddr s_0))))))
                                               (if (pair? p_0) (cdr p_0) #f))
                                             #f)))
                                      (let ((s_2 s_1)
                                            (path-ss->rkt_1 path-ss->rkt_0)
                                            (ss->rkt_1 ss->rkt_0)
                                            (invent-collection-dir_1
                                             invent-collection-dir_0)
                                            (show-collection-err_1
                                             show-collection-err_0)
                                            (get-reg_1 get-reg_0)
                                            (get-dir_1 get-dir_0))
                                        (let ((s-parsed_0
                                               (if (symbol? s_2)
                                                 (let ((or-part_0
                                                        (path-cache-get
                                                         s_2
                                                         (get-reg_1))))
                                                   (if or-part_0
                                                     or-part_0
                                                     (call-with-values
                                                      (lambda ()
                                                        (split-relative-string
                                                         (symbol->string s_2)
                                                         #f))
                                                      (case-lambda
                                                       ((cols_0 file_0)
                                                        (let ((f-file_0
                                                               (if (null?
                                                                    cols_0)
                                                                 "main.rkt"
                                                                 (string-append
                                                                  file_0
                                                                  ".rkt"))))
                                                          (let ((col_0
                                                                 (if (null?
                                                                      cols_0)
                                                                   file_0
                                                                   (car
                                                                    cols_0))))
                                                            (let ((col-path_0
                                                                   (if (null?
                                                                        cols_0)
                                                                     null
                                                                     (cdr
                                                                      cols_0))))
                                                              (find-col-file
                                                               (if (not
                                                                    subm-path_0)
                                                                 show-collection-err_1
                                                                 (invent-collection-dir_1
                                                                  f-file_0
                                                                  col_0
                                                                  col-path_0
                                                                  show-collection-err_1))
                                                               col_0
                                                               col-path_0
                                                               f-file_0
                                                               #t)))))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))))
                                                 (if (string? s_2)
                                                   (let ((dir_0 (get-dir_1)))
                                                     (let ((or-part_0
                                                            (path-cache-get
                                                             (cons s_2 dir_0)
                                                             #f)))
                                                       (if or-part_0
                                                         or-part_0
                                                         (call-with-values
                                                          (lambda ()
                                                            (split-relative-string
                                                             s_2
                                                             #f))
                                                          (case-lambda
                                                           ((cols_0 file_0)
                                                            (if (null? cols_0)
                                                              (build-path
                                                               dir_0
                                                               (ss->rkt_1
                                                                file_0))
                                                              (apply
                                                               build-path
                                                               dir_0
                                                               (let ((app_0
                                                                      (map_1346
                                                                       (lambda (s_3)
                                                                         (if (string=?
                                                                              s_3
                                                                              ".")
                                                                           'same
                                                                           (if (string=?
                                                                                s_3
                                                                                "..")
                                                                             'up
                                                                             s_3)))
                                                                       cols_0)))
                                                                 (append
                                                                  app_0
                                                                  (list
                                                                   (ss->rkt_1
                                                                    file_0)))))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))))
                                                   (if (path? s_2)
                                                     (path-ss->rkt_1
                                                      (simplify-path
                                                       (if (complete-path? s_2)
                                                         s_2
                                                         (path->complete-path
                                                          s_2
                                                          (get-dir_1)))))
                                                     (if (eq? (car s_2) 'lib)
                                                       (let ((or-part_0
                                                              (path-cache-get
                                                               s_2
                                                               (get-reg_1))))
                                                         (if or-part_0
                                                           or-part_0
                                                           (call-with-values
                                                            (lambda ()
                                                              (split-relative-string
                                                               (cadr s_2)
                                                               #f))
                                                            (case-lambda
                                                             ((cols_0 file_0)
                                                              (let ((old-style?_0
                                                                     (if (null?
                                                                          (cddr
                                                                           s_2))
                                                                       (if (null?
                                                                            cols_0)
                                                                         (regexp-match?
                                                                          rx2668
                                                                          file_0)
                                                                         #f)
                                                                       #t)))
                                                                (let ((f-file_0
                                                                       (if old-style?_0
                                                                         (ss->rkt_1
                                                                          file_0)
                                                                         (if (null?
                                                                              cols_0)
                                                                           "main.rkt"
                                                                           (if (regexp-match?
                                                                                rx2668
                                                                                file_0)
                                                                             (ss->rkt_1
                                                                              file_0)
                                                                             (string-append
                                                                              file_0
                                                                              ".rkt"))))))
                                                                  (let ((cols_1
                                                                         (if old-style?_0
                                                                           (append
                                                                            (if (null?
                                                                                 (cddr
                                                                                  s_2))
                                                                              '("mzlib")
                                                                              (apply
                                                                               append
                                                                               (map_1346
                                                                                (lambda (p_0)
                                                                                  (split-relative-string
                                                                                   p_0
                                                                                   #t))
                                                                                (cddr
                                                                                 s_2))))
                                                                            cols_0)
                                                                           (if (null?
                                                                                cols_0)
                                                                             (list
                                                                              file_0)
                                                                             cols_0))))
                                                                    (let ((app_0
                                                                           (car
                                                                            cols_1)))
                                                                      (find-col-file
                                                                       show-collection-err_1
                                                                       app_0
                                                                       (cdr
                                                                        cols_1)
                                                                       f-file_0
                                                                       #t))))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args))))))
                                                       (if (eq?
                                                            (car s_2)
                                                            'file)
                                                         (path-ss->rkt_1
                                                          (simplify-path
                                                           (let ((app_0
                                                                  (expand-user-path
                                                                   (cadr
                                                                    s_2))))
                                                             (path->complete-path
                                                              app_0
                                                              (get-dir_1)))))
                                                         (void))))))))
                                          (if (symbol? s-parsed_0)
                                            (1/make-resolved-module-path
                                             (cons s-parsed_0 subm-path_0))
                                            (if (not
                                                 (let ((or-part_0
                                                        (path? s-parsed_0)))
                                                   (if or-part_0
                                                     or-part_0
                                                     (vector? s-parsed_0))))
                                              (if stx_0
                                                (raise-syntax-error$1
                                                 'require
                                                 (format
                                                  "bad module path~a"
                                                  (if s-parsed_0
                                                    (car s-parsed_0)
                                                    ""))
                                                 stx_0)
                                                (raise-argument-error
                                                 'standard-module-name-resolver
                                                 "module-path?"
                                                 s_2))
                                              (let ((filename_0
                                                     (if (vector? s-parsed_0)
                                                       (vector-ref
                                                        s-parsed_0
                                                        0)
                                                       (simplify-path
                                                        (cleanse-path
                                                         s-parsed_0)
                                                        #f))))
                                                (let ((normal-filename_0
                                                       (if (vector? s-parsed_0)
                                                         (vector-ref
                                                          s-parsed_0
                                                          1)
                                                         (normal-case-path
                                                          filename_0))))
                                                  (call-with-values
                                                   (lambda ()
                                                     (if (vector? s-parsed_0)
                                                       (values
                                                        'ignored
                                                        (vector-ref
                                                         s-parsed_0
                                                         2)
                                                        'ignored)
                                                       (split-path
                                                        filename_0)))
                                                   (case-lambda
                                                    ((base_0 name_0 dir?_0)
                                                     (let ((no-sfx_0
                                                            (if (vector?
                                                                 s-parsed_0)
                                                              (vector-ref
                                                               s-parsed_0
                                                               3)
                                                              (path-replace-extension
                                                               name_0
                                                               #vu8()))))
                                                       (let ((root-modname_0
                                                              (if (vector?
                                                                   s-parsed_0)
                                                                (vector-ref
                                                                 s-parsed_0
                                                                 4)
                                                                (1/make-resolved-module-path
                                                                 filename_0))))
                                                         (let ((hts_0
                                                                (let ((or-part_0
                                                                       (registry-table-ref
                                                                        (get-reg_1))))
                                                                  (if or-part_0
                                                                    or-part_0
                                                                    (let ((hts_0
                                                                           (let ((app_0
                                                                                  (make-hasheq)))
                                                                             (cons
                                                                              app_0
                                                                              (make-hasheq)))))
                                                                      (begin
                                                                        (registry-table-set!
                                                                         (get-reg_1)
                                                                         hts_0)
                                                                        hts_0))))))
                                                           (let ((modname_0
                                                                  (if subm-path_0
                                                                    (1/make-resolved-module-path
                                                                     (cons
                                                                      (1/resolved-module-path-name
                                                                       root-modname_0)
                                                                      subm-path_0))
                                                                    root-modname_0)))
                                                             (begin
                                                               (if load?_0
                                                                 (let ((got_0
                                                                        (hash-ref
                                                                         (car
                                                                          hts_0)
                                                                         modname_0
                                                                         #f)))
                                                                   (if got_0
                                                                     (void)
                                                                     (let ((loading_0
                                                                            (let ((tag_0
                                                                                   (if (continuation-prompt-available?
                                                                                        -loading-prompt-tag)
                                                                                     -loading-prompt-tag
                                                                                     (default-continuation-prompt-tag))))
                                                                              (continuation-mark-set-first
                                                                               #f
                                                                               -loading-filename
                                                                               null
                                                                               tag_0))))
                                                                       (let ((nsr_0
                                                                              (get-reg_1)))
                                                                         (let ((loading_1
                                                                                loading_0))
                                                                           (begin
                                                                             (for-each_2380
                                                                              (lambda (s_3)
                                                                                (if (if (equal?
                                                                                         (cdr
                                                                                          s_3)
                                                                                         normal-filename_0)
                                                                                      (eq?
                                                                                       (car
                                                                                        s_3)
                                                                                       nsr_0)
                                                                                      #f)
                                                                                  (error
                                                                                   'standard-module-name-resolver
                                                                                   "cycle in loading\n  at path: ~a\n  paths:~a"
                                                                                   filename_0
                                                                                   (apply
                                                                                    string-append
                                                                                    (letrec*
                                                                                     ((loop_0
                                                                                       (|#%name|
                                                                                        loop
                                                                                        (lambda (l_0)
                                                                                          (begin
                                                                                            (if (null?
                                                                                                 l_0)
                                                                                              '()
                                                                                              (let ((app_0
                                                                                                     (path->string
                                                                                                      (cdar
                                                                                                       l_0))))
                                                                                                (list*
                                                                                                 "\n   "
                                                                                                 app_0
                                                                                                 (loop_0
                                                                                                  (cdr
                                                                                                   l_0))))))))))
                                                                                     (loop_0
                                                                                      (reverse$1
                                                                                       loading_1)))))
                                                                                  (void)))
                                                                              loading_1)
                                                                             (|#%app|
                                                                              (if (continuation-prompt-available?
                                                                                   -loading-prompt-tag)
                                                                                (lambda (f_0)
                                                                                  (|#%app|
                                                                                   f_0))
                                                                                (lambda (f_0)
                                                                                  (call-with-continuation-prompt
                                                                                   f_0
                                                                                   -loading-prompt-tag)))
                                                                              (lambda ()
                                                                                (with-continuation-mark*
                                                                                 general
                                                                                 -loading-filename
                                                                                 (cons
                                                                                  (cons
                                                                                   nsr_0
                                                                                   normal-filename_0)
                                                                                  loading_1)
                                                                                 (with-continuation-mark*
                                                                                  authentic
                                                                                  parameterization-key
                                                                                  (let ((app_0
                                                                                         (continuation-mark-set-first
                                                                                          #f
                                                                                          parameterization-key)))
                                                                                    (extend-parameterization
                                                                                     app_0
                                                                                     1/current-module-declare-name
                                                                                     root-modname_0
                                                                                     1/current-module-path-for-load
                                                                                     (|#%app|
                                                                                      (if stx_0
                                                                                        (lambda (p_0)
                                                                                          (1/datum->syntax
                                                                                           #f
                                                                                           p_0
                                                                                           stx_0))
                                                                                        values)
                                                                                      (if (symbol?
                                                                                           s_2)
                                                                                        s_2
                                                                                        (if (if (pair?
                                                                                                 s_2)
                                                                                              (eq?
                                                                                               (car
                                                                                                s_2)
                                                                                               'lib)
                                                                                              #f)
                                                                                          s_2
                                                                                          (if (1/resolved-module-path?
                                                                                               root-modname_0)
                                                                                            (let ((src_0
                                                                                                   (1/resolved-module-path-name
                                                                                                    root-modname_0)))
                                                                                              (if (symbol?
                                                                                                   src_0)
                                                                                                (list
                                                                                                 'quote
                                                                                                 src_0)
                                                                                                src_0))
                                                                                            root-modname_0))))))
                                                                                  (let ((app_0
                                                                                         (1/current-load/use-compiled)))
                                                                                    (|#%app|
                                                                                     app_0
                                                                                     filename_0
                                                                                     (let ((sym_0
                                                                                            (string->symbol
                                                                                             (path->string
                                                                                              no-sfx_0))))
                                                                                       (if subm-path_0
                                                                                         (if (hash-ref
                                                                                              (car
                                                                                               hts_0)
                                                                                              root-modname_0
                                                                                              #f)
                                                                                           (cons
                                                                                            #f
                                                                                            subm-path_0)
                                                                                           (cons
                                                                                            sym_0
                                                                                            subm-path_0))
                                                                                         sym_0))))))))))))))
                                                                 (void))
                                                               (if (if (not
                                                                        (vector?
                                                                         s-parsed_0))
                                                                     (if load?_0
                                                                       (let ((or-part_0
                                                                              (string?
                                                                               s_2)))
                                                                         (if or-part_0
                                                                           or-part_0
                                                                           (let ((or-part_1
                                                                                  (symbol?
                                                                                   s_2)))
                                                                             (if or-part_1
                                                                               or-part_1
                                                                               (if (pair?
                                                                                    s_2)
                                                                                 (eq?
                                                                                  (car
                                                                                   s_2)
                                                                                  'lib)
                                                                                 #f)))))
                                                                       #f)
                                                                     #f)
                                                                 (let ((app_0
                                                                        (if (string?
                                                                             s_2)
                                                                          (cons
                                                                           s_2
                                                                           (get-dir_1))
                                                                          s_2)))
                                                                   (let ((app_1
                                                                          (if (string?
                                                                               s_2)
                                                                            #f
                                                                            (get-reg_1))))
                                                                     (path-cache-set!
                                                                      app_0
                                                                      app_1
                                                                      (vector
                                                                       filename_0
                                                                       normal-filename_0
                                                                       name_0
                                                                       no-sfx_0
                                                                       root-modname_0))))
                                                                 (void))
                                                               modname_0))))))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      3
                                                      args))))))))))))))))))))))))))))))
(define default-eval-handler
  (lambda (s_0)
    (let ((app_0 (1/current-namespace)))
      (1/eval
       s_0
       app_0
       (let ((c_0 (1/current-compile)))
         (lambda (e_0 ns_0)
           (if (eq? ns_0 (1/current-namespace))
             (|#%app| c_0 e_0 #t)
             (with-continuation-mark*
              authentic
              parameterization-key
              (extend-parameterization
               (continuation-mark-set-first #f parameterization-key)
               1/current-namespace
               ns_0)
              (|#%app| c_0 e_0 #t)))))))))
(define default-compile-handler
  (lambda (s_0 immediate-eval?_0)
    (1/compile s_0 (1/current-namespace) (not immediate-eval?_0))))
(define default-read-interaction
  (lambda (src_0 in_0)
    (begin
      (if (input-port? in_0)
        (void)
        (raise-argument-error 'default-read-interaction "input-port?" in_0))
      (with-continuation-mark*
       authentic
       parameterization-key
       (extend-parameterization
        (continuation-mark-set-first #f parameterization-key)
        1/read-accept-reader
        #t
        1/read-accept-lang
        #f)
       (1/read-syntax src_0 in_0)))))
(define boot
  (lambda ()
    (begin
      (unsafe-place-local-set! cell.1 (make-weak-hasheq))
      (unsafe-place-local-set! cell.2 (make-weak-hasheq))
      (seal)
      (1/current-module-name-resolver standard-module-name-resolver)
      (1/current-load/use-compiled default-load/use-compiled)
      (1/current-reader-guard default-reader-guard)
      (1/current-eval default-eval-handler)
      (1/current-compile default-compile-handler)
      (1/current-load default-load-handler)
      (current-read-interaction default-read-interaction))))
(define seal
  (lambda ()
    (unsafe-place-local-set!
     cell.5
     (reparameterize (continuation-mark-set-first #f parameterization-key)))))
(define get-original-parameterization
  (lambda () (unsafe-place-local-ref cell.5)))
(define default-current-read-interaction?
  (lambda () (eq? (current-read-interaction) default-read-interaction)))
(define boot-primitives
  (hash
   'boot
   boot
   'seal
   seal
   'get-original-parameterization
   get-original-parameterization
   'default-current-read-interaction?
   default-current-read-interaction?))
(define load-configure-expand
  (lambda (mpi_0 ns_0)
    (values current-parameterization current-parameterization)))
(define set-load-configure-expand!
  (lambda (proc_0) (set! load-configure-expand proc_0)))
(define exit-parameteterization-key (gensym 'exit-paramz))
(define current-exit-parameterization
  (lambda ()
    (let ((or-part_0
           (continuation-mark-set-first #f exit-parameteterization-key)))
      (if or-part_0 or-part_0 current-parameterization))))
(define enter-configure-parameterization
  (lambda (enter_0)
    (call-with-parameterization
     (check 'exit-parameterization (|#%app| (current-exit-parameterization)))
     (lambda () (check 'enter-parameterization (|#%app| enter_0))))))
(define call-with-configure-parameterization
  (lambda (paramz_0 exit-paramz_0 thunk_0)
    (with-continuation-mark*
     general
     exit-parameteterization-key
     exit-paramz_0
     (call-with-parameterization paramz_0 thunk_0))))
(define check
  (lambda (who_0 what_0)
    (begin
      (if (parameterization? what_0)
        (void)
        (raise-result-error who_0 "parameterization?" what_0))
      what_0)))
(define prepare-next-phase-namespace
  (lambda (ctx_0)
    (let ((phase_0
           (add1
            (begin-unsafe
             (expand-context/inner-phase
              (root-expand-context/outer-inner ctx_0))))))
      (let ((ns_0
             (namespace->namespace-at-phase
              (begin-unsafe
               (expand-context/inner-namespace
                (root-expand-context/outer-inner ctx_0)))
              phase_0)))
        (namespace-visit-available-modules! ns_0 phase_0)))))
(define expand-body.1
  (|#%name|
   expand-body
   (lambda (source1_0 stratified?2_0 bodys5_0 ctx6_0)
     (begin
       (begin
         (let ((obs_0
                (begin-unsafe
                 (expand-context/inner-observer
                  (root-expand-context/outer-inner ctx6_0)))))
           (if obs_0 (call-expand-observe obs_0 'enter-block bodys5_0) (void)))
         (let ((inside-sc_0 (new-scope 'intdef)))
           (let ((init-bodys_0
                  (reverse$1
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (fold-var_0 lst_0)
                           (begin
                             (if (pair? lst_0)
                               (let ((body_0 (unsafe-car lst_0)))
                                 (let ((rest_0 (unsafe-cdr lst_0)))
                                   (let ((fold-var_1
                                          (let ((fold-var_1
                                                 (cons
                                                  (add-scope
                                                   body_0
                                                   inside-sc_0)
                                                  fold-var_0)))
                                            (values fold-var_1))))
                                     (for-loop_0 fold-var_1 rest_0))))
                               fold-var_0))))))
                      (for-loop_0 null bodys5_0))))))
             (begin
               (let ((obs_0
                      (begin-unsafe
                       (expand-context/inner-observer
                        (root-expand-context/outer-inner ctx6_0)))))
                 (if obs_0
                   (call-expand-observe
                    obs_0
                    'block-renames
                    init-bodys_0
                    bodys5_0)
                   (void)))
               (let ((phase_0
                      (begin-unsafe
                       (expand-context/inner-phase
                        (root-expand-context/outer-inner ctx6_0)))))
                 (let ((frame-id_0 (make-reference-record)))
                   (let ((def-ctx-scopes_0 (box null)))
                     (let ((body-ctx_0
                            (if (expand-context/outer? ctx6_0)
                              (let ((context51_0
                                     (list (make-liberal-define-context))))
                                (let ((post-expansion55_0
                                       (|#%name|
                                        post-expansion55
                                        (lambda (s_0)
                                          (begin
                                            (add-scope s_0 inside-sc_0))))))
                                  (let ((scopes56_0
                                         (cons
                                          inside-sc_0
                                          (begin-unsafe
                                           (expand-context/outer-scopes
                                            ctx6_0)))))
                                    (let ((use-site-scopes57_0 (box null)))
                                      (let ((reference-records59_0
                                             (cons
                                              frame-id_0
                                              (begin-unsafe
                                               (expand-context/outer-reference-records
                                                ctx6_0)))))
                                        (let ((inner60_0
                                               (root-expand-context/outer-inner
                                                ctx6_0)))
                                          (expand-context/outer1.1
                                           inner60_0
                                           post-expansion55_0
                                           use-site-scopes57_0
                                           frame-id_0
                                           context51_0
                                           (expand-context/outer-env ctx6_0)
                                           scopes56_0
                                           def-ctx-scopes_0
                                           (expand-context/outer-binding-layer
                                            ctx6_0)
                                           reference-records59_0
                                           #t
                                           (expand-context/outer-need-eventually-defined
                                            ctx6_0)
                                           (expand-context/outer-current-introduction-scopes
                                            ctx6_0)
                                           (expand-context/outer-current-use-scopes
                                            ctx6_0)
                                           #f)))))))
                              (raise-argument-error
                               'struct-copy
                               "expand-context/outer?"
                               ctx6_0))))
                       (let ((maybe-increment-binding-layer_0
                              (|#%name|
                               maybe-increment-binding-layer
                               (lambda (ids_0 body-ctx_1)
                                 (begin
                                   (if (eq?
                                        (begin-unsafe
                                         (expand-context/outer-binding-layer
                                          body-ctx_1))
                                        (begin-unsafe
                                         (expand-context/outer-binding-layer
                                          ctx6_0)))
                                     (increment-binding-layer
                                      ids_0
                                      body-ctx_1
                                      inside-sc_0)
                                     (begin-unsafe
                                      (expand-context/outer-binding-layer
                                       body-ctx_1))))))))
                         (let ((name_0
                                (begin-unsafe
                                 (expand-context/outer-name ctx6_0))))
                           (letrec*
                            ((loop_0
                              (|#%name|
                               loop
                               (lambda (body-ctx_1
                                        bodys_0
                                        done-bodys_0
                                        val-idss_0
                                        val-keyss_0
                                        val-rhss_0
                                        track-stxs_0
                                        trans-idss_0
                                        trans-stxs_0
                                        stx-clauses_0
                                        dups_0
                                        just-saw-define-syntaxes?_0)
                                 (begin
                                   (if (null? bodys_0)
                                     (let ((temp64_0 (reverse$1 val-idss_0)))
                                       (let ((temp65_0
                                              (reverse$1 val-keyss_0)))
                                         (let ((temp66_0
                                                (reverse$1 val-rhss_0)))
                                           (let ((temp67_0
                                                  (reverse$1 track-stxs_0)))
                                             (let ((temp68_0
                                                    (reverse$1 stx-clauses_0)))
                                               (let ((temp69_0
                                                      (reverse$1
                                                       done-bodys_0)))
                                                 (let ((temp75_0
                                                        (reverse$1
                                                         trans-idss_0)))
                                                   (let ((temp76_0
                                                          (reverse$1
                                                           trans-stxs_0)))
                                                     (let ((temp75_1 temp75_0)
                                                           (temp69_1 temp69_0)
                                                           (temp68_1 temp68_0)
                                                           (temp67_1 temp67_0)
                                                           (temp66_1 temp66_0)
                                                           (temp65_1 temp65_0)
                                                           (temp64_1 temp64_0))
                                                       (finish-expanding-body.1
                                                        temp75_1
                                                        temp76_0
                                                        just-saw-define-syntaxes?_0
                                                        name_0
                                                        init-bodys_0
                                                        source1_0
                                                        stratified?2_0
                                                        body-ctx_1
                                                        frame-id_0
                                                        def-ctx-scopes_0
                                                        temp64_1
                                                        temp65_1
                                                        temp66_1
                                                        temp67_1
                                                        temp68_1
                                                        temp69_1))))))))))
                                     (let ((rest-bodys_0 (cdr bodys_0)))
                                       (begin
                                         (let ((obs_0
                                                (begin-unsafe
                                                 (expand-context/inner-observer
                                                  (root-expand-context/outer-inner
                                                   body-ctx_1)))))
                                           (if obs_0
                                             (call-expand-observe obs_0 'next)
                                             (void)))
                                         (let ((exp-body_0
                                                (let ((temp77_0 (car bodys_0)))
                                                  (let ((temp78_0
                                                         (if (if name_0
                                                               (null?
                                                                (cdr bodys_0))
                                                               #f)
                                                           (if (expand-context/outer?
                                                                body-ctx_1)
                                                             (let ((inner80_0
                                                                    (root-expand-context/outer-inner
                                                                     body-ctx_1)))
                                                               (expand-context/outer1.1
                                                                inner80_0
                                                                (root-expand-context/outer-post-expansion
                                                                 body-ctx_1)
                                                                (root-expand-context/outer-use-site-scopes
                                                                 body-ctx_1)
                                                                (root-expand-context/outer-frame-id
                                                                 body-ctx_1)
                                                                (expand-context/outer-context
                                                                 body-ctx_1)
                                                                (expand-context/outer-env
                                                                 body-ctx_1)
                                                                (expand-context/outer-scopes
                                                                 body-ctx_1)
                                                                (expand-context/outer-def-ctx-scopes
                                                                 body-ctx_1)
                                                                (expand-context/outer-binding-layer
                                                                 body-ctx_1)
                                                                (expand-context/outer-reference-records
                                                                 body-ctx_1)
                                                                (expand-context/outer-only-immediate?
                                                                 body-ctx_1)
                                                                (expand-context/outer-need-eventually-defined
                                                                 body-ctx_1)
                                                                (expand-context/outer-current-introduction-scopes
                                                                 body-ctx_1)
                                                                (expand-context/outer-current-use-scopes
                                                                 body-ctx_1)
                                                                name_0))
                                                             (raise-argument-error
                                                              'struct-copy
                                                              "expand-context/outer?"
                                                              body-ctx_1))
                                                           body-ctx_1)))
                                                    (let ((temp77_1 temp77_0))
                                                      (expand.1
                                                       #f
                                                       #f
                                                       temp77_1
                                                       temp78_0))))))
                                           (let ((tmp_0
                                                  (core-form-sym
                                                   exp-body_0
                                                   phase_0)))
                                             (if (eq? tmp_0 'begin)
                                               (begin
                                                 (let ((obs_0
                                                        (begin-unsafe
                                                         (expand-context/inner-observer
                                                          (root-expand-context/outer-inner
                                                           body-ctx_1)))))
                                                   (if obs_0
                                                     (call-expand-observe
                                                      obs_0
                                                      'prim-begin
                                                      exp-body_0)
                                                     (void)))
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((s_0
                                                              (if (syntax?$1
                                                                   exp-body_0)
                                                                (syntax-e$1
                                                                 exp-body_0)
                                                                exp-body_0)))
                                                         (if (pair? s_0)
                                                           (let ((begin83_0
                                                                  (let ((s_1
                                                                         (car
                                                                          s_0)))
                                                                    s_1)))
                                                             (let ((e84_0
                                                                    (let ((s_1
                                                                           (cdr
                                                                            s_0)))
                                                                      (let ((s_2
                                                                             (if (syntax?$1
                                                                                  s_1)
                                                                               (syntax-e$1
                                                                                s_1)
                                                                               s_1)))
                                                                        (let ((flat-s_0
                                                                               (to-syntax-list.1
                                                                                s_2)))
                                                                          (if (not
                                                                               flat-s_0)
                                                                            (raise-syntax-error$1
                                                                             #f
                                                                             "bad syntax"
                                                                             exp-body_0)
                                                                            flat-s_0))))))
                                                               (let ((begin83_1
                                                                      begin83_0))
                                                                 (values
                                                                  begin83_1
                                                                  e84_0))))
                                                           (raise-syntax-error$1
                                                            #f
                                                            "bad syntax"
                                                            exp-body_0))))
                                                     (case-lambda
                                                      ((begin81_0 e82_0)
                                                       (values
                                                        #t
                                                        begin81_0
                                                        e82_0))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((ok?_0 begin81_0 e82_0)
                                                    (let ((track_0
                                                           (|#%name|
                                                            track
                                                            (lambda (e_0)
                                                              (begin
                                                                (syntax-track-origin$1
                                                                 e_0
                                                                 exp-body_0))))))
                                                      (let ((splice-bodys_0
                                                             (append
                                                              (map_1346
                                                               track_0
                                                               e82_0)
                                                              rest-bodys_0)))
                                                        (begin
                                                          (let ((obs_0
                                                                 (begin-unsafe
                                                                  (expand-context/inner-observer
                                                                   (root-expand-context/outer-inner
                                                                    body-ctx_1)))))
                                                            (if obs_0
                                                              (call-expand-observe
                                                               obs_0
                                                               'splice
                                                               splice-bodys_0)
                                                              (void)))
                                                          (loop_0
                                                           body-ctx_1
                                                           splice-bodys_0
                                                           done-bodys_0
                                                           val-idss_0
                                                           val-keyss_0
                                                           val-rhss_0
                                                           track-stxs_0
                                                           trans-idss_0
                                                           trans-stxs_0
                                                           stx-clauses_0
                                                           dups_0
                                                           just-saw-define-syntaxes?_0)))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     3
                                                     args)))))
                                               (if (eq? tmp_0 'define-values)
                                                 (begin
                                                   (let ((obs_0
                                                          (begin-unsafe
                                                           (expand-context/inner-observer
                                                            (root-expand-context/outer-inner
                                                             body-ctx_1)))))
                                                     (if obs_0
                                                       (call-expand-observe
                                                        obs_0
                                                        'prim-define-values
                                                        exp-body_0)
                                                       (void)))
                                                   (call-with-values
                                                    (lambda ()
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((s_0
                                                                (if (syntax?$1
                                                                     exp-body_0)
                                                                  (syntax-e$1
                                                                   exp-body_0)
                                                                  exp-body_0)))
                                                           (if (pair? s_0)
                                                             (let ((define-values88_0
                                                                    (let ((s_1
                                                                           (car
                                                                            s_0)))
                                                                      s_1)))
                                                               (call-with-values
                                                                (lambda ()
                                                                  (let ((s_1
                                                                         (cdr
                                                                          s_0)))
                                                                    (let ((s_2
                                                                           (if (syntax?$1
                                                                                s_1)
                                                                             (syntax-e$1
                                                                              s_1)
                                                                             s_1)))
                                                                      (if (pair?
                                                                           s_2)
                                                                        (let ((id91_0
                                                                               (let ((s_3
                                                                                      (car
                                                                                       s_2)))
                                                                                 (let ((s_4
                                                                                        (if (syntax?$1
                                                                                             s_3)
                                                                                          (syntax-e$1
                                                                                           s_3)
                                                                                          s_3)))
                                                                                   (let ((flat-s_0
                                                                                          (to-syntax-list.1
                                                                                           s_4)))
                                                                                     (if (not
                                                                                          flat-s_0)
                                                                                       (raise-syntax-error$1
                                                                                        #f
                                                                                        "bad syntax"
                                                                                        exp-body_0)
                                                                                       (let ((id_0
                                                                                              (begin
                                                                                                (letrec*
                                                                                                 ((for-loop_0
                                                                                                   (|#%name|
                                                                                                    for-loop
                                                                                                    (lambda (id_0
                                                                                                             lst_0)
                                                                                                      (begin
                                                                                                        (if (pair?
                                                                                                             lst_0)
                                                                                                          (let ((s_5
                                                                                                                 (unsafe-car
                                                                                                                  lst_0)))
                                                                                                            (let ((rest_0
                                                                                                                   (unsafe-cdr
                                                                                                                    lst_0)))
                                                                                                              (let ((id_1
                                                                                                                     (let ((id_1
                                                                                                                            (let ((id94_0
                                                                                                                                   (if (let ((or-part_0
                                                                                                                                              (if (syntax?$1
                                                                                                                                                   s_5)
                                                                                                                                                (symbol?
                                                                                                                                                 (syntax-e$1
                                                                                                                                                  s_5))
                                                                                                                                                #f)))
                                                                                                                                         (if or-part_0
                                                                                                                                           or-part_0
                                                                                                                                           (symbol?
                                                                                                                                            s_5)))
                                                                                                                                     s_5
                                                                                                                                     (raise-syntax-error$1
                                                                                                                                      #f
                                                                                                                                      "not an identifier"
                                                                                                                                      exp-body_0
                                                                                                                                      s_5))))
                                                                                                                              (cons
                                                                                                                               id94_0
                                                                                                                               id_0))))
                                                                                                                       (values
                                                                                                                        id_1))))
                                                                                                                (for-loop_0
                                                                                                                 id_1
                                                                                                                 rest_0))))
                                                                                                          id_0))))))
                                                                                                 (for-loop_0
                                                                                                  null
                                                                                                  flat-s_0)))))
                                                                                         (reverse$1
                                                                                          id_0))))))))
                                                                          (let ((rhs92_0
                                                                                 (let ((s_3
                                                                                        (cdr
                                                                                         s_2)))
                                                                                   (let ((s_4
                                                                                          (if (syntax?$1
                                                                                               s_3)
                                                                                            (syntax-e$1
                                                                                             s_3)
                                                                                            s_3)))
                                                                                     (if (pair?
                                                                                          s_4)
                                                                                       (let ((rhs93_0
                                                                                              (let ((s_5
                                                                                                     (car
                                                                                                      s_4)))
                                                                                                s_5)))
                                                                                         (call-with-values
                                                                                          (lambda ()
                                                                                            (let ((s_5
                                                                                                   (cdr
                                                                                                    s_4)))
                                                                                              (let ((s_6
                                                                                                     (if (syntax?$1
                                                                                                          s_5)
                                                                                                       (syntax-e$1
                                                                                                        s_5)
                                                                                                       s_5)))
                                                                                                (if (null?
                                                                                                     s_6)
                                                                                                  (values)
                                                                                                  (raise-syntax-error$1
                                                                                                   #f
                                                                                                   "bad syntax"
                                                                                                   exp-body_0)))))
                                                                                          (case-lambda
                                                                                           (()
                                                                                            (let ((rhs93_1
                                                                                                   rhs93_0))
                                                                                              (values
                                                                                               rhs93_1)))
                                                                                           (args
                                                                                            (raise-binding-result-arity-error
                                                                                             0
                                                                                             args)))))
                                                                                       (raise-syntax-error$1
                                                                                        #f
                                                                                        "bad syntax"
                                                                                        exp-body_0))))))
                                                                            (let ((id91_1
                                                                                   id91_0))
                                                                              (values
                                                                               id91_1
                                                                               rhs92_0))))
                                                                        (raise-syntax-error$1
                                                                         #f
                                                                         "bad syntax"
                                                                         exp-body_0)))))
                                                                (case-lambda
                                                                 ((id89_0
                                                                   rhs90_0)
                                                                  (let ((define-values88_1
                                                                         define-values88_0))
                                                                    (values
                                                                     define-values88_1
                                                                     id89_0
                                                                     rhs90_0)))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))
                                                             (raise-syntax-error$1
                                                              #f
                                                              "bad syntax"
                                                              exp-body_0))))
                                                       (case-lambda
                                                        ((define-values85_0
                                                          id86_0
                                                          rhs87_0)
                                                         (values
                                                          #t
                                                          define-values85_0
                                                          id86_0
                                                          rhs87_0))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          3
                                                          args)))))
                                                    (case-lambda
                                                     ((ok?_0
                                                       define-values85_0
                                                       id86_0
                                                       rhs87_0)
                                                      (let ((ids_0
                                                             (remove-use-site-scopes
                                                              id86_0
                                                              body-ctx_1)))
                                                        (begin
                                                          (let ((obs_0
                                                                 (begin-unsafe
                                                                  (expand-context/inner-observer
                                                                   (root-expand-context/outer-inner
                                                                    body-ctx_1)))))
                                                            (if obs_0
                                                              (call-expand-observe
                                                               obs_0
                                                               'rename-one
                                                               (list
                                                                ids_0
                                                                rhs87_0))
                                                              (void)))
                                                          (let ((new-dups_0
                                                                 (check-no-duplicate-ids.1
                                                                  unsafe-undefined
                                                                  ids_0
                                                                  phase_0
                                                                  exp-body_0
                                                                  dups_0)))
                                                            (let ((counter_0
                                                                   (begin-unsafe
                                                                    (root-expand-context/inner-counter
                                                                     (root-expand-context/outer-inner
                                                                      ctx6_0)))))
                                                              (let ((local-sym_0
                                                                     (if (begin-unsafe
                                                                          (expand-context/inner-normalize-locals?
                                                                           (root-expand-context/outer-inner
                                                                            ctx6_0)))
                                                                       'loc
                                                                       #f)))
                                                                (let ((keys_0
                                                                       (reverse$1
                                                                        (begin
                                                                          (letrec*
                                                                           ((for-loop_0
                                                                             (|#%name|
                                                                              for-loop
                                                                              (lambda (fold-var_0
                                                                                       lst_0)
                                                                                (begin
                                                                                  (if (pair?
                                                                                       lst_0)
                                                                                    (let ((id_0
                                                                                           (unsafe-car
                                                                                            lst_0)))
                                                                                      (let ((rest_0
                                                                                             (unsafe-cdr
                                                                                              lst_0)))
                                                                                        (let ((fold-var_1
                                                                                               (let ((fold-var_1
                                                                                                      (cons
                                                                                                       (add-local-binding!.1
                                                                                                        frame-id_0
                                                                                                        exp-body_0
                                                                                                        local-sym_0
                                                                                                        id_0
                                                                                                        phase_0
                                                                                                        counter_0)
                                                                                                       fold-var_0)))
                                                                                                 (values
                                                                                                  fold-var_1))))
                                                                                          (for-loop_0
                                                                                           fold-var_1
                                                                                           rest_0))))
                                                                                    fold-var_0))))))
                                                                           (for-loop_0
                                                                            null
                                                                            ids_0))))))
                                                                  (let ((extended-env_0
                                                                         (begin
                                                                           (letrec*
                                                                            ((for-loop_0
                                                                              (|#%name|
                                                                               for-loop
                                                                               (lambda (env_0
                                                                                        lst_0
                                                                                        lst_1)
                                                                                 (begin
                                                                                   (if (if (pair?
                                                                                            lst_0)
                                                                                         (pair?
                                                                                          lst_1)
                                                                                         #f)
                                                                                     (let ((key_0
                                                                                            (unsafe-car
                                                                                             lst_0)))
                                                                                       (let ((rest_0
                                                                                              (unsafe-cdr
                                                                                               lst_0)))
                                                                                         (let ((id_0
                                                                                                (unsafe-car
                                                                                                 lst_1)))
                                                                                           (let ((rest_1
                                                                                                  (unsafe-cdr
                                                                                                   lst_1)))
                                                                                             (let ((val_0
                                                                                                    (local-variable1.1
                                                                                                     id_0)))
                                                                                               (let ((env_1
                                                                                                      (let ((env_1
                                                                                                             (begin-unsafe
                                                                                                              (hash-set
                                                                                                               env_0
                                                                                                               key_0
                                                                                                               val_0))))
                                                                                                        (values
                                                                                                         env_1))))
                                                                                                 (for-loop_0
                                                                                                  env_1
                                                                                                  rest_0
                                                                                                  rest_1)))))))
                                                                                     env_0))))))
                                                                            (for-loop_0
                                                                             (begin-unsafe
                                                                              (expand-context/outer-env
                                                                               body-ctx_1))
                                                                             keys_0
                                                                             ids_0)))))
                                                                    (let ((app_0
                                                                           (if (expand-context/outer?
                                                                                body-ctx_1)
                                                                             (let ((binding-layer106_0
                                                                                    (maybe-increment-binding-layer_0
                                                                                     ids_0
                                                                                     body-ctx_1)))
                                                                               (let ((inner107_0
                                                                                      (root-expand-context/outer-inner
                                                                                       body-ctx_1)))
                                                                                 (let ((binding-layer106_1
                                                                                        binding-layer106_0))
                                                                                   (expand-context/outer1.1
                                                                                    inner107_0
                                                                                    (root-expand-context/outer-post-expansion
                                                                                     body-ctx_1)
                                                                                    (root-expand-context/outer-use-site-scopes
                                                                                     body-ctx_1)
                                                                                    (root-expand-context/outer-frame-id
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-context
                                                                                     body-ctx_1)
                                                                                    extended-env_0
                                                                                    (expand-context/outer-scopes
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-def-ctx-scopes
                                                                                     body-ctx_1)
                                                                                    binding-layer106_1
                                                                                    (expand-context/outer-reference-records
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-only-immediate?
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-need-eventually-defined
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-current-introduction-scopes
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-current-use-scopes
                                                                                     body-ctx_1)
                                                                                    (expand-context/outer-name
                                                                                     body-ctx_1)))))
                                                                             (raise-argument-error
                                                                              'struct-copy
                                                                              "expand-context/outer?"
                                                                              body-ctx_1))))
                                                                      (let ((app_1
                                                                             (cons
                                                                              ids_0
                                                                              (append
                                                                               (reverse$1
                                                                                (begin
                                                                                  (letrec*
                                                                                   ((for-loop_0
                                                                                     (|#%name|
                                                                                      for-loop
                                                                                      (lambda (fold-var_0
                                                                                               lst_0)
                                                                                        (begin
                                                                                          (if (pair?
                                                                                               lst_0)
                                                                                            (let ((done-body_0
                                                                                                   (unsafe-car
                                                                                                    lst_0)))
                                                                                              (let ((rest_0
                                                                                                     (unsafe-cdr
                                                                                                      lst_0)))
                                                                                                (let ((fold-var_1
                                                                                                       (cons
                                                                                                        null
                                                                                                        fold-var_0)))
                                                                                                  (let ((fold-var_2
                                                                                                         (values
                                                                                                          fold-var_1)))
                                                                                                    (for-loop_0
                                                                                                     fold-var_2
                                                                                                     rest_0)))))
                                                                                            fold-var_0))))))
                                                                                   (for-loop_0
                                                                                    null
                                                                                    done-bodys_0))))
                                                                               val-idss_0))))
                                                                        (let ((app_2
                                                                               (cons
                                                                                keys_0
                                                                                (append
                                                                                 (reverse$1
                                                                                  (begin
                                                                                    (letrec*
                                                                                     ((for-loop_0
                                                                                       (|#%name|
                                                                                        for-loop
                                                                                        (lambda (fold-var_0
                                                                                                 lst_0)
                                                                                          (begin
                                                                                            (if (pair?
                                                                                                 lst_0)
                                                                                              (let ((done-body_0
                                                                                                     (unsafe-car
                                                                                                      lst_0)))
                                                                                                (let ((rest_0
                                                                                                       (unsafe-cdr
                                                                                                        lst_0)))
                                                                                                  (let ((fold-var_1
                                                                                                         (cons
                                                                                                          null
                                                                                                          fold-var_0)))
                                                                                                    (let ((fold-var_2
                                                                                                           (values
                                                                                                            fold-var_1)))
                                                                                                      (for-loop_0
                                                                                                       fold-var_2
                                                                                                       rest_0)))))
                                                                                              fold-var_0))))))
                                                                                     (for-loop_0
                                                                                      null
                                                                                      done-bodys_0))))
                                                                                 val-keyss_0))))
                                                                          (let ((app_3
                                                                                 (cons
                                                                                  rhs87_0
                                                                                  (append
                                                                                   (reverse$1
                                                                                    (begin
                                                                                      (letrec*
                                                                                       ((for-loop_0
                                                                                         (|#%name|
                                                                                          for-loop
                                                                                          (lambda (fold-var_0
                                                                                                   lst_0)
                                                                                            (begin
                                                                                              (if (pair?
                                                                                                   lst_0)
                                                                                                (let ((done-body_0
                                                                                                       (unsafe-car
                                                                                                        lst_0)))
                                                                                                  (let ((rest_0
                                                                                                         (unsafe-cdr
                                                                                                          lst_0)))
                                                                                                    (let ((fold-var_1
                                                                                                           (let ((fold-var_1
                                                                                                                  (cons
                                                                                                                   (no-binds
                                                                                                                    done-body_0
                                                                                                                    source1_0
                                                                                                                    phase_0)
                                                                                                                   fold-var_0)))
                                                                                                             (values
                                                                                                              fold-var_1))))
                                                                                                      (for-loop_0
                                                                                                       fold-var_1
                                                                                                       rest_0))))
                                                                                                fold-var_0))))))
                                                                                       (for-loop_0
                                                                                        null
                                                                                        done-bodys_0))))
                                                                                   val-rhss_0))))
                                                                            (loop_0
                                                                             app_0
                                                                             rest-bodys_0
                                                                             null
                                                                             app_1
                                                                             app_2
                                                                             app_3
                                                                             (let ((app_4
                                                                                    (keep-as-needed.1
                                                                                     #t
                                                                                     #f
                                                                                     #f
                                                                                     body-ctx_1
                                                                                     exp-body_0)))
                                                                               (cons
                                                                                app_4
                                                                                (append
                                                                                 (reverse$1
                                                                                  (begin
                                                                                    (letrec*
                                                                                     ((for-loop_0
                                                                                       (|#%name|
                                                                                        for-loop
                                                                                        (lambda (fold-var_0
                                                                                                 lst_0)
                                                                                          (begin
                                                                                            (if (pair?
                                                                                                 lst_0)
                                                                                              (let ((done-body_0
                                                                                                     (unsafe-car
                                                                                                      lst_0)))
                                                                                                (let ((rest_0
                                                                                                       (unsafe-cdr
                                                                                                        lst_0)))
                                                                                                  (let ((fold-var_1
                                                                                                         (cons
                                                                                                          #f
                                                                                                          fold-var_0)))
                                                                                                    (let ((fold-var_2
                                                                                                           (values
                                                                                                            fold-var_1)))
                                                                                                      (for-loop_0
                                                                                                       fold-var_2
                                                                                                       rest_0)))))
                                                                                              fold-var_0))))))
                                                                                     (for-loop_0
                                                                                      null
                                                                                      done-bodys_0))))
                                                                                 track-stxs_0)))
                                                                             trans-idss_0
                                                                             trans-stxs_0
                                                                             stx-clauses_0
                                                                             new-dups_0
                                                                             #f)))))))))))))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       4
                                                       args)))))
                                                 (if (eq?
                                                      tmp_0
                                                      'define-syntaxes)
                                                   (begin
                                                     (let ((obs_0
                                                            (begin-unsafe
                                                             (expand-context/inner-observer
                                                              (root-expand-context/outer-inner
                                                               body-ctx_1)))))
                                                       (if obs_0
                                                         (call-expand-observe
                                                          obs_0
                                                          'prim-define-syntaxes
                                                          exp-body_0)
                                                         (void)))
                                                     (call-with-values
                                                      (lambda ()
                                                        (call-with-values
                                                         (lambda ()
                                                           (let ((s_0
                                                                  (if (syntax?$1
                                                                       exp-body_0)
                                                                    (syntax-e$1
                                                                     exp-body_0)
                                                                    exp-body_0)))
                                                             (if (pair? s_0)
                                                               (let ((define-syntaxes114_0
                                                                      (let ((s_1
                                                                             (car
                                                                              s_0)))
                                                                        s_1)))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((s_1
                                                                           (cdr
                                                                            s_0)))
                                                                      (let ((s_2
                                                                             (if (syntax?$1
                                                                                  s_1)
                                                                               (syntax-e$1
                                                                                s_1)
                                                                               s_1)))
                                                                        (if (pair?
                                                                             s_2)
                                                                          (let ((id117_0
                                                                                 (let ((s_3
                                                                                        (car
                                                                                         s_2)))
                                                                                   (let ((s_4
                                                                                          (if (syntax?$1
                                                                                               s_3)
                                                                                            (syntax-e$1
                                                                                             s_3)
                                                                                            s_3)))
                                                                                     (let ((flat-s_0
                                                                                            (to-syntax-list.1
                                                                                             s_4)))
                                                                                       (if (not
                                                                                            flat-s_0)
                                                                                         (raise-syntax-error$1
                                                                                          #f
                                                                                          "bad syntax"
                                                                                          exp-body_0)
                                                                                         (let ((id_0
                                                                                                (begin
                                                                                                  (letrec*
                                                                                                   ((for-loop_0
                                                                                                     (|#%name|
                                                                                                      for-loop
                                                                                                      (lambda (id_0
                                                                                                               lst_0)
                                                                                                        (begin
                                                                                                          (if (pair?
                                                                                                               lst_0)
                                                                                                            (let ((s_5
                                                                                                                   (unsafe-car
                                                                                                                    lst_0)))
                                                                                                              (let ((rest_0
                                                                                                                     (unsafe-cdr
                                                                                                                      lst_0)))
                                                                                                                (let ((id_1
                                                                                                                       (let ((id_1
                                                                                                                              (let ((id120_0
                                                                                                                                     (if (let ((or-part_0
                                                                                                                                                (if (syntax?$1
                                                                                                                                                     s_5)
                                                                                                                                                  (symbol?
                                                                                                                                                   (syntax-e$1
                                                                                                                                                    s_5))
                                                                                                                                                  #f)))
                                                                                                                                           (if or-part_0
                                                                                                                                             or-part_0
                                                                                                                                             (symbol?
                                                                                                                                              s_5)))
                                                                                                                                       s_5
                                                                                                                                       (raise-syntax-error$1
                                                                                                                                        #f
                                                                                                                                        "not an identifier"
                                                                                                                                        exp-body_0
                                                                                                                                        s_5))))
                                                                                                                                (cons
                                                                                                                                 id120_0
                                                                                                                                 id_0))))
                                                                                                                         (values
                                                                                                                          id_1))))
                                                                                                                  (for-loop_0
                                                                                                                   id_1
                                                                                                                   rest_0))))
                                                                                                            id_0))))))
                                                                                                   (for-loop_0
                                                                                                    null
                                                                                                    flat-s_0)))))
                                                                                           (reverse$1
                                                                                            id_0))))))))
                                                                            (let ((rhs118_0
                                                                                   (let ((s_3
                                                                                          (cdr
                                                                                           s_2)))
                                                                                     (let ((s_4
                                                                                            (if (syntax?$1
                                                                                                 s_3)
                                                                                              (syntax-e$1
                                                                                               s_3)
                                                                                              s_3)))
                                                                                       (if (pair?
                                                                                            s_4)
                                                                                         (let ((rhs119_0
                                                                                                (let ((s_5
                                                                                                       (car
                                                                                                        s_4)))
                                                                                                  s_5)))
                                                                                           (call-with-values
                                                                                            (lambda ()
                                                                                              (let ((s_5
                                                                                                     (cdr
                                                                                                      s_4)))
                                                                                                (let ((s_6
                                                                                                       (if (syntax?$1
                                                                                                            s_5)
                                                                                                         (syntax-e$1
                                                                                                          s_5)
                                                                                                         s_5)))
                                                                                                  (if (null?
                                                                                                       s_6)
                                                                                                    (values)
                                                                                                    (raise-syntax-error$1
                                                                                                     #f
                                                                                                     "bad syntax"
                                                                                                     exp-body_0)))))
                                                                                            (case-lambda
                                                                                             (()
                                                                                              (let ((rhs119_1
                                                                                                     rhs119_0))
                                                                                                (values
                                                                                                 rhs119_1)))
                                                                                             (args
                                                                                              (raise-binding-result-arity-error
                                                                                               0
                                                                                               args)))))
                                                                                         (raise-syntax-error$1
                                                                                          #f
                                                                                          "bad syntax"
                                                                                          exp-body_0))))))
                                                                              (let ((id117_1
                                                                                     id117_0))
                                                                                (values
                                                                                 id117_1
                                                                                 rhs118_0))))
                                                                          (raise-syntax-error$1
                                                                           #f
                                                                           "bad syntax"
                                                                           exp-body_0)))))
                                                                  (case-lambda
                                                                   ((id115_0
                                                                     rhs116_0)
                                                                    (let ((define-syntaxes114_1
                                                                           define-syntaxes114_0))
                                                                      (values
                                                                       define-syntaxes114_1
                                                                       id115_0
                                                                       rhs116_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (raise-syntax-error$1
                                                                #f
                                                                "bad syntax"
                                                                exp-body_0))))
                                                         (case-lambda
                                                          ((define-syntaxes111_0
                                                            id112_0
                                                            rhs113_0)
                                                           (values
                                                            #t
                                                            define-syntaxes111_0
                                                            id112_0
                                                            rhs113_0))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            3
                                                            args)))))
                                                      (case-lambda
                                                       ((ok?_0
                                                         define-syntaxes111_0
                                                         id112_0
                                                         rhs113_0)
                                                        (let ((ids_0
                                                               (remove-use-site-scopes
                                                                id112_0
                                                                body-ctx_1)))
                                                          (begin
                                                            (let ((obs_0
                                                                   (begin-unsafe
                                                                    (expand-context/inner-observer
                                                                     (root-expand-context/outer-inner
                                                                      body-ctx_1)))))
                                                              (if obs_0
                                                                (call-expand-observe
                                                                 obs_0
                                                                 'rename-one
                                                                 (list
                                                                  ids_0
                                                                  rhs113_0))
                                                                (void)))
                                                            (let ((new-dups_0
                                                                   (check-no-duplicate-ids.1
                                                                    unsafe-undefined
                                                                    ids_0
                                                                    phase_0
                                                                    exp-body_0
                                                                    dups_0)))
                                                              (let ((counter_0
                                                                     (begin-unsafe
                                                                      (root-expand-context/inner-counter
                                                                       (root-expand-context/outer-inner
                                                                        ctx6_0)))))
                                                                (let ((local-sym_0
                                                                       (if (begin-unsafe
                                                                            (expand-context/inner-normalize-locals?
                                                                             (root-expand-context/outer-inner
                                                                              ctx6_0)))
                                                                         'mac
                                                                         #f)))
                                                                  (let ((keys_0
                                                                         (reverse$1
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_0
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (fold-var_0
                                                                                         lst_0)
                                                                                  (begin
                                                                                    (if (pair?
                                                                                         lst_0)
                                                                                      (let ((id_0
                                                                                             (unsafe-car
                                                                                              lst_0)))
                                                                                        (let ((rest_0
                                                                                               (unsafe-cdr
                                                                                                lst_0)))
                                                                                          (let ((fold-var_1
                                                                                                 (let ((fold-var_1
                                                                                                        (cons
                                                                                                         (add-local-binding!.1
                                                                                                          frame-id_0
                                                                                                          exp-body_0
                                                                                                          local-sym_0
                                                                                                          id_0
                                                                                                          phase_0
                                                                                                          counter_0)
                                                                                                         fold-var_0)))
                                                                                                   (values
                                                                                                    fold-var_1))))
                                                                                            (for-loop_0
                                                                                             fold-var_1
                                                                                             rest_0))))
                                                                                      fold-var_0))))))
                                                                             (for-loop_0
                                                                              null
                                                                              ids_0))))))
                                                                    (begin
                                                                      (let ((obs_0
                                                                             (begin-unsafe
                                                                              (expand-context/inner-observer
                                                                               (root-expand-context/outer-inner
                                                                                body-ctx_1)))))
                                                                        (if obs_0
                                                                          (call-expand-observe
                                                                           obs_0
                                                                           'prepare-env)
                                                                          (void)))
                                                                      (begin
                                                                        (prepare-next-phase-namespace
                                                                         ctx6_0)
                                                                        (begin
                                                                          (let ((obs_0
                                                                                 (begin-unsafe
                                                                                  (expand-context/inner-observer
                                                                                   (root-expand-context/outer-inner
                                                                                    body-ctx_1)))))
                                                                            (if obs_0
                                                                              (call-expand-observe
                                                                               obs_0
                                                                               'enter-bind)
                                                                              (void)))
                                                                          (let ((vals_0
                                                                                 (eval-for-syntaxes-binding
                                                                                  'define-syntaxes
                                                                                  rhs113_0
                                                                                  ids_0
                                                                                  body-ctx_1)))
                                                                            (let ((extended-env_0
                                                                                   (begin
                                                                                     (letrec*
                                                                                      ((for-loop_0
                                                                                        (|#%name|
                                                                                         for-loop
                                                                                         (lambda (env_0
                                                                                                  lst_0
                                                                                                  lst_1
                                                                                                  lst_2)
                                                                                           (begin
                                                                                             (if (if (pair?
                                                                                                      lst_0)
                                                                                                   (if (pair?
                                                                                                        lst_1)
                                                                                                     (pair?
                                                                                                      lst_2)
                                                                                                     #f)
                                                                                                   #f)
                                                                                               (let ((key_0
                                                                                                      (unsafe-car
                                                                                                       lst_0)))
                                                                                                 (let ((rest_0
                                                                                                        (unsafe-cdr
                                                                                                         lst_0)))
                                                                                                   (let ((val_0
                                                                                                          (unsafe-car
                                                                                                           lst_1)))
                                                                                                     (let ((rest_1
                                                                                                            (unsafe-cdr
                                                                                                             lst_1)))
                                                                                                       (let ((id_0
                                                                                                              (unsafe-car
                                                                                                               lst_2)))
                                                                                                         (let ((rest_2
                                                                                                                (unsafe-cdr
                                                                                                                 lst_2)))
                                                                                                           (let ((env_1
                                                                                                                  (let ((env_1
                                                                                                                         (begin
                                                                                                                           (maybe-install-free=id-in-context!
                                                                                                                            val_0
                                                                                                                            id_0
                                                                                                                            phase_0
                                                                                                                            body-ctx_1)
                                                                                                                           (begin-unsafe
                                                                                                                            (hash-set
                                                                                                                             env_0
                                                                                                                             key_0
                                                                                                                             val_0)))))
                                                                                                                    (values
                                                                                                                     env_1))))
                                                                                                             (for-loop_0
                                                                                                              env_1
                                                                                                              rest_0
                                                                                                              rest_1
                                                                                                              rest_2))))))))
                                                                                               env_0))))))
                                                                                      (for-loop_0
                                                                                       (begin-unsafe
                                                                                        (expand-context/outer-env
                                                                                         body-ctx_1))
                                                                                       keys_0
                                                                                       vals_0
                                                                                       ids_0)))))
                                                                              (begin
                                                                                (let ((obs_0
                                                                                       (begin-unsafe
                                                                                        (expand-context/inner-observer
                                                                                         (root-expand-context/outer-inner
                                                                                          body-ctx_1)))))
                                                                                  (if obs_0
                                                                                    (call-expand-observe
                                                                                     obs_0
                                                                                     'exit-bind)
                                                                                    (void)))
                                                                                (let ((app_0
                                                                                       (if (expand-context/outer?
                                                                                            body-ctx_1)
                                                                                         (let ((binding-layer132_0
                                                                                                (maybe-increment-binding-layer_0
                                                                                                 ids_0
                                                                                                 body-ctx_1)))
                                                                                           (let ((inner133_0
                                                                                                  (root-expand-context/outer-inner
                                                                                                   body-ctx_1)))
                                                                                             (let ((binding-layer132_1
                                                                                                    binding-layer132_0))
                                                                                               (expand-context/outer1.1
                                                                                                inner133_0
                                                                                                (root-expand-context/outer-post-expansion
                                                                                                 body-ctx_1)
                                                                                                (root-expand-context/outer-use-site-scopes
                                                                                                 body-ctx_1)
                                                                                                (root-expand-context/outer-frame-id
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-context
                                                                                                 body-ctx_1)
                                                                                                extended-env_0
                                                                                                (expand-context/outer-scopes
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-def-ctx-scopes
                                                                                                 body-ctx_1)
                                                                                                binding-layer132_1
                                                                                                (expand-context/outer-reference-records
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-only-immediate?
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-need-eventually-defined
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-current-introduction-scopes
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-current-use-scopes
                                                                                                 body-ctx_1)
                                                                                                (expand-context/outer-name
                                                                                                 body-ctx_1)))))
                                                                                         (raise-argument-error
                                                                                          'struct-copy
                                                                                          "expand-context/outer?"
                                                                                          body-ctx_1))))
                                                                                  (let ((app_1
                                                                                         (cons
                                                                                          ids_0
                                                                                          trans-idss_0)))
                                                                                    (let ((app_2
                                                                                           (cons
                                                                                            (keep-as-needed.1
                                                                                             #t
                                                                                             #f
                                                                                             #f
                                                                                             body-ctx_1
                                                                                             exp-body_0)
                                                                                            trans-stxs_0)))
                                                                                      (loop_0
                                                                                       app_0
                                                                                       rest-bodys_0
                                                                                       done-bodys_0
                                                                                       val-idss_0
                                                                                       val-keyss_0
                                                                                       val-rhss_0
                                                                                       track-stxs_0
                                                                                       app_1
                                                                                       app_2
                                                                                       (cons
                                                                                        (datum->syntax$1
                                                                                         #f
                                                                                         (list
                                                                                          ids_0
                                                                                          rhs113_0)
                                                                                         exp-body_0)
                                                                                        stx-clauses_0)
                                                                                       new-dups_0
                                                                                       #t)))))))))))))))))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         4
                                                         args)))))
                                                   (if stratified?2_0
                                                     (begin
                                                       (if (null? done-bodys_0)
                                                         (void)
                                                         (error
                                                          "internal error: accumulated expressions not empty"))
                                                       (loop_0
                                                        body-ctx_1
                                                        null
                                                        (if (if (null?
                                                                 val-idss_0)
                                                              (null?
                                                               trans-idss_0)
                                                              #f)
                                                          (reverse$1
                                                           (cons
                                                            exp-body_0
                                                            rest-bodys_0))
                                                          (list
                                                           (datum->syntax$1
                                                            #f
                                                            (let ((app_0
                                                                   (core-id
                                                                    '|#%stratified-body|
                                                                    phase_0)))
                                                              (cons
                                                               app_0
                                                               (cons
                                                                exp-body_0
                                                                rest-bodys_0))))))
                                                        val-idss_0
                                                        val-keyss_0
                                                        val-rhss_0
                                                        track-stxs_0
                                                        trans-idss_0
                                                        trans-stxs_0
                                                        stx-clauses_0
                                                        dups_0
                                                        #f))
                                                     (loop_0
                                                      body-ctx_1
                                                      rest-bodys_0
                                                      (cons
                                                       exp-body_0
                                                       done-bodys_0)
                                                      val-idss_0
                                                      val-keyss_0
                                                      val-rhss_0
                                                      track-stxs_0
                                                      trans-idss_0
                                                      trans-stxs_0
                                                      stx-clauses_0
                                                      dups_0
                                                      #f)))))))))))))))
                            (loop_0
                             body-ctx_0
                             init-bodys_0
                             null
                             null
                             null
                             null
                             null
                             null
                             null
                             null
                             (make-check-no-duplicate-table)
                             #f))))))))))))))))
(define last
  (lambda (xs_0) (if (null? (cdr xs_0)) (car xs_0) (last (cdr xs_0)))))
(define finish-expanding-body.1
  (|#%name|
   finish-expanding-body
   (lambda (disappeared-transformer-bindings13_0
            disappeared-transformer-forms14_0
            just-saw-define-syntaxes?11_0
            name12_0
            original-bodys8_0
            source9_0
            stratified?10_0
            body-ctx22_0
            frame-id23_0
            def-ctx-scopes24_0
            val-idss25_0
            val-keyss26_0
            val-rhss27_0
            track-stxs28_0
            stx-clauses29_0
            done-bodys30_0)
     (begin
       (begin
         (if (let ((or-part_0 (null? done-bodys30_0)))
               (if or-part_0 or-part_0 just-saw-define-syntaxes?11_0))
           (let ((app_0 (string->symbol "begin (possibly implicit)")))
             (let ((app_1
                    (datum->syntax$1
                     #f
                     (cons 'begin original-bodys8_0)
                     source9_0)))
               (raise-syntax-error$1
                app_0
                "the last form is not an expression"
                app_1
                (if (null? original-bodys8_0) #f (last original-bodys8_0)))))
           (void))
         (let ((finish-ctx_0
                (let ((v_0
                       (accumulate-def-ctx-scopes
                        body-ctx22_0
                        def-ctx-scopes24_0)))
                  (if (expand-context/outer? v_0)
                    (let ((use-site-scopes138_0 (box null)))
                      (let ((inner142_0 (root-expand-context/outer-inner v_0)))
                        (expand-context/outer1.1
                         inner142_0
                         #f
                         use-site-scopes138_0
                         (root-expand-context/outer-frame-id v_0)
                         'expression
                         (expand-context/outer-env v_0)
                         (expand-context/outer-scopes v_0)
                         #f
                         (expand-context/outer-binding-layer v_0)
                         (expand-context/outer-reference-records v_0)
                         #f
                         (expand-context/outer-need-eventually-defined v_0)
                         (expand-context/outer-current-introduction-scopes v_0)
                         (expand-context/outer-current-use-scopes v_0)
                         (expand-context/outer-name v_0))))
                    (raise-argument-error
                     'struct-copy
                     "expand-context/outer?"
                     v_0)))))
           (let ((finish-bodys_0
                  (|#%name|
                   finish-bodys
                   (lambda (finish-ctx_1)
                     (begin
                       (let ((last-i_0 (sub1 (length done-bodys30_0))))
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     body-ctx22_0)))))
                             (if obs_0
                               (call-expand-observe
                                obs_0
                                'enter-list
                                done-bodys30_0)
                               (void)))
                           (let ((exp-bodys_0
                                  (reverse$1
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (fold-var_0 lst_0 pos_0)
                                           (begin
                                             (if (if (pair? lst_0) #t #f)
                                               (let ((done-body_0
                                                      (unsafe-car lst_0)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_0)))
                                                   (let ((fold-var_1
                                                          (let ((fold-var_1
                                                                 (cons
                                                                  (begin
                                                                    (let ((obs_0
                                                                           (begin-unsafe
                                                                            (expand-context/inner-observer
                                                                             (root-expand-context/outer-inner
                                                                              body-ctx22_0)))))
                                                                      (if obs_0
                                                                        (call-expand-observe
                                                                         obs_0
                                                                         'next)
                                                                        (void)))
                                                                    (let ((temp144_0
                                                                           (if (if name12_0
                                                                                 (=
                                                                                  pos_0
                                                                                  last-i_0)
                                                                                 #f)
                                                                             (if (expand-context/outer?
                                                                                  finish-ctx_1)
                                                                               (let ((inner146_0
                                                                                      (root-expand-context/outer-inner
                                                                                       finish-ctx_1)))
                                                                                 (expand-context/outer1.1
                                                                                  inner146_0
                                                                                  (root-expand-context/outer-post-expansion
                                                                                   finish-ctx_1)
                                                                                  (root-expand-context/outer-use-site-scopes
                                                                                   finish-ctx_1)
                                                                                  (root-expand-context/outer-frame-id
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-context
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-env
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-scopes
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-def-ctx-scopes
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-binding-layer
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-reference-records
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-only-immediate?
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-need-eventually-defined
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-current-introduction-scopes
                                                                                   finish-ctx_1)
                                                                                  (expand-context/outer-current-use-scopes
                                                                                   finish-ctx_1)
                                                                                  name12_0))
                                                                               (raise-argument-error
                                                                                'struct-copy
                                                                                "expand-context/outer?"
                                                                                finish-ctx_1))
                                                                             finish-ctx_1)))
                                                                      (expand.1
                                                                       #f
                                                                       #f
                                                                       done-body_0
                                                                       temp144_0)))
                                                                  fold-var_0)))
                                                            (values
                                                             fold-var_1))))
                                                     (for-loop_0
                                                      fold-var_1
                                                      rest_0
                                                      (+ pos_0 1)))))
                                               fold-var_0))))))
                                      (for-loop_0 null done-bodys30_0 0))))))
                             (begin
                               (let ((obs_0
                                      (begin-unsafe
                                       (expand-context/inner-observer
                                        (root-expand-context/outer-inner
                                         body-ctx22_0)))))
                                 (if obs_0
                                   (call-expand-observe
                                    obs_0
                                    'exit-list
                                    exp-bodys_0)
                                   (void)))
                               (reference-record-clear! frame-id23_0)
                               exp-bodys_0)))))))))
             (if (if (null? val-idss25_0)
                   (null? disappeared-transformer-bindings13_0)
                   #f)
               (begin
                 (let ((obs_0
                        (begin-unsafe
                         (expand-context/inner-observer
                          (root-expand-context/outer-inner finish-ctx_0)))))
                   (if obs_0 (call-expand-observe obs_0 'block->list) (void)))
                 (finish-bodys_0 finish-ctx_0))
               (begin
                 (let ((obs_0
                        (begin-unsafe
                         (expand-context/inner-observer
                          (root-expand-context/outer-inner finish-ctx_0)))))
                   (if obs_0
                     (call-expand-observe
                      obs_0
                      'block->letrec
                      val-idss25_0
                      val-rhss27_0
                      done-bodys30_0)
                     (void)))
                 (let ((temp151_0 (not stratified?10_0)))
                   (let ((exp-s_0
                          (let ((temp155_0 (pair? stx-clauses29_0)))
                            (expand-and-split-bindings-by-reference.1
                             finish-ctx_0
                             frame-id23_0
                             finish-bodys_0
                             temp155_0
                             source9_0
                             temp151_0
                             #f
                             val-idss25_0
                             val-keyss26_0
                             val-rhss27_0
                             track-stxs28_0))))
                     (if (begin-unsafe
                          (expand-context/inner-to-parsed?
                           (root-expand-context/outer-inner body-ctx22_0)))
                       (list exp-s_0)
                       (let ((exp-s_1
                              (attach-disappeared-transformer-bindings
                               exp-s_0
                               disappeared-transformer-bindings13_0)))
                         (let ((tracked-exp-s_0
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (exp-s_2 lst_0)
                                        (begin
                                          (if (pair? lst_0)
                                            (let ((form_0 (unsafe-car lst_0)))
                                              (let ((rest_0
                                                     (unsafe-cdr lst_0)))
                                                (let ((exp-s_3
                                                       (if form_0
                                                         (let ((exp-s_3
                                                                (syntax-track-origin$1
                                                                 exp-s_2
                                                                 form_0)))
                                                           (values exp-s_3))
                                                         exp-s_2)))
                                                  (for-loop_0
                                                   exp-s_3
                                                   rest_0))))
                                            exp-s_2))))))
                                   (for-loop_0
                                    exp-s_1
                                    disappeared-transformer-forms14_0)))))
                           (begin
                             (let ((obs_0
                                    (begin-unsafe
                                     (expand-context/inner-observer
                                      (root-expand-context/outer-inner
                                       finish-ctx_0)))))
                               (if obs_0
                                 (call-expand-observe
                                  obs_0
                                  'finish-block
                                  (list tracked-exp-s_0))
                                 (void)))
                             (list tracked-exp-s_0))))))))))))))))
(define expand-and-split-bindings-by-reference.1
  (|#%name|
   expand-and-split-bindings-by-reference
   (lambda (ctx34_0
            frame-id33_0
            get-body37_0
            had-stxes?36_0
            source35_0
            split?32_0
            track?38_0
            idss46_0
            keyss47_0
            rhss48_0
            track-stxs49_0)
     (begin
       (let ((phase_0
              (begin-unsafe
               (expand-context/inner-phase
                (root-expand-context/outer-inner ctx34_0)))))
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (idss_0
                      keyss_0
                      rhss_0
                      track-stxs_0
                      accum-idss_0
                      accum-keyss_0
                      accum-rhss_0
                      accum-track-stxs_0
                      ctx_0
                      track?_0
                      get-list?_0)
               (begin
                 (if (null? idss_0)
                   (if (if (null? accum-idss_0) get-list?_0 #f)
                     (|#%app| get-body37_0 ctx_0)
                     (let ((exp-body_0 (|#%app| get-body37_0 ctx_0)))
                       (let ((result-s_0
                              (if (begin-unsafe
                                   (expand-context/inner-to-parsed?
                                    (root-expand-context/outer-inner ctx_0)))
                                (if (null? accum-idss_0)
                                  (parsed-let-values17.1
                                   (keep-properties-only source35_0)
                                   null
                                   null
                                   exp-body_0)
                                  (let ((app_0
                                         (keep-properties-only source35_0)))
                                    (let ((app_1 (reverse$1 accum-idss_0)))
                                      (parsed-letrec-values18.1
                                       app_0
                                       app_1
                                       (reverse$1
                                        (map_1346
                                         list
                                         accum-keyss_0
                                         accum-rhss_0))
                                       exp-body_0))))
                                (let ((temp160_0
                                       (let ((app_0
                                              (if (null? accum-idss_0)
                                                (core-id 'let-values phase_0)
                                                (core-id
                                                 'letrec-values
                                                 phase_0))))
                                         (list*
                                          app_0
                                          (build-clauses
                                           accum-idss_0
                                           accum-rhss_0
                                           accum-track-stxs_0)
                                          exp-body_0))))
                                  (rebuild.1 track?_0 source35_0 temp160_0)))))
                         (if get-list?_0 (list result-s_0) result-s_0))))
                   (begin
                     (let ((obs_0
                            (begin-unsafe
                             (expand-context/inner-observer
                              (root-expand-context/outer-inner ctx_0)))))
                       (if obs_0 (call-expand-observe obs_0 'next) (void)))
                     (let ((ids_0 (car idss_0)))
                       (let ((expanded-rhs_0
                              (let ((temp161_0 (car rhss_0)))
                                (let ((temp162_0
                                       (as-named-context ctx_0 ids_0)))
                                  (let ((temp161_1 temp161_0))
                                    (expand.1 #f #f temp161_1 temp162_0))))))
                         (let ((track-stx_0 (car track-stxs_0)))
                           (let ((local-or-forward-references?_0
                                  (reference-record-forward-references?
                                   frame-id33_0)))
                             (begin
                               (reference-record-bound!
                                frame-id33_0
                                (car keyss_0))
                               (let ((forward-references?_0
                                      (reference-record-forward-references?
                                       frame-id33_0)))
                                 (if (if (not local-or-forward-references?_0)
                                       split?32_0
                                       #f)
                                   (begin
                                     (if (null? accum-idss_0)
                                       (void)
                                       (error
                                        "internal error: accumulated ids not empty"))
                                     (call-with-values
                                      (lambda ()
                                        (let ((app_0 (cdr idss_0)))
                                          (create-binding-layer
                                           app_0
                                           (cdr keyss_0)
                                           ctx_0)))
                                      (case-lambda
                                       ((next-idss_0 next-ctx_0)
                                        (let ((exp-rest_0
                                               (let ((app_0 (cdr keyss_0)))
                                                 (let ((app_1 (cdr rhss_0)))
                                                   (loop_0
                                                    next-idss_0
                                                    app_0
                                                    app_1
                                                    (cdr track-stxs_0)
                                                    null
                                                    null
                                                    null
                                                    null
                                                    next-ctx_0
                                                    #f
                                                    #t)))))
                                          (let ((result-s_0
                                                 (if (begin-unsafe
                                                      (expand-context/inner-to-parsed?
                                                       (root-expand-context/outer-inner
                                                        next-ctx_0)))
                                                   (let ((app_0
                                                          (keep-properties-only
                                                           source35_0)))
                                                     (let ((app_1
                                                            (list ids_0)))
                                                       (parsed-let-values17.1
                                                        app_0
                                                        app_1
                                                        (list
                                                         (list
                                                          (car keyss_0)
                                                          expanded-rhs_0))
                                                        exp-rest_0)))
                                                   (let ((temp165_0
                                                          (let ((app_0
                                                                 (core-id
                                                                  'let-values
                                                                  phase_0)))
                                                            (list*
                                                             app_0
                                                             (list
                                                              (build-clause
                                                               ids_0
                                                               expanded-rhs_0
                                                               track-stx_0))
                                                             exp-rest_0))))
                                                     (rebuild.1
                                                      track?_0
                                                      source35_0
                                                      temp165_0)))))
                                            (if get-list?_0
                                              (list result-s_0)
                                              result-s_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args)))))
                                   (if (if (not forward-references?_0)
                                         (if split?32_0
                                           split?32_0
                                           (null? (cdr idss_0)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((app_0 (cdr idss_0)))
                                          (create-binding-layer
                                           app_0
                                           (cdr keyss_0)
                                           ctx_0)))
                                      (case-lambda
                                       ((next-idss_0 next-ctx_0)
                                        (let ((exp-rest_0
                                               (let ((app_0 (cdr keyss_0)))
                                                 (let ((app_1 (cdr rhss_0)))
                                                   (loop_0
                                                    next-idss_0
                                                    app_0
                                                    app_1
                                                    (cdr track-stxs_0)
                                                    null
                                                    null
                                                    null
                                                    null
                                                    next-ctx_0
                                                    #f
                                                    #t)))))
                                          (let ((result-s_0
                                                 (if (begin-unsafe
                                                      (expand-context/inner-to-parsed?
                                                       (root-expand-context/outer-inner
                                                        next-ctx_0)))
                                                   (let ((app_0
                                                          (keep-properties-only
                                                           source35_0)))
                                                     (let ((app_1
                                                            (reverse$1
                                                             (cons
                                                              ids_0
                                                              accum-idss_0))))
                                                       (parsed-letrec-values18.1
                                                        app_0
                                                        app_1
                                                        (reverse$1
                                                         (let ((app_2
                                                                (list
                                                                 (car keyss_0)
                                                                 expanded-rhs_0)))
                                                           (cons
                                                            app_2
                                                            (map_1346
                                                             list
                                                             accum-keyss_0
                                                             accum-rhss_0))))
                                                        exp-rest_0)))
                                                   (let ((temp168_0
                                                          (let ((app_0
                                                                 (core-id
                                                                  'letrec-values
                                                                  phase_0)))
                                                            (list*
                                                             app_0
                                                             (build-clauses
                                                              (cons
                                                               ids_0
                                                               accum-idss_0)
                                                              (cons
                                                               expanded-rhs_0
                                                               accum-rhss_0)
                                                              (cons
                                                               track-stx_0
                                                               accum-track-stxs_0))
                                                             exp-rest_0))))
                                                     (rebuild.1
                                                      track?_0
                                                      source35_0
                                                      temp168_0)))))
                                            (if get-list?_0
                                              (list result-s_0)
                                              result-s_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))
                                     (let ((app_0 (cdr idss_0)))
                                       (let ((app_1 (cdr keyss_0)))
                                         (let ((app_2 (cdr rhss_0)))
                                           (let ((app_3 (cdr track-stxs_0)))
                                             (let ((app_4
                                                    (cons ids_0 accum-idss_0)))
                                               (let ((app_5
                                                      (cons
                                                       (car keyss_0)
                                                       accum-keyss_0)))
                                                 (loop_0
                                                  app_0
                                                  app_1
                                                  app_2
                                                  app_3
                                                  app_4
                                                  app_5
                                                  (cons
                                                   expanded-rhs_0
                                                   accum-rhss_0)
                                                  (cons
                                                   track-stx_0
                                                   accum-track-stxs_0)
                                                  ctx_0
                                                  track?_0
                                                  get-list?_0))))))))))))))))))))))
          (loop_0
           idss46_0
           keyss47_0
           rhss48_0
           track-stxs49_0
           null
           null
           null
           null
           ctx34_0
           track?38_0
           #f)))))))
(define create-binding-layer
  (lambda (idss_0 keyss_0 ctx_0)
    (if (let ((or-part_0
               (begin-unsafe
                (expand-context/inner-to-parsed?
                 (root-expand-context/outer-inner ctx_0)))))
          (if or-part_0 or-part_0 (null? idss_0)))
      (values idss_0 ctx_0)
      (let ((sc_0 (new-scope 'local)))
        (let ((new-idss_0
               (reverse$1
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (fold-var_0 lst_0)
                        (begin
                          (if (pair? lst_0)
                            (let ((ids_0 (unsafe-car lst_0)))
                              (let ((rest_0 (unsafe-cdr lst_0)))
                                (let ((fold-var_1
                                       (let ((fold-var_1
                                              (cons
                                               (reverse$1
                                                (begin
                                                  (letrec*
                                                   ((for-loop_1
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (fold-var_1
                                                               lst_1)
                                                        (begin
                                                          (if (pair? lst_1)
                                                            (let ((id_0
                                                                   (unsafe-car
                                                                    lst_1)))
                                                              (let ((rest_1
                                                                     (unsafe-cdr
                                                                      lst_1)))
                                                                (let ((fold-var_2
                                                                       (let ((fold-var_2
                                                                              (cons
                                                                               (add-scope
                                                                                id_0
                                                                                sc_0)
                                                                               fold-var_1)))
                                                                         (values
                                                                          fold-var_2))))
                                                                  (for-loop_1
                                                                   fold-var_2
                                                                   rest_1))))
                                                            fold-var_1))))))
                                                   (for-loop_1 null ids_0))))
                                               fold-var_0)))
                                         (values fold-var_1))))
                                  (for-loop_0 fold-var_1 rest_0))))
                            fold-var_0))))))
                   (for-loop_0 null idss_0))))))
          (let ((env_0 (begin-unsafe (expand-context/outer-env ctx_0))))
            (let ((new-env_0
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (env_1 lst_0 lst_1)
                           (begin
                             (if (if (pair? lst_0) (pair? lst_1) #f)
                               (let ((new-ids_0 (unsafe-car lst_0)))
                                 (let ((rest_0 (unsafe-cdr lst_0)))
                                   (let ((keys_0 (unsafe-car lst_1)))
                                     (let ((rest_1 (unsafe-cdr lst_1)))
                                       (let ((env_2
                                              (begin
                                                (letrec*
                                                 ((for-loop_1
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (env_2 lst_2 lst_3)
                                                      (begin
                                                        (if (if (pair? lst_2)
                                                              (pair? lst_3)
                                                              #f)
                                                          (let ((new-id_0
                                                                 (unsafe-car
                                                                  lst_2)))
                                                            (let ((rest_2
                                                                   (unsafe-cdr
                                                                    lst_2)))
                                                              (let ((key_0
                                                                     (unsafe-car
                                                                      lst_3)))
                                                                (let ((rest_3
                                                                       (unsafe-cdr
                                                                        lst_3)))
                                                                  (let ((val_0
                                                                         (local-variable1.1
                                                                          new-id_0)))
                                                                    (let ((env_3
                                                                           (let ((env_3
                                                                                  (begin-unsafe
                                                                                   (hash-set
                                                                                    env_2
                                                                                    key_0
                                                                                    val_0))))
                                                                             (values
                                                                              env_3))))
                                                                      (for-loop_1
                                                                       env_3
                                                                       rest_2
                                                                       rest_3)))))))
                                                          env_2))))))
                                                 (for-loop_1
                                                  env_1
                                                  new-ids_0
                                                  keys_0)))))
                                         (for-loop_0 env_2 rest_0 rest_1))))))
                               env_1))))))
                      (for-loop_0 env_0 new-idss_0 keyss_0)))))
              (values
               new-idss_0
               (if (expand-context/outer? ctx_0)
                 (let ((inner170_0 (root-expand-context/outer-inner ctx_0)))
                   (expand-context/outer1.1
                    inner170_0
                    (root-expand-context/outer-post-expansion ctx_0)
                    (root-expand-context/outer-use-site-scopes ctx_0)
                    (root-expand-context/outer-frame-id ctx_0)
                    (expand-context/outer-context ctx_0)
                    new-env_0
                    (expand-context/outer-scopes ctx_0)
                    (expand-context/outer-def-ctx-scopes ctx_0)
                    (expand-context/outer-binding-layer ctx_0)
                    (expand-context/outer-reference-records ctx_0)
                    (expand-context/outer-only-immediate? ctx_0)
                    (expand-context/outer-need-eventually-defined ctx_0)
                    (expand-context/outer-current-introduction-scopes ctx_0)
                    (expand-context/outer-current-use-scopes ctx_0)
                    (expand-context/outer-name ctx_0)))
                 (raise-argument-error
                  'struct-copy
                  "expand-context/outer?"
                  ctx_0))))))))))
(define build-clauses
  (lambda (accum-idss_0 accum-rhss_0 accum-track-stxs_0)
    (let ((app_0 (reverse$1 accum-idss_0)))
      (let ((app_1 (reverse$1 accum-rhss_0)))
        (map_1346 build-clause app_0 app_1 (reverse$1 accum-track-stxs_0))))))
(define build-clause
  (lambda (ids_0 rhs_0 track-stx_0)
    (let ((clause_0 (datum->syntax$1 #f (list ids_0 rhs_0))))
      (if track-stx_0 (syntax-track-origin$1 clause_0 track-stx_0) clause_0))))
(define no-binds
  (lambda (expr_0 s_0 phase_0)
    (let ((s-runtime-stx_0 (syntax-shift-phase-level$1 runtime-stx phase_0)))
      (let ((app_0 (core-id '|#%app| phase_0)))
        (datum->syntax$1
         app_0
         (let ((app_1 (core-id 'begin phase_0)))
           (list
            app_1
            expr_0
            (list (datum->syntax$1 s-runtime-stx_0 'values))))
         s_0)))))
(define lambda-clause-expander
  (lambda (s_0 formals_0 bodys_0 ctx_0)
    (let ((sc_0
           (if (not
                (begin-unsafe
                 (expand-context/inner-parsing-expanded?
                  (root-expand-context/outer-inner ctx_0))))
             (new-scope 'local)
             #f)))
      (let ((phase_0
             (begin-unsafe
              (expand-context/inner-phase
               (root-expand-context/outer-inner ctx_0)))))
        (let ((ids_0 (parse-and-flatten-formals formals_0 sc_0 s_0)))
          (begin
            (let ((temp18_0 "argument name"))
              (check-no-duplicate-ids.1
               temp18_0
               ids_0
               phase_0
               s_0
               unsafe-undefined))
            (let ((counter_0
                   (begin-unsafe
                    (root-expand-context/inner-counter
                     (root-expand-context/outer-inner ctx_0)))))
              (let ((local-sym_0
                     (if (begin-unsafe
                          (expand-context/inner-normalize-locals?
                           (root-expand-context/outer-inner ctx_0)))
                       'arg
                       #f)))
                (let ((keys_0
                       (reverse$1
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (fold-var_0 lst_0)
                                (begin
                                  (if (pair? lst_0)
                                    (let ((id_0 (unsafe-car lst_0)))
                                      (let ((rest_0 (unsafe-cdr lst_0)))
                                        (let ((fold-var_1
                                               (let ((fold-var_1
                                                      (cons
                                                       (if sc_0
                                                         (add-local-binding!.1
                                                          #f
                                                          s_0
                                                          local-sym_0
                                                          id_0
                                                          phase_0
                                                          counter_0)
                                                         (existing-binding-key
                                                          id_0
                                                          (begin-unsafe
                                                           (expand-context/inner-phase
                                                            (root-expand-context/outer-inner
                                                             ctx_0)))))
                                                       fold-var_0)))
                                                 (values fold-var_1))))
                                          (for-loop_0 fold-var_1 rest_0))))
                                    fold-var_0))))))
                           (for-loop_0 null ids_0))))))
                  (let ((body-env_0
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (env_0 lst_0 lst_1)
                                 (begin
                                   (if (if (pair? lst_0) (pair? lst_1) #f)
                                     (let ((key_0 (unsafe-car lst_0)))
                                       (let ((rest_0 (unsafe-cdr lst_0)))
                                         (let ((id_0 (unsafe-car lst_1)))
                                           (let ((rest_1 (unsafe-cdr lst_1)))
                                             (let ((val_0
                                                    (local-variable1.1 id_0)))
                                               (let ((env_1
                                                      (let ((env_1
                                                             (begin-unsafe
                                                              (hash-set
                                                               env_0
                                                               key_0
                                                               val_0))))
                                                        (values env_1))))
                                                 (for-loop_0
                                                  env_1
                                                  rest_0
                                                  rest_1)))))))
                                     env_0))))))
                            (for-loop_0
                             (begin-unsafe (expand-context/outer-env ctx_0))
                             keys_0
                             ids_0)))))
                    (let ((sc-formals_0
                           (if sc_0 (add-scope formals_0 sc_0) formals_0)))
                      (let ((sc-bodys_0
                             (if sc_0
                               (reverse$1
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (fold-var_0 lst_0)
                                        (begin
                                          (if (pair? lst_0)
                                            (let ((body_0 (unsafe-car lst_0)))
                                              (let ((rest_0
                                                     (unsafe-cdr lst_0)))
                                                (let ((fold-var_1
                                                       (let ((fold-var_1
                                                              (cons
                                                               (add-scope
                                                                body_0
                                                                sc_0)
                                                               fold-var_0)))
                                                         (values fold-var_1))))
                                                  (for-loop_0
                                                   fold-var_1
                                                   rest_0))))
                                            fold-var_0))))))
                                   (for-loop_0 null bodys_0))))
                               bodys_0)))
                        (begin
                          (let ((obs_0
                                 (begin-unsafe
                                  (expand-context/inner-observer
                                   (root-expand-context/outer-inner ctx_0)))))
                            (if obs_0
                              (call-expand-observe
                               obs_0
                               'lambda-renames
                               sc-formals_0
                               sc-bodys_0)
                              (void)))
                          (let ((body-ctx_0
                                 (if (expand-context/outer? ctx_0)
                                   (let ((scopes25_0
                                          (if sc_0
                                            (cons
                                             sc_0
                                             (begin-unsafe
                                              (expand-context/outer-scopes
                                               ctx_0)))
                                            (begin-unsafe
                                             (expand-context/outer-scopes
                                              ctx_0)))))
                                     (let ((binding-layer26_0
                                            (if sc_0
                                              (increment-binding-layer
                                               ids_0
                                               ctx_0
                                               sc_0)
                                              (begin-unsafe
                                               (expand-context/outer-binding-layer
                                                ctx_0)))))
                                       (let ((inner28_0
                                              (root-expand-context/outer-inner
                                               ctx_0)))
                                         (let ((binding-layer26_1
                                                binding-layer26_0)
                                               (scopes25_1 scopes25_0))
                                           (expand-context/outer1.1
                                            inner28_0
                                            (root-expand-context/outer-post-expansion
                                             ctx_0)
                                            (root-expand-context/outer-use-site-scopes
                                             ctx_0)
                                            #f
                                            (expand-context/outer-context
                                             ctx_0)
                                            body-env_0
                                            scopes25_1
                                            (expand-context/outer-def-ctx-scopes
                                             ctx_0)
                                            binding-layer26_1
                                            (expand-context/outer-reference-records
                                             ctx_0)
                                            (expand-context/outer-only-immediate?
                                             ctx_0)
                                            (expand-context/outer-need-eventually-defined
                                             ctx_0)
                                            (expand-context/outer-current-introduction-scopes
                                             ctx_0)
                                            (expand-context/outer-current-use-scopes
                                             ctx_0)
                                            (expand-context/outer-name
                                             ctx_0))))))
                                   (raise-argument-error
                                    'struct-copy
                                    "expand-context/outer?"
                                    ctx_0))))
                            (let ((exp-body_0
                                   (if sc_0
                                     (let ((temp31_0
                                            (keep-as-needed.1
                                             #f
                                             #t
                                             #f
                                             ctx_0
                                             s_0)))
                                       (expand-body.1
                                        temp31_0
                                        #f
                                        sc-bodys_0
                                        body-ctx_0))
                                     (reverse$1
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (fold-var_0 lst_0)
                                              (begin
                                                (if (pair? lst_0)
                                                  (let ((sc-body_0
                                                         (unsafe-car lst_0)))
                                                    (let ((rest_0
                                                           (unsafe-cdr lst_0)))
                                                      (let ((fold-var_1
                                                             (let ((fold-var_1
                                                                    (cons
                                                                     (expand.1
                                                                      #f
                                                                      #f
                                                                      sc-body_0
                                                                      body-ctx_0)
                                                                     fold-var_0)))
                                                               (values
                                                                fold-var_1))))
                                                        (for-loop_0
                                                         fold-var_1
                                                         rest_0))))
                                                  fold-var_0))))))
                                         (for-loop_0 null sc-bodys_0)))))))
                              (values
                               (if (begin-unsafe
                                    (expand-context/inner-to-parsed?
                                     (root-expand-context/outer-inner ctx_0)))
                                 (unflatten-like-formals keys_0 formals_0)
                                 sc-formals_0)
                               exp-body_0))))))))))))))))
(define effect_2301
  (begin
    (void
     (add-core-form!*
      'lambda
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-lambda s_0) (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((lambda40_0 (let ((s_2 (car s_1))) s_2)))
                      (call-with-values
                       (lambda ()
                         (let ((s_2 (cdr s_1)))
                           (let ((s_3
                                  (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                             (if (pair? s_3)
                               (let ((formals43_0 (let ((s_4 (car s_3))) s_4)))
                                 (let ((body44_0
                                        (let ((s_4 (cdr s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (let ((flat-s_0
                                                   (to-syntax-list.1 s_5)))
                                              (if (not flat-s_0)
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0)
                                                (if (null? flat-s_0)
                                                  (raise-syntax-error$1
                                                   #f
                                                   "bad syntax"
                                                   s_0)
                                                  flat-s_0)))))))
                                   (let ((formals43_1 formals43_0))
                                     (values formals43_1 body44_0))))
                               (raise-syntax-error$1 #f "bad syntax" s_0)))))
                       (case-lambda
                        ((formals41_0 body42_0)
                         (let ((lambda40_1 lambda40_0))
                           (values lambda40_1 formals41_0 body42_0)))
                        (args (raise-binding-result-arity-error 2 args)))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((lambda37_0 formals38_0 body39_0)
                (values #t lambda37_0 formals38_0 body39_0))
               (args (raise-binding-result-arity-error 3 args)))))
           (case-lambda
            ((ok?_0 lambda37_0 formals38_0 body39_0)
             (let ((rebuild-s_0 (keep-as-needed.1 #f #f #t ctx_0 s_0)))
               (call-with-values
                (lambda ()
                  (lambda-clause-expander s_0 formals38_0 body39_0 ctx_0))
                (case-lambda
                 ((formals_0 body_0)
                  (if (begin-unsafe
                       (expand-context/inner-to-parsed?
                        (root-expand-context/outer-inner ctx_0)))
                    (parsed-lambda5.1 rebuild-s_0 formals_0 body_0)
                    (let ((temp49_0 (list* lambda37_0 formals_0 body_0)))
                      (rebuild.1 #t rebuild-s_0 temp49_0))))
                 (args (raise-binding-result-arity-error 2 args))))))
            (args (raise-binding-result-arity-error 4 args))))))))
    (void)))
(define effect_2673
  (begin
    (void
     (add-core-form!*
      'λ
      (lambda (s_0)
        (call-with-values
         (lambda ()
           (call-with-values
            (lambda ()
              (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                (if (pair? s_1)
                  (let ((lam-id53_0 (let ((s_2 (car s_1))) s_2)))
                    (call-with-values
                     (lambda ()
                       (let ((s_2 (cdr s_1)))
                         (let ((s_3 (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                           (if (pair? s_3)
                             (let ((formals56_0 (let ((s_4 (car s_3))) s_4)))
                               (let ((_0
                                      (let ((s_4 (cdr s_3)))
                                        (let ((s_5
                                               (if (syntax?$1 s_4)
                                                 (syntax-e$1 s_4)
                                                 s_4)))
                                          (let ((flat-s_0
                                                 (to-syntax-list.1 s_5)))
                                            (if (not flat-s_0)
                                              (raise-syntax-error$1
                                               #f
                                               "bad syntax"
                                               s_0)
                                              (if (null? flat-s_0)
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0)
                                                flat-s_0)))))))
                                 (let ((formals56_1 formals56_0))
                                   (values formals56_1 _0))))
                             (raise-syntax-error$1 #f "bad syntax" s_0)))))
                     (case-lambda
                      ((formals54_0 _0)
                       (let ((lam-id53_1 lam-id53_0))
                         (values lam-id53_1 formals54_0 _0)))
                      (args (raise-binding-result-arity-error 2 args)))))
                  (raise-syntax-error$1 #f "bad syntax" s_0))))
            (case-lambda
             ((lam-id50_0 formals51_0 _0)
              (values #t lam-id50_0 formals51_0 _0))
             (args (raise-binding-result-arity-error 3 args)))))
         (case-lambda
          ((ok?_0 lam-id50_0 formals51_0 _0)
           (let ((ids_0 (parse-and-flatten-formals formals51_0 #f s_0)))
             (let ((ctx_0 (get-current-expand-context.1 #t 'unexpected)))
               (let ((phase_0
                      (if ctx_0
                        (begin-unsafe
                         (expand-context/inner-phase
                          (root-expand-context/outer-inner ctx_0)))
                        0)))
                 (begin
                   (let ((temp61_0 "argument name"))
                     (check-no-duplicate-ids.1
                      temp61_0
                      ids_0
                      phase_0
                      s_0
                      unsafe-undefined))
                   (datum->syntax$1
                    s_0
                    (let ((app_0
                           (datum->syntax$1
                            (syntax-shift-phase-level$1 core-stx phase_0)
                            'lambda
                            lam-id50_0
                            lam-id50_0)))
                      (cons app_0 (cdr (syntax-e$1 s_0))))
                    s_0
                    s_0))))))
          (args (raise-binding-result-arity-error 4 args)))))))
    (void)))
(define effect_1694
  (begin
    (void
     (add-core-form!*
      'case-lambda
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-case-lambda s_0)
              (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((case-lambda66_0 (let ((s_2 (car s_1))) s_2)))
                      (call-with-values
                       (lambda ()
                         (let ((s_2 (cdr s_1)))
                           (let ((s_3
                                  (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                             (let ((flat-s_0 (to-syntax-list.1 s_3)))
                               (if (not flat-s_0)
                                 (raise-syntax-error$1 #f "bad syntax" s_0)
                                 (call-with-values
                                  (lambda ()
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (formals_0 body_0 lst_0)
                                            (begin
                                              (if (pair? lst_0)
                                                (let ((s_4 (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((s_5
                                                                    (if (syntax?$1
                                                                         s_4)
                                                                      (syntax-e$1
                                                                       s_4)
                                                                      s_4)))
                                                               (if (pair? s_5)
                                                                 (let ((formals69_0
                                                                        (let ((s_6
                                                                               (car
                                                                                s_5)))
                                                                          s_6)))
                                                                   (let ((body70_0
                                                                          (let ((s_6
                                                                                 (cdr
                                                                                  s_5)))
                                                                            (let ((s_7
                                                                                   (if (syntax?$1
                                                                                        s_6)
                                                                                     (syntax-e$1
                                                                                      s_6)
                                                                                     s_6)))
                                                                              (let ((flat-s_1
                                                                                     (to-syntax-list.1
                                                                                      s_7)))
                                                                                (if (not
                                                                                     flat-s_1)
                                                                                  (raise-syntax-error$1
                                                                                   #f
                                                                                   "bad syntax"
                                                                                   s_0)
                                                                                  (if (null?
                                                                                       flat-s_1)
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     s_0)
                                                                                    flat-s_1)))))))
                                                                     (let ((formals69_1
                                                                            formals69_0))
                                                                       (values
                                                                        formals69_1
                                                                        body70_0))))
                                                                 (raise-syntax-error$1
                                                                  #f
                                                                  "bad syntax"
                                                                  s_0))))
                                                           (case-lambda
                                                            ((formals75_0
                                                              body76_0)
                                                             (values
                                                              (cons
                                                               formals75_0
                                                               formals_0)
                                                              (cons
                                                               body76_0
                                                               body_0)))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))
                                                        (case-lambda
                                                         ((formals_1 body_1)
                                                          (values
                                                           formals_1
                                                           body_1))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((formals_1 body_1)
                                                       (for-loop_0
                                                        formals_1
                                                        body_1
                                                        rest_0))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args))))))
                                                (values formals_0 body_0)))))))
                                       (for-loop_0 null null flat-s_0))))
                                  (case-lambda
                                   ((formals_0 body_0)
                                    (let ((app_0 (reverse$1 formals_0)))
                                      (values app_0 (reverse$1 body_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))))))
                       (case-lambda
                        ((formals67_0 body68_0)
                         (let ((case-lambda66_1 case-lambda66_0))
                           (values case-lambda66_1 formals67_0 body68_0)))
                        (args (raise-binding-result-arity-error 2 args)))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((case-lambda63_0 formals64_0 body65_0)
                (values #t case-lambda63_0 formals64_0 body65_0))
               (args (raise-binding-result-arity-error 3 args)))))
           (case-lambda
            ((ok?_0 case-lambda63_0 formals64_0 body65_0)
             (call-with-values
              (lambda ()
                (call-with-values
                 (lambda ()
                   (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                     (if (pair? s_1)
                       (let ((case-lambda73_0 (let ((s_2 (car s_1))) s_2)))
                         (let ((clause74_0
                                (let ((s_2 (cdr s_1)))
                                  (let ((s_3
                                         (if (syntax?$1 s_2)
                                           (syntax-e$1 s_2)
                                           s_2)))
                                    (let ((flat-s_0 (to-syntax-list.1 s_3)))
                                      (if (not flat-s_0)
                                        (raise-syntax-error$1
                                         #f
                                         "bad syntax"
                                         s_0)
                                        flat-s_0))))))
                           (let ((case-lambda73_1 case-lambda73_0))
                             (values case-lambda73_1 clause74_0))))
                       (raise-syntax-error$1 #f "bad syntax" s_0))))
                 (case-lambda
                  ((case-lambda71_0 clause72_0)
                   (values #t case-lambda71_0 clause72_0))
                  (args (raise-binding-result-arity-error 2 args)))))
              (case-lambda
               ((ok?_1 case-lambda71_0 clause72_0)
                (let ((rebuild-s_0 (keep-as-needed.1 #f #f #t ctx_0 s_0)))
                  (let ((clauses_0
                         (reverse$1
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (fold-var_0 lst_0 lst_1 lst_2)
                                  (begin
                                    (if (if (pair? lst_0)
                                          (if (pair? lst_1) (pair? lst_2) #f)
                                          #f)
                                      (let ((formals_0 (unsafe-car lst_0)))
                                        (let ((rest_0 (unsafe-cdr lst_0)))
                                          (let ((body_0 (unsafe-car lst_1)))
                                            (let ((rest_1 (unsafe-cdr lst_1)))
                                              (let ((clause_0
                                                     (unsafe-car lst_2)))
                                                (let ((rest_2
                                                       (unsafe-cdr lst_2)))
                                                  (let ((fold-var_1
                                                         (let ((fold-var_1
                                                                (cons
                                                                 (begin
                                                                   (let ((obs_0
                                                                          (begin-unsafe
                                                                           (expand-context/inner-observer
                                                                            (root-expand-context/outer-inner
                                                                             ctx_0)))))
                                                                     (if obs_0
                                                                       (call-expand-observe
                                                                        obs_0
                                                                        'next)
                                                                       (void)))
                                                                   (let ((rebuild-clause_0
                                                                          (keep-as-needed.1
                                                                           #f
                                                                           #f
                                                                           #f
                                                                           ctx_0
                                                                           clause_0)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (lambda-clause-expander
                                                                         s_0
                                                                         formals_0
                                                                         body_0
                                                                         ctx_0))
                                                                      (case-lambda
                                                                       ((exp-formals_0
                                                                         exp-body_0)
                                                                        (if (begin-unsafe
                                                                             (expand-context/inner-to-parsed?
                                                                              (root-expand-context/outer-inner
                                                                               ctx_0)))
                                                                          (list
                                                                           exp-formals_0
                                                                           exp-body_0)
                                                                          (let ((temp83_0
                                                                                 (list*
                                                                                  exp-formals_0
                                                                                  exp-body_0)))
                                                                            (rebuild.1
                                                                             #t
                                                                             rebuild-clause_0
                                                                             temp83_0))))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0
                                                     rest_1
                                                     rest_2))))))))
                                      fold-var_0))))))
                             (for-loop_0
                              null
                              formals64_0
                              body65_0
                              clause72_0))))))
                    (if (begin-unsafe
                         (expand-context/inner-to-parsed?
                          (root-expand-context/outer-inner ctx_0)))
                      (parsed-case-lambda6.1 rebuild-s_0 clauses_0)
                      (let ((temp85_0 (list* case-lambda63_0 clauses_0)))
                        (rebuild.1 #t rebuild-s_0 temp85_0))))))
               (args (raise-binding-result-arity-error 3 args)))))
            (args (raise-binding-result-arity-error 4 args))))))))
    (void)))
(define parse-and-flatten-formals
  (lambda (all-formals_0 sc_0 s_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (formals_0)
          (begin
            (if (identifier? formals_0)
              (list (if sc_0 (add-scope formals_0 sc_0) formals_0))
              (if (syntax?$1 formals_0)
                (let ((p_0 (syntax-e$1 formals_0)))
                  (if (pair? p_0)
                    (loop_0 p_0)
                    (if (null? p_0)
                      null
                      (raise-syntax-error$1 #f "not an identifier" s_0 p_0))))
                (if (pair? formals_0)
                  (begin
                    (if (identifier? (car formals_0))
                      (void)
                      (raise-syntax-error$1
                       #f
                       "not an identifier"
                       s_0
                       (car formals_0)))
                    (let ((app_0
                           (if sc_0
                             (add-scope (car formals_0) sc_0)
                             (car formals_0))))
                      (cons app_0 (loop_0 (cdr formals_0)))))
                  (if (null? formals_0)
                    null
                    (raise-syntax-error$1
                     "bad argument sequence"
                     s_0
                     all-formals_0))))))))))
     (loop_0 all-formals_0))))
(define unflatten-like-formals
  (lambda (keys_0 formals_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (keys_1 formals_1)
          (begin
            (if (null? formals_1)
              null
              (if (pair? formals_1)
                (let ((app_0 (car keys_1)))
                  (cons
                   app_0
                   (let ((app_1 (cdr keys_1)))
                     (loop_0 app_1 (cdr formals_1)))))
                (if (syntax?$1 formals_1)
                  (loop_0 keys_1 (syntax-e$1 formals_1))
                  (car keys_1)))))))))
     (loop_0 keys_0 formals_0))))
(define make-let-values-form.1
  (|#%name|
   make-let-values-form
   (lambda (log-tag1_0 rec?3_0 split-by-reference?4_0 syntaxes?2_0)
     (begin
       (lambda (s_0 ctx_0)
         (begin
           (let ((obs_0
                  (begin-unsafe
                   (expand-context/inner-observer
                    (root-expand-context/outer-inner ctx_0)))))
             (if obs_0 (call-expand-observe obs_0 log-tag1_0 s_0) (void)))
           (call-with-values
            (lambda ()
              (if (if syntaxes?2_0 #t #f)
                (call-with-values
                 (lambda ()
                   (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                     (if (pair? s_1)
                       (let ((letrec-syntaxes+values92_0
                              (let ((s_2 (car s_1))) s_2)))
                         (call-with-values
                          (lambda ()
                            (let ((s_2 (cdr s_1)))
                              (let ((s_3
                                     (if (syntax?$1 s_2)
                                       (syntax-e$1 s_2)
                                       s_2)))
                                (if (pair? s_3)
                                  (call-with-values
                                   (lambda ()
                                     (let ((s_4 (car s_3)))
                                       (let ((s_5
                                              (if (syntax?$1 s_4)
                                                (syntax-e$1 s_4)
                                                s_4)))
                                         (let ((flat-s_0
                                                (to-syntax-list.1 s_5)))
                                           (if (not flat-s_0)
                                             (raise-syntax-error$1
                                              #f
                                              "bad syntax"
                                              s_0)
                                             (call-with-values
                                              (lambda ()
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (id:trans_0
                                                               trans-rhs_0
                                                               lst_0)
                                                        (begin
                                                          (if (pair? lst_0)
                                                            (let ((s_6
                                                                   (unsafe-car
                                                                    lst_0)))
                                                              (let ((rest_0
                                                                     (unsafe-cdr
                                                                      lst_0)))
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((s_7
                                                                                (if (syntax?$1
                                                                                     s_6)
                                                                                  (syntax-e$1
                                                                                   s_6)
                                                                                  s_6)))
                                                                           (if (pair?
                                                                                s_7)
                                                                             (let ((id:trans103_0
                                                                                    (let ((s_8
                                                                                           (car
                                                                                            s_7)))
                                                                                      (let ((s_9
                                                                                             (if (syntax?$1
                                                                                                  s_8)
                                                                                               (syntax-e$1
                                                                                                s_8)
                                                                                               s_8)))
                                                                                        (let ((flat-s_1
                                                                                               (to-syntax-list.1
                                                                                                s_9)))
                                                                                          (if (not
                                                                                               flat-s_1)
                                                                                            (raise-syntax-error$1
                                                                                             #f
                                                                                             "bad syntax"
                                                                                             s_0)
                                                                                            (let ((id:trans_1
                                                                                                   (begin
                                                                                                     (letrec*
                                                                                                      ((for-loop_1
                                                                                                        (|#%name|
                                                                                                         for-loop
                                                                                                         (lambda (id:trans_1
                                                                                                                  lst_1)
                                                                                                           (begin
                                                                                                             (if (pair?
                                                                                                                  lst_1)
                                                                                                               (let ((s_10
                                                                                                                      (unsafe-car
                                                                                                                       lst_1)))
                                                                                                                 (let ((rest_1
                                                                                                                        (unsafe-cdr
                                                                                                                         lst_1)))
                                                                                                                   (let ((id:trans_2
                                                                                                                          (let ((id:trans_2
                                                                                                                                 (let ((id:trans131_0
                                                                                                                                        (if (let ((or-part_0
                                                                                                                                                   (if (syntax?$1
                                                                                                                                                        s_10)
                                                                                                                                                     (symbol?
                                                                                                                                                      (syntax-e$1
                                                                                                                                                       s_10))
                                                                                                                                                     #f)))
                                                                                                                                              (if or-part_0
                                                                                                                                                or-part_0
                                                                                                                                                (symbol?
                                                                                                                                                 s_10)))
                                                                                                                                          s_10
                                                                                                                                          (raise-syntax-error$1
                                                                                                                                           #f
                                                                                                                                           "not an identifier"
                                                                                                                                           s_0
                                                                                                                                           s_10))))
                                                                                                                                   (cons
                                                                                                                                    id:trans131_0
                                                                                                                                    id:trans_1))))
                                                                                                                            (values
                                                                                                                             id:trans_2))))
                                                                                                                     (for-loop_1
                                                                                                                      id:trans_2
                                                                                                                      rest_1))))
                                                                                                               id:trans_1))))))
                                                                                                      (for-loop_1
                                                                                                       null
                                                                                                       flat-s_1)))))
                                                                                              (reverse$1
                                                                                               id:trans_1))))))))
                                                                               (let ((trans-rhs104_0
                                                                                      (let ((s_8
                                                                                             (cdr
                                                                                              s_7)))
                                                                                        (let ((s_9
                                                                                               (if (syntax?$1
                                                                                                    s_8)
                                                                                                 (syntax-e$1
                                                                                                  s_8)
                                                                                                 s_8)))
                                                                                          (if (pair?
                                                                                               s_9)
                                                                                            (let ((trans-rhs105_0
                                                                                                   (let ((s_10
                                                                                                          (car
                                                                                                           s_9)))
                                                                                                     s_10)))
                                                                                              (call-with-values
                                                                                               (lambda ()
                                                                                                 (let ((s_10
                                                                                                        (cdr
                                                                                                         s_9)))
                                                                                                   (let ((s_11
                                                                                                          (if (syntax?$1
                                                                                                               s_10)
                                                                                                            (syntax-e$1
                                                                                                             s_10)
                                                                                                            s_10)))
                                                                                                     (if (null?
                                                                                                          s_11)
                                                                                                       (values)
                                                                                                       (raise-syntax-error$1
                                                                                                        #f
                                                                                                        "bad syntax"
                                                                                                        s_0)))))
                                                                                               (case-lambda
                                                                                                (()
                                                                                                 (let ((trans-rhs105_1
                                                                                                        trans-rhs105_0))
                                                                                                   (values
                                                                                                    trans-rhs105_1)))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  0
                                                                                                  args)))))
                                                                                            (raise-syntax-error$1
                                                                                             #f
                                                                                             "bad syntax"
                                                                                             s_0))))))
                                                                                 (let ((id:trans103_1
                                                                                        id:trans103_0))
                                                                                   (values
                                                                                    id:trans103_1
                                                                                    trans-rhs104_0))))
                                                                             (raise-syntax-error$1
                                                                              #f
                                                                              "bad syntax"
                                                                              s_0))))
                                                                       (case-lambda
                                                                        ((id:trans129_0
                                                                          trans-rhs130_0)
                                                                         (values
                                                                          (cons
                                                                           id:trans129_0
                                                                           id:trans_0)
                                                                          (cons
                                                                           trans-rhs130_0
                                                                           trans-rhs_0)))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args)))))
                                                                    (case-lambda
                                                                     ((id:trans_1
                                                                       trans-rhs_1)
                                                                      (values
                                                                       id:trans_1
                                                                       trans-rhs_1))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args)))))
                                                                 (case-lambda
                                                                  ((id:trans_1
                                                                    trans-rhs_1)
                                                                   (for-loop_0
                                                                    id:trans_1
                                                                    trans-rhs_1
                                                                    rest_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args))))))
                                                            (values
                                                             id:trans_0
                                                             trans-rhs_0)))))))
                                                   (for-loop_0
                                                    null
                                                    null
                                                    flat-s_0))))
                                              (case-lambda
                                               ((id:trans_0 trans-rhs_0)
                                                (let ((app_0
                                                       (reverse$1 id:trans_0)))
                                                  (values
                                                   app_0
                                                   (reverse$1 trans-rhs_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))))))
                                   (case-lambda
                                    ((id:trans98_0 trans-rhs99_0)
                                     (call-with-values
                                      (lambda ()
                                        (let ((s_4 (cdr s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (if (pair? s_5)
                                              (call-with-values
                                               (lambda ()
                                                 (let ((s_6 (car s_5)))
                                                   (let ((s_7
                                                          (if (syntax?$1 s_6)
                                                            (syntax-e$1 s_6)
                                                            s_6)))
                                                     (let ((flat-s_0
                                                            (to-syntax-list.1
                                                             s_7)))
                                                       (if (not flat-s_0)
                                                         (raise-syntax-error$1
                                                          #f
                                                          "bad syntax"
                                                          s_0)
                                                         (call-with-values
                                                          (lambda ()
                                                            (begin
                                                              (letrec*
                                                               ((for-loop_0
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (id:val_0
                                                                           val-rhs_0
                                                                           lst_0)
                                                                    (begin
                                                                      (if (pair?
                                                                           lst_0)
                                                                        (let ((s_8
                                                                               (unsafe-car
                                                                                lst_0)))
                                                                          (let ((rest_0
                                                                                 (unsafe-cdr
                                                                                  lst_0)))
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((s_9
                                                                                            (if (syntax?$1
                                                                                                 s_8)
                                                                                              (syntax-e$1
                                                                                               s_8)
                                                                                              s_8)))
                                                                                       (if (pair?
                                                                                            s_9)
                                                                                         (let ((id:val109_0
                                                                                                (let ((s_10
                                                                                                       (car
                                                                                                        s_9)))
                                                                                                  (let ((s_11
                                                                                                         (if (syntax?$1
                                                                                                              s_10)
                                                                                                           (syntax-e$1
                                                                                                            s_10)
                                                                                                           s_10)))
                                                                                                    (let ((flat-s_1
                                                                                                           (to-syntax-list.1
                                                                                                            s_11)))
                                                                                                      (if (not
                                                                                                           flat-s_1)
                                                                                                        (raise-syntax-error$1
                                                                                                         #f
                                                                                                         "bad syntax"
                                                                                                         s_0)
                                                                                                        (let ((id:val_1
                                                                                                               (begin
                                                                                                                 (letrec*
                                                                                                                  ((for-loop_1
                                                                                                                    (|#%name|
                                                                                                                     for-loop
                                                                                                                     (lambda (id:val_1
                                                                                                                              lst_1)
                                                                                                                       (begin
                                                                                                                         (if (pair?
                                                                                                                              lst_1)
                                                                                                                           (let ((s_12
                                                                                                                                  (unsafe-car
                                                                                                                                   lst_1)))
                                                                                                                             (let ((rest_1
                                                                                                                                    (unsafe-cdr
                                                                                                                                     lst_1)))
                                                                                                                               (let ((id:val_2
                                                                                                                                      (let ((id:val_2
                                                                                                                                             (let ((id:val134_0
                                                                                                                                                    (if (let ((or-part_0
                                                                                                                                                               (if (syntax?$1
                                                                                                                                                                    s_12)
                                                                                                                                                                 (symbol?
                                                                                                                                                                  (syntax-e$1
                                                                                                                                                                   s_12))
                                                                                                                                                                 #f)))
                                                                                                                                                          (if or-part_0
                                                                                                                                                            or-part_0
                                                                                                                                                            (symbol?
                                                                                                                                                             s_12)))
                                                                                                                                                      s_12
                                                                                                                                                      (raise-syntax-error$1
                                                                                                                                                       #f
                                                                                                                                                       "not an identifier"
                                                                                                                                                       s_0
                                                                                                                                                       s_12))))
                                                                                                                                               (cons
                                                                                                                                                id:val134_0
                                                                                                                                                id:val_1))))
                                                                                                                                        (values
                                                                                                                                         id:val_2))))
                                                                                                                                 (for-loop_1
                                                                                                                                  id:val_2
                                                                                                                                  rest_1))))
                                                                                                                           id:val_1))))))
                                                                                                                  (for-loop_1
                                                                                                                   null
                                                                                                                   flat-s_1)))))
                                                                                                          (reverse$1
                                                                                                           id:val_1))))))))
                                                                                           (let ((val-rhs110_0
                                                                                                  (let ((s_10
                                                                                                         (cdr
                                                                                                          s_9)))
                                                                                                    (let ((s_11
                                                                                                           (if (syntax?$1
                                                                                                                s_10)
                                                                                                             (syntax-e$1
                                                                                                              s_10)
                                                                                                             s_10)))
                                                                                                      (if (pair?
                                                                                                           s_11)
                                                                                                        (let ((val-rhs111_0
                                                                                                               (let ((s_12
                                                                                                                      (car
                                                                                                                       s_11)))
                                                                                                                 s_12)))
                                                                                                          (call-with-values
                                                                                                           (lambda ()
                                                                                                             (let ((s_12
                                                                                                                    (cdr
                                                                                                                     s_11)))
                                                                                                               (let ((s_13
                                                                                                                      (if (syntax?$1
                                                                                                                           s_12)
                                                                                                                        (syntax-e$1
                                                                                                                         s_12)
                                                                                                                        s_12)))
                                                                                                                 (if (null?
                                                                                                                      s_13)
                                                                                                                   (values)
                                                                                                                   (raise-syntax-error$1
                                                                                                                    #f
                                                                                                                    "bad syntax"
                                                                                                                    s_0)))))
                                                                                                           (case-lambda
                                                                                                            (()
                                                                                                             (let ((val-rhs111_1
                                                                                                                    val-rhs111_0))
                                                                                                               (values
                                                                                                                val-rhs111_1)))
                                                                                                            (args
                                                                                                             (raise-binding-result-arity-error
                                                                                                              0
                                                                                                              args)))))
                                                                                                        (raise-syntax-error$1
                                                                                                         #f
                                                                                                         "bad syntax"
                                                                                                         s_0))))))
                                                                                             (let ((id:val109_1
                                                                                                    id:val109_0))
                                                                                               (values
                                                                                                id:val109_1
                                                                                                val-rhs110_0))))
                                                                                         (raise-syntax-error$1
                                                                                          #f
                                                                                          "bad syntax"
                                                                                          s_0))))
                                                                                   (case-lambda
                                                                                    ((id:val132_0
                                                                                      val-rhs133_0)
                                                                                     (values
                                                                                      (cons
                                                                                       id:val132_0
                                                                                       id:val_0)
                                                                                      (cons
                                                                                       val-rhs133_0
                                                                                       val-rhs_0)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args)))))
                                                                                (case-lambda
                                                                                 ((id:val_1
                                                                                   val-rhs_1)
                                                                                  (values
                                                                                   id:val_1
                                                                                   val-rhs_1))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args)))))
                                                                             (case-lambda
                                                                              ((id:val_1
                                                                                val-rhs_1)
                                                                               (for-loop_0
                                                                                id:val_1
                                                                                val-rhs_1
                                                                                rest_0))
                                                                              (args
                                                                               (raise-binding-result-arity-error
                                                                                2
                                                                                args))))))
                                                                        (values
                                                                         id:val_0
                                                                         val-rhs_0)))))))
                                                               (for-loop_0
                                                                null
                                                                null
                                                                flat-s_0))))
                                                          (case-lambda
                                                           ((id:val_0
                                                             val-rhs_0)
                                                            (let ((app_0
                                                                   (reverse$1
                                                                    id:val_0)))
                                                              (values
                                                               app_0
                                                               (reverse$1
                                                                val-rhs_0))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))))))
                                               (case-lambda
                                                ((id:val106_0 val-rhs107_0)
                                                 (let ((body108_0
                                                        (let ((s_6 (cdr s_5)))
                                                          (let ((s_7
                                                                 (if (syntax?$1
                                                                      s_6)
                                                                   (syntax-e$1
                                                                    s_6)
                                                                   s_6)))
                                                            (let ((flat-s_0
                                                                   (to-syntax-list.1
                                                                    s_7)))
                                                              (if (not
                                                                   flat-s_0)
                                                                (raise-syntax-error$1
                                                                 #f
                                                                 "bad syntax"
                                                                 s_0)
                                                                (if (null?
                                                                     flat-s_0)
                                                                  (raise-syntax-error$1
                                                                   #f
                                                                   "bad syntax"
                                                                   s_0)
                                                                  flat-s_0)))))))
                                                   (let ((id:val106_1
                                                          id:val106_0)
                                                         (val-rhs107_1
                                                          val-rhs107_0))
                                                     (values
                                                      id:val106_1
                                                      val-rhs107_1
                                                      body108_0))))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))
                                              (raise-syntax-error$1
                                               #f
                                               "bad syntax"
                                               s_0)))))
                                      (case-lambda
                                       ((id:val100_0 val-rhs101_0 body102_0)
                                        (let ((id:trans98_1 id:trans98_0)
                                              (trans-rhs99_1 trans-rhs99_0))
                                          (values
                                           id:trans98_1
                                           trans-rhs99_1
                                           id:val100_0
                                           val-rhs101_0
                                           body102_0)))
                                       (args
                                        (raise-binding-result-arity-error
                                         3
                                         args)))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))
                                  (raise-syntax-error$1
                                   #f
                                   "bad syntax"
                                   s_0)))))
                          (case-lambda
                           ((id:trans93_0
                             trans-rhs94_0
                             id:val95_0
                             val-rhs96_0
                             body97_0)
                            (let ((letrec-syntaxes+values92_1
                                   letrec-syntaxes+values92_0))
                              (values
                               letrec-syntaxes+values92_1
                               id:trans93_0
                               trans-rhs94_0
                               id:val95_0
                               val-rhs96_0
                               body97_0)))
                           (args (raise-binding-result-arity-error 5 args)))))
                       (raise-syntax-error$1 #f "bad syntax" s_0))))
                 (case-lambda
                  ((letrec-syntaxes+values86_0
                    id:trans87_0
                    trans-rhs88_0
                    id:val89_0
                    val-rhs90_0
                    body91_0)
                   (values
                    #t
                    letrec-syntaxes+values86_0
                    id:trans87_0
                    trans-rhs88_0
                    id:val89_0
                    val-rhs90_0
                    body91_0))
                  (args (raise-binding-result-arity-error 6 args))))
                (values #f #f #f #f #f #f #f)))
            (case-lambda
             ((ok?_0
               letrec-syntaxes+values86_0
               id:trans87_0
               trans-rhs88_0
               id:val89_0
               val-rhs90_0
               body91_0)
              (call-with-values
               (lambda ()
                 (if (if (not syntaxes?2_0) #t #f)
                   (call-with-values
                    (lambda ()
                      (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                        (if (pair? s_1)
                          (let ((let-values116_0 (let ((s_2 (car s_1))) s_2)))
                            (call-with-values
                             (lambda ()
                               (let ((s_2 (cdr s_1)))
                                 (let ((s_3
                                        (if (syntax?$1 s_2)
                                          (syntax-e$1 s_2)
                                          s_2)))
                                   (if (pair? s_3)
                                     (call-with-values
                                      (lambda ()
                                        (let ((s_4 (car s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (let ((flat-s_0
                                                   (to-syntax-list.1 s_5)))
                                              (if (not flat-s_0)
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0)
                                                (call-with-values
                                                 (lambda ()
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (id:val_0
                                                                  val-rhs_0
                                                                  lst_0)
                                                           (begin
                                                             (if (pair? lst_0)
                                                               (let ((s_6
                                                                      (unsafe-car
                                                                       lst_0)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_0)))
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((s_7
                                                                                   (if (syntax?$1
                                                                                        s_6)
                                                                                     (syntax-e$1
                                                                                      s_6)
                                                                                     s_6)))
                                                                              (if (pair?
                                                                                   s_7)
                                                                                (let ((id:val123_0
                                                                                       (let ((s_8
                                                                                              (car
                                                                                               s_7)))
                                                                                         (let ((s_9
                                                                                                (if (syntax?$1
                                                                                                     s_8)
                                                                                                  (syntax-e$1
                                                                                                   s_8)
                                                                                                  s_8)))
                                                                                           (let ((flat-s_1
                                                                                                  (to-syntax-list.1
                                                                                                   s_9)))
                                                                                             (if (not
                                                                                                  flat-s_1)
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                s_0)
                                                                                               (let ((id:val_1
                                                                                                      (begin
                                                                                                        (letrec*
                                                                                                         ((for-loop_1
                                                                                                           (|#%name|
                                                                                                            for-loop
                                                                                                            (lambda (id:val_1
                                                                                                                     lst_1)
                                                                                                              (begin
                                                                                                                (if (pair?
                                                                                                                     lst_1)
                                                                                                                  (let ((s_10
                                                                                                                         (unsafe-car
                                                                                                                          lst_1)))
                                                                                                                    (let ((rest_1
                                                                                                                           (unsafe-cdr
                                                                                                                            lst_1)))
                                                                                                                      (let ((id:val_2
                                                                                                                             (let ((id:val_2
                                                                                                                                    (let ((id:val137_0
                                                                                                                                           (if (let ((or-part_0
                                                                                                                                                      (if (syntax?$1
                                                                                                                                                           s_10)
                                                                                                                                                        (symbol?
                                                                                                                                                         (syntax-e$1
                                                                                                                                                          s_10))
                                                                                                                                                        #f)))
                                                                                                                                                 (if or-part_0
                                                                                                                                                   or-part_0
                                                                                                                                                   (symbol?
                                                                                                                                                    s_10)))
                                                                                                                                             s_10
                                                                                                                                             (raise-syntax-error$1
                                                                                                                                              #f
                                                                                                                                              "not an identifier"
                                                                                                                                              s_0
                                                                                                                                              s_10))))
                                                                                                                                      (cons
                                                                                                                                       id:val137_0
                                                                                                                                       id:val_1))))
                                                                                                                               (values
                                                                                                                                id:val_2))))
                                                                                                                        (for-loop_1
                                                                                                                         id:val_2
                                                                                                                         rest_1))))
                                                                                                                  id:val_1))))))
                                                                                                         (for-loop_1
                                                                                                          null
                                                                                                          flat-s_1)))))
                                                                                                 (reverse$1
                                                                                                  id:val_1))))))))
                                                                                  (let ((val-rhs124_0
                                                                                         (let ((s_8
                                                                                                (cdr
                                                                                                 s_7)))
                                                                                           (let ((s_9
                                                                                                  (if (syntax?$1
                                                                                                       s_8)
                                                                                                    (syntax-e$1
                                                                                                     s_8)
                                                                                                    s_8)))
                                                                                             (if (pair?
                                                                                                  s_9)
                                                                                               (let ((val-rhs125_0
                                                                                                      (let ((s_10
                                                                                                             (car
                                                                                                              s_9)))
                                                                                                        s_10)))
                                                                                                 (call-with-values
                                                                                                  (lambda ()
                                                                                                    (let ((s_10
                                                                                                           (cdr
                                                                                                            s_9)))
                                                                                                      (let ((s_11
                                                                                                             (if (syntax?$1
                                                                                                                  s_10)
                                                                                                               (syntax-e$1
                                                                                                                s_10)
                                                                                                               s_10)))
                                                                                                        (if (null?
                                                                                                             s_11)
                                                                                                          (values)
                                                                                                          (raise-syntax-error$1
                                                                                                           #f
                                                                                                           "bad syntax"
                                                                                                           s_0)))))
                                                                                                  (case-lambda
                                                                                                   (()
                                                                                                    (let ((val-rhs125_1
                                                                                                           val-rhs125_0))
                                                                                                      (values
                                                                                                       val-rhs125_1)))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     0
                                                                                                     args)))))
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                s_0))))))
                                                                                    (let ((id:val123_1
                                                                                           id:val123_0))
                                                                                      (values
                                                                                       id:val123_1
                                                                                       val-rhs124_0))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 s_0))))
                                                                          (case-lambda
                                                                           ((id:val135_0
                                                                             val-rhs136_0)
                                                                            (values
                                                                             (cons
                                                                              id:val135_0
                                                                              id:val_0)
                                                                             (cons
                                                                              val-rhs136_0
                                                                              val-rhs_0)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args)))))
                                                                       (case-lambda
                                                                        ((id:val_1
                                                                          val-rhs_1)
                                                                         (values
                                                                          id:val_1
                                                                          val-rhs_1))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args)))))
                                                                    (case-lambda
                                                                     ((id:val_1
                                                                       val-rhs_1)
                                                                      (for-loop_0
                                                                       id:val_1
                                                                       val-rhs_1
                                                                       rest_0))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args))))))
                                                               (values
                                                                id:val_0
                                                                val-rhs_0)))))))
                                                      (for-loop_0
                                                       null
                                                       null
                                                       flat-s_0))))
                                                 (case-lambda
                                                  ((id:val_0 val-rhs_0)
                                                   (let ((app_0
                                                          (reverse$1
                                                           id:val_0)))
                                                     (values
                                                      app_0
                                                      (reverse$1 val-rhs_0))))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))))))
                                      (case-lambda
                                       ((id:val120_0 val-rhs121_0)
                                        (let ((body122_0
                                               (let ((s_4 (cdr s_3)))
                                                 (let ((s_5
                                                        (if (syntax?$1 s_4)
                                                          (syntax-e$1 s_4)
                                                          s_4)))
                                                   (let ((flat-s_0
                                                          (to-syntax-list.1
                                                           s_5)))
                                                     (if (not flat-s_0)
                                                       (raise-syntax-error$1
                                                        #f
                                                        "bad syntax"
                                                        s_0)
                                                       (if (null? flat-s_0)
                                                         (raise-syntax-error$1
                                                          #f
                                                          "bad syntax"
                                                          s_0)
                                                         flat-s_0)))))))
                                          (let ((id:val120_1 id:val120_0)
                                                (val-rhs121_1 val-rhs121_0))
                                            (values
                                             id:val120_1
                                             val-rhs121_1
                                             body122_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))
                                     (raise-syntax-error$1
                                      #f
                                      "bad syntax"
                                      s_0)))))
                             (case-lambda
                              ((id:val117_0 val-rhs118_0 body119_0)
                               (let ((let-values116_1 let-values116_0))
                                 (values
                                  let-values116_1
                                  id:val117_0
                                  val-rhs118_0
                                  body119_0)))
                              (args
                               (raise-binding-result-arity-error 3 args)))))
                          (raise-syntax-error$1 #f "bad syntax" s_0))))
                    (case-lambda
                     ((let-values112_0 id:val113_0 val-rhs114_0 body115_0)
                      (values
                       #t
                       let-values112_0
                       id:val113_0
                       val-rhs114_0
                       body115_0))
                     (args (raise-binding-result-arity-error 4 args))))
                   (values #f #f #f #f #f)))
               (case-lambda
                ((ok?_1 let-values112_0 id:val113_0 val-rhs114_0 body115_0)
                 (let ((sc_0
                        (if (not
                             (begin-unsafe
                              (expand-context/inner-parsing-expanded?
                               (root-expand-context/outer-inner ctx_0))))
                          (new-scope 'local)
                          #f)))
                   (begin
                     (if (if syntaxes?2_0 (not sc_0) #f)
                       (raise-syntax-error$1
                        #f
                        "encountered `letrec-syntaxes` in form that should be fully expanded"
                        s_0)
                       (void))
                     (let ((body-sc_0
                            (if sc_0
                              (if rec?3_0 (new-scope 'letrec-body) #f)
                              #f)))
                       (let ((phase_0
                              (begin-unsafe
                               (expand-context/inner-phase
                                (root-expand-context/outer-inner ctx_0)))))
                         (let ((frame-id_0
                                (if syntaxes?2_0 (make-reference-record) #f)))
                           (let ((trans-idss_0
                                  (reverse$1
                                   (let ((lst_0
                                          (if syntaxes?2_0 id:trans87_0 null)))
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (fold-var_0 lst_1)
                                             (begin
                                               (if (pair? lst_1)
                                                 (let ((ids_0
                                                        (unsafe-car lst_1)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_1)))
                                                     (let ((fold-var_1
                                                            (let ((fold-var_1
                                                                   (cons
                                                                    (reverse$1
                                                                     (begin
                                                                       (letrec*
                                                                        ((for-loop_1
                                                                          (|#%name|
                                                                           for-loop
                                                                           (lambda (fold-var_1
                                                                                    lst_2)
                                                                             (begin
                                                                               (if (pair?
                                                                                    lst_2)
                                                                                 (let ((id_0
                                                                                        (unsafe-car
                                                                                         lst_2)))
                                                                                   (let ((rest_1
                                                                                          (unsafe-cdr
                                                                                           lst_2)))
                                                                                     (let ((fold-var_2
                                                                                            (let ((fold-var_2
                                                                                                   (cons
                                                                                                    (add-scope
                                                                                                     id_0
                                                                                                     sc_0)
                                                                                                    fold-var_1)))
                                                                                              (values
                                                                                               fold-var_2))))
                                                                                       (for-loop_1
                                                                                        fold-var_2
                                                                                        rest_1))))
                                                                                 fold-var_1))))))
                                                                        (for-loop_1
                                                                         null
                                                                         ids_0))))
                                                                    fold-var_0)))
                                                              (values
                                                               fold-var_1))))
                                                       (for-loop_0
                                                        fold-var_1
                                                        rest_0))))
                                                 fold-var_0))))))
                                        (for-loop_0 null lst_0)))))))
                             (let ((trans-rhss_0
                                    (if syntaxes?2_0
                                      (reverse$1
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (fold-var_0 lst_0)
                                               (begin
                                                 (if (pair? lst_0)
                                                   (let ((rhs_0
                                                          (unsafe-car lst_0)))
                                                     (let ((rest_0
                                                            (unsafe-cdr
                                                             lst_0)))
                                                       (let ((fold-var_1
                                                              (let ((fold-var_1
                                                                     (cons
                                                                      (add-scope
                                                                       rhs_0
                                                                       sc_0)
                                                                      fold-var_0)))
                                                                (values
                                                                 fold-var_1))))
                                                         (for-loop_0
                                                          fold-var_1
                                                          rest_0))))
                                                   fold-var_0))))))
                                          (for-loop_0 null trans-rhs88_0))))
                                      '())))
                               (let ((val-idss_0
                                      (if syntaxes?2_0
                                        id:val89_0
                                        id:val113_0)))
                                 (let ((val-idss_1
                                        (if sc_0
                                          (reverse$1
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0 lst_0)
                                                   (begin
                                                     (if (pair? lst_0)
                                                       (let ((ids_0
                                                              (unsafe-car
                                                               lst_0)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_0)))
                                                           (let ((fold-var_1
                                                                  (let ((fold-var_1
                                                                         (cons
                                                                          (reverse$1
                                                                           (begin
                                                                             (letrec*
                                                                              ((for-loop_1
                                                                                (|#%name|
                                                                                 for-loop
                                                                                 (lambda (fold-var_1
                                                                                          lst_1)
                                                                                   (begin
                                                                                     (if (pair?
                                                                                          lst_1)
                                                                                       (let ((id_0
                                                                                              (unsafe-car
                                                                                               lst_1)))
                                                                                         (let ((rest_1
                                                                                                (unsafe-cdr
                                                                                                 lst_1)))
                                                                                           (let ((fold-var_2
                                                                                                  (let ((fold-var_2
                                                                                                         (cons
                                                                                                          (add-scope
                                                                                                           id_0
                                                                                                           sc_0)
                                                                                                          fold-var_1)))
                                                                                                    (values
                                                                                                     fold-var_2))))
                                                                                             (for-loop_1
                                                                                              fold-var_2
                                                                                              rest_1))))
                                                                                       fold-var_1))))))
                                                                              (for-loop_1
                                                                               null
                                                                               ids_0))))
                                                                          fold-var_0)))
                                                                    (values
                                                                     fold-var_1))))
                                                             (for-loop_0
                                                              fold-var_1
                                                              rest_0))))
                                                       fold-var_0))))))
                                              (for-loop_0 null val-idss_0))))
                                          val-idss_0)))
                                   (let ((val-rhss_0
                                          (if syntaxes?2_0
                                            val-rhs90_0
                                            val-rhs114_0)))
                                     (let ((val-rhss_1
                                            (if (if rec?3_0 sc_0 #f)
                                              (reverse$1
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (fold-var_0 lst_0)
                                                       (begin
                                                         (if (pair? lst_0)
                                                           (let ((rhs_0
                                                                  (unsafe-car
                                                                   lst_0)))
                                                             (let ((rest_0
                                                                    (unsafe-cdr
                                                                     lst_0)))
                                                               (let ((fold-var_1
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              (add-scope
                                                                               rhs_0
                                                                               sc_0)
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))))
                                                                 (for-loop_0
                                                                  fold-var_1
                                                                  rest_0))))
                                                           fold-var_0))))))
                                                  (for-loop_0
                                                   null
                                                   val-rhss_0))))
                                              val-rhss_0)))
                                       (let ((val-clauses_0
                                              (if syntaxes?2_0
                                                (call-with-values
                                                 (lambda ()
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((s_1
                                                             (if (syntax?$1
                                                                  s_0)
                                                               (syntax-e$1 s_0)
                                                               s_0)))
                                                        (if (pair? s_1)
                                                          (let ((_0
                                                                 (let ((s_2
                                                                        (car
                                                                         s_1)))
                                                                   s_2)))
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_2
                                                                      (cdr
                                                                       s_1)))
                                                                 (let ((s_3
                                                                        (if (syntax?$1
                                                                             s_2)
                                                                          (syntax-e$1
                                                                           s_2)
                                                                          s_2)))
                                                                   (if (pair?
                                                                        s_3)
                                                                     (let ((_1
                                                                            (let ((s_4
                                                                                   (car
                                                                                    s_3)))
                                                                              s_4)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_4
                                                                                 (cdr
                                                                                  s_3)))
                                                                            (let ((s_5
                                                                                   (if (syntax?$1
                                                                                        s_4)
                                                                                     (syntax-e$1
                                                                                      s_4)
                                                                                     s_4)))
                                                                              (if (pair?
                                                                                   s_5)
                                                                                (let ((clause149_0
                                                                                       (let ((s_6
                                                                                              (car
                                                                                               s_5)))
                                                                                         (let ((s_7
                                                                                                (if (syntax?$1
                                                                                                     s_6)
                                                                                                  (syntax-e$1
                                                                                                   s_6)
                                                                                                  s_6)))
                                                                                           (let ((flat-s_0
                                                                                                  (to-syntax-list.1
                                                                                                   s_7)))
                                                                                             (if (not
                                                                                                  flat-s_0)
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                s_0)
                                                                                               flat-s_0))))))
                                                                                  (let ((_2
                                                                                         (let ((s_6
                                                                                                (cdr
                                                                                                 s_5)))
                                                                                           s_6)))
                                                                                    (let ((clause149_1
                                                                                           clause149_0))
                                                                                      (values
                                                                                       clause149_1
                                                                                       _2))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 s_0)))))
                                                                        (case-lambda
                                                                         ((clause147_0
                                                                           _2)
                                                                          (let ((_3
                                                                                 _1))
                                                                            (values
                                                                             _3
                                                                             clause147_0
                                                                             _2)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args)))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      s_0)))))
                                                             (case-lambda
                                                              ((_1
                                                                clause144_0
                                                                _2)
                                                               (let ((_3 _0))
                                                                 (values
                                                                  _3
                                                                  _1
                                                                  clause144_0
                                                                  _2)))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (raise-syntax-error$1
                                                           #f
                                                           "bad syntax"
                                                           s_0))))
                                                    (case-lambda
                                                     ((_0 _1 clause140_0 _2)
                                                      (values
                                                       #t
                                                       _0
                                                       _1
                                                       clause140_0
                                                       _2))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       4
                                                       args)))))
                                                 (case-lambda
                                                  ((ok?_2 _0 _1 clause140_0 _2)
                                                   clause140_0)
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    5
                                                    args))))
                                                (call-with-values
                                                 (lambda ()
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((s_1
                                                             (if (syntax?$1
                                                                  s_0)
                                                               (syntax-e$1 s_0)
                                                               s_0)))
                                                        (if (pair? s_1)
                                                          (let ((_0
                                                                 (let ((s_2
                                                                        (car
                                                                         s_1)))
                                                                   s_2)))
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_2
                                                                      (cdr
                                                                       s_1)))
                                                                 (let ((s_3
                                                                        (if (syntax?$1
                                                                             s_2)
                                                                          (syntax-e$1
                                                                           s_2)
                                                                          s_2)))
                                                                   (if (pair?
                                                                        s_3)
                                                                     (let ((clause157_0
                                                                            (let ((s_4
                                                                                   (car
                                                                                    s_3)))
                                                                              (let ((s_5
                                                                                     (if (syntax?$1
                                                                                          s_4)
                                                                                       (syntax-e$1
                                                                                        s_4)
                                                                                       s_4)))
                                                                                (let ((flat-s_0
                                                                                       (to-syntax-list.1
                                                                                        s_5)))
                                                                                  (if (not
                                                                                       flat-s_0)
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     s_0)
                                                                                    flat-s_0))))))
                                                                       (let ((_1
                                                                              (let ((s_4
                                                                                     (cdr
                                                                                      s_3)))
                                                                                s_4)))
                                                                         (let ((clause157_1
                                                                                clause157_0))
                                                                           (values
                                                                            clause157_1
                                                                            _1))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      s_0)))))
                                                             (case-lambda
                                                              ((clause155_0 _1)
                                                               (let ((_2 _0))
                                                                 (values
                                                                  _2
                                                                  clause155_0
                                                                  _1)))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (raise-syntax-error$1
                                                           #f
                                                           "bad syntax"
                                                           s_0))))
                                                    (case-lambda
                                                     ((_0 clause152_0 _1)
                                                      (values
                                                       #t
                                                       _0
                                                       clause152_0
                                                       _1))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       3
                                                       args)))))
                                                 (case-lambda
                                                  ((ok?_2 _0 clause152_0 _1)
                                                   clause152_0)
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    4
                                                    args)))))))
                                         (begin
                                           (let ((temp126_0
                                                  (list
                                                   trans-idss_0
                                                   val-idss_1)))
                                             (check-no-duplicate-ids.1
                                              unsafe-undefined
                                              temp126_0
                                              phase_0
                                              s_0
                                              unsafe-undefined))
                                           (let ((counter_0
                                                  (begin-unsafe
                                                   (root-expand-context/inner-counter
                                                    (root-expand-context/outer-inner
                                                     ctx_0)))))
                                             (let ((local-sym_0
                                                    (if (begin-unsafe
                                                         (expand-context/inner-normalize-locals?
                                                          (root-expand-context/outer-inner
                                                           ctx_0)))
                                                      'loc
                                                      #f)))
                                               (let ((trans-keyss_0
                                                      (reverse$1
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (fold-var_0
                                                                      lst_0)
                                                               (begin
                                                                 (if (pair?
                                                                      lst_0)
                                                                   (let ((ids_0
                                                                          (unsafe-car
                                                                           lst_0)))
                                                                     (let ((rest_0
                                                                            (unsafe-cdr
                                                                             lst_0)))
                                                                       (let ((fold-var_1
                                                                              (let ((fold-var_1
                                                                                     (cons
                                                                                      (reverse$1
                                                                                       (begin
                                                                                         (letrec*
                                                                                          ((for-loop_1
                                                                                            (|#%name|
                                                                                             for-loop
                                                                                             (lambda (fold-var_1
                                                                                                      lst_1)
                                                                                               (begin
                                                                                                 (if (pair?
                                                                                                      lst_1)
                                                                                                   (let ((id_0
                                                                                                          (unsafe-car
                                                                                                           lst_1)))
                                                                                                     (let ((rest_1
                                                                                                            (unsafe-cdr
                                                                                                             lst_1)))
                                                                                                       (let ((fold-var_2
                                                                                                              (let ((fold-var_2
                                                                                                                     (cons
                                                                                                                      (add-local-binding!.1
                                                                                                                       frame-id_0
                                                                                                                       s_0
                                                                                                                       local-sym_0
                                                                                                                       id_0
                                                                                                                       phase_0
                                                                                                                       counter_0)
                                                                                                                      fold-var_1)))
                                                                                                                (values
                                                                                                                 fold-var_2))))
                                                                                                         (for-loop_1
                                                                                                          fold-var_2
                                                                                                          rest_1))))
                                                                                                   fold-var_1))))))
                                                                                          (for-loop_1
                                                                                           null
                                                                                           ids_0))))
                                                                                      fold-var_0)))
                                                                                (values
                                                                                 fold-var_1))))
                                                                         (for-loop_0
                                                                          fold-var_1
                                                                          rest_0))))
                                                                   fold-var_0))))))
                                                          (for-loop_0
                                                           null
                                                           trans-idss_0))))))
                                                 (let ((val-keyss_0
                                                        (reverse$1
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_0
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (fold-var_0
                                                                        lst_0)
                                                                 (begin
                                                                   (if (pair?
                                                                        lst_0)
                                                                     (let ((ids_0
                                                                            (unsafe-car
                                                                             lst_0)))
                                                                       (let ((rest_0
                                                                              (unsafe-cdr
                                                                               lst_0)))
                                                                         (let ((fold-var_1
                                                                                (let ((fold-var_1
                                                                                       (cons
                                                                                        (reverse$1
                                                                                         (begin
                                                                                           (letrec*
                                                                                            ((for-loop_1
                                                                                              (|#%name|
                                                                                               for-loop
                                                                                               (lambda (fold-var_1
                                                                                                        lst_1)
                                                                                                 (begin
                                                                                                   (if (pair?
                                                                                                        lst_1)
                                                                                                     (let ((id_0
                                                                                                            (unsafe-car
                                                                                                             lst_1)))
                                                                                                       (let ((rest_1
                                                                                                              (unsafe-cdr
                                                                                                               lst_1)))
                                                                                                         (let ((fold-var_2
                                                                                                                (let ((fold-var_2
                                                                                                                       (cons
                                                                                                                        (if sc_0
                                                                                                                          (add-local-binding!.1
                                                                                                                           frame-id_0
                                                                                                                           s_0
                                                                                                                           local-sym_0
                                                                                                                           id_0
                                                                                                                           phase_0
                                                                                                                           counter_0)
                                                                                                                          (existing-binding-key
                                                                                                                           id_0
                                                                                                                           (begin-unsafe
                                                                                                                            (expand-context/inner-phase
                                                                                                                             (root-expand-context/outer-inner
                                                                                                                              ctx_0)))))
                                                                                                                        fold-var_1)))
                                                                                                                  (values
                                                                                                                   fold-var_2))))
                                                                                                           (for-loop_1
                                                                                                            fold-var_2
                                                                                                            rest_1))))
                                                                                                     fold-var_1))))))
                                                                                            (for-loop_1
                                                                                             null
                                                                                             ids_0))))
                                                                                        fold-var_0)))
                                                                                  (values
                                                                                   fold-var_1))))
                                                                           (for-loop_0
                                                                            fold-var_1
                                                                            rest_0))))
                                                                     fold-var_0))))))
                                                            (for-loop_0
                                                             null
                                                             val-idss_1))))))
                                                   (let ((bodys_0
                                                          (if syntaxes?2_0
                                                            body91_0
                                                            body115_0)))
                                                     (let ((bodys_1
                                                            (if sc_0
                                                              (reverse$1
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (fold-var_0
                                                                              lst_0)
                                                                       (begin
                                                                         (if (pair?
                                                                              lst_0)
                                                                           (let ((body_0
                                                                                  (unsafe-car
                                                                                   lst_0)))
                                                                             (let ((rest_0
                                                                                    (unsafe-cdr
                                                                                     lst_0)))
                                                                               (let ((fold-var_1
                                                                                      (let ((fold-var_1
                                                                                             (cons
                                                                                              (let ((new-body_0
                                                                                                     (add-scope
                                                                                                      body_0
                                                                                                      sc_0)))
                                                                                                (if rec?3_0
                                                                                                  (add-scope
                                                                                                   new-body_0
                                                                                                   body-sc_0)
                                                                                                  new-body_0))
                                                                                              fold-var_0)))
                                                                                        (values
                                                                                         fold-var_1))))
                                                                                 (for-loop_0
                                                                                  fold-var_1
                                                                                  rest_0))))
                                                                           fold-var_0))))))
                                                                  (for-loop_0
                                                                   null
                                                                   bodys_0))))
                                                              bodys_0)))
                                                       (begin
                                                         (let ((obs_0
                                                                (begin-unsafe
                                                                 (expand-context/inner-observer
                                                                  (root-expand-context/outer-inner
                                                                   ctx_0)))))
                                                           (if obs_0
                                                             (call-expand-observe
                                                              obs_0
                                                              'letX-renames
                                                              trans-idss_0
                                                              trans-rhss_0
                                                              val-idss_1
                                                              val-rhss_1
                                                              bodys_1)
                                                             (void)))
                                                         (begin
                                                           (if syntaxes?2_0
                                                             (begin
                                                               (let ((obs_0
                                                                      (begin-unsafe
                                                                       (expand-context/inner-observer
                                                                        (root-expand-context/outer-inner
                                                                         ctx_0)))))
                                                                 (if obs_0
                                                                   (call-expand-observe
                                                                    obs_0
                                                                    'prepare-env)
                                                                   (void)))
                                                               (prepare-next-phase-namespace
                                                                ctx_0))
                                                             (void))
                                                           (let ((trans-valss_0
                                                                  (reverse$1
                                                                   (begin
                                                                     (letrec*
                                                                      ((for-loop_0
                                                                        (|#%name|
                                                                         for-loop
                                                                         (lambda (fold-var_0
                                                                                  lst_0
                                                                                  lst_1)
                                                                           (begin
                                                                             (if (if (pair?
                                                                                      lst_0)
                                                                                   (pair?
                                                                                    lst_1)
                                                                                   #f)
                                                                               (let ((rhs_0
                                                                                      (unsafe-car
                                                                                       lst_0)))
                                                                                 (let ((rest_0
                                                                                        (unsafe-cdr
                                                                                         lst_0)))
                                                                                   (let ((ids_0
                                                                                          (unsafe-car
                                                                                           lst_1)))
                                                                                     (let ((rest_1
                                                                                            (unsafe-cdr
                                                                                             lst_1)))
                                                                                       (let ((fold-var_1
                                                                                              (let ((fold-var_1
                                                                                                     (cons
                                                                                                      (begin
                                                                                                        (let ((obs_0
                                                                                                               (begin-unsafe
                                                                                                                (expand-context/inner-observer
                                                                                                                 (root-expand-context/outer-inner
                                                                                                                  ctx_0)))))
                                                                                                          (if obs_0
                                                                                                            (begin
                                                                                                              (call-expand-observe
                                                                                                               obs_0
                                                                                                               'next)
                                                                                                              (call-expand-observe
                                                                                                               obs_0
                                                                                                               'enter-bind))
                                                                                                            (void)))
                                                                                                        (let ((trans-val_0
                                                                                                               (eval-for-syntaxes-binding
                                                                                                                'letrec-syntaxes+values
                                                                                                                rhs_0
                                                                                                                ids_0
                                                                                                                ctx_0)))
                                                                                                          (begin
                                                                                                            (let ((obs_0
                                                                                                                   (begin-unsafe
                                                                                                                    (expand-context/inner-observer
                                                                                                                     (root-expand-context/outer-inner
                                                                                                                      ctx_0)))))
                                                                                                              (if obs_0
                                                                                                                (call-expand-observe
                                                                                                                 obs_0
                                                                                                                 'exit-bind)
                                                                                                                (void)))
                                                                                                            trans-val_0)))
                                                                                                      fold-var_0)))
                                                                                                (values
                                                                                                 fold-var_1))))
                                                                                         (for-loop_0
                                                                                          fold-var_1
                                                                                          rest_0
                                                                                          rest_1))))))
                                                                               fold-var_0))))))
                                                                      (for-loop_0
                                                                       null
                                                                       trans-rhss_0
                                                                       trans-idss_0))))))
                                                             (let ((rec-val-env_0
                                                                    (begin
                                                                      (letrec*
                                                                       ((for-loop_0
                                                                         (|#%name|
                                                                          for-loop
                                                                          (lambda (env_0
                                                                                   lst_0
                                                                                   lst_1)
                                                                            (begin
                                                                              (if (if (pair?
                                                                                       lst_0)
                                                                                    (pair?
                                                                                     lst_1)
                                                                                    #f)
                                                                                (let ((keys_0
                                                                                       (unsafe-car
                                                                                        lst_0)))
                                                                                  (let ((rest_0
                                                                                         (unsafe-cdr
                                                                                          lst_0)))
                                                                                    (let ((ids_0
                                                                                           (unsafe-car
                                                                                            lst_1)))
                                                                                      (let ((rest_1
                                                                                             (unsafe-cdr
                                                                                              lst_1)))
                                                                                        (let ((env_1
                                                                                               (begin
                                                                                                 (letrec*
                                                                                                  ((for-loop_1
                                                                                                    (|#%name|
                                                                                                     for-loop
                                                                                                     (lambda (env_1
                                                                                                              lst_2
                                                                                                              lst_3)
                                                                                                       (begin
                                                                                                         (if (if (pair?
                                                                                                                  lst_2)
                                                                                                               (pair?
                                                                                                                lst_3)
                                                                                                               #f)
                                                                                                           (let ((key_0
                                                                                                                  (unsafe-car
                                                                                                                   lst_2)))
                                                                                                             (let ((rest_2
                                                                                                                    (unsafe-cdr
                                                                                                                     lst_2)))
                                                                                                               (let ((id_0
                                                                                                                      (unsafe-car
                                                                                                                       lst_3)))
                                                                                                                 (let ((rest_3
                                                                                                                        (unsafe-cdr
                                                                                                                         lst_3)))
                                                                                                                   (let ((val_0
                                                                                                                          (local-variable1.1
                                                                                                                           id_0)))
                                                                                                                     (let ((env_2
                                                                                                                            (let ((env_2
                                                                                                                                   (begin-unsafe
                                                                                                                                    (hash-set
                                                                                                                                     env_1
                                                                                                                                     key_0
                                                                                                                                     val_0))))
                                                                                                                              (values
                                                                                                                               env_2))))
                                                                                                                       (for-loop_1
                                                                                                                        env_2
                                                                                                                        rest_2
                                                                                                                        rest_3)))))))
                                                                                                           env_1))))))
                                                                                                  (for-loop_1
                                                                                                   env_0
                                                                                                   keys_0
                                                                                                   ids_0)))))
                                                                                          (for-loop_0
                                                                                           env_1
                                                                                           rest_0
                                                                                           rest_1))))))
                                                                                env_0))))))
                                                                       (for-loop_0
                                                                        (begin-unsafe
                                                                         (expand-context/outer-env
                                                                          ctx_0))
                                                                        val-keyss_0
                                                                        val-idss_1)))))
                                                               (let ((rec-env_0
                                                                      (begin
                                                                        (letrec*
                                                                         ((for-loop_0
                                                                           (|#%name|
                                                                            for-loop
                                                                            (lambda (env_0
                                                                                     lst_0
                                                                                     lst_1
                                                                                     lst_2)
                                                                              (begin
                                                                                (if (if (pair?
                                                                                         lst_0)
                                                                                      (if (pair?
                                                                                           lst_1)
                                                                                        (pair?
                                                                                         lst_2)
                                                                                        #f)
                                                                                      #f)
                                                                                  (let ((keys_0
                                                                                         (unsafe-car
                                                                                          lst_0)))
                                                                                    (let ((rest_0
                                                                                           (unsafe-cdr
                                                                                            lst_0)))
                                                                                      (let ((vals_0
                                                                                             (unsafe-car
                                                                                              lst_1)))
                                                                                        (let ((rest_1
                                                                                               (unsafe-cdr
                                                                                                lst_1)))
                                                                                          (let ((ids_0
                                                                                                 (unsafe-car
                                                                                                  lst_2)))
                                                                                            (let ((rest_2
                                                                                                   (unsafe-cdr
                                                                                                    lst_2)))
                                                                                              (let ((env_1
                                                                                                     (let ((env_1
                                                                                                            (begin
                                                                                                              (letrec*
                                                                                                               ((for-loop_1
                                                                                                                 (|#%name|
                                                                                                                  for-loop
                                                                                                                  (lambda (env_1
                                                                                                                           lst_3
                                                                                                                           lst_4
                                                                                                                           lst_5)
                                                                                                                    (begin
                                                                                                                      (if (if (pair?
                                                                                                                               lst_3)
                                                                                                                            (if (pair?
                                                                                                                                 lst_4)
                                                                                                                              (pair?
                                                                                                                               lst_5)
                                                                                                                              #f)
                                                                                                                            #f)
                                                                                                                        (let ((key_0
                                                                                                                               (unsafe-car
                                                                                                                                lst_3)))
                                                                                                                          (let ((rest_3
                                                                                                                                 (unsafe-cdr
                                                                                                                                  lst_3)))
                                                                                                                            (let ((val_0
                                                                                                                                   (unsafe-car
                                                                                                                                    lst_4)))
                                                                                                                              (let ((rest_4
                                                                                                                                     (unsafe-cdr
                                                                                                                                      lst_4)))
                                                                                                                                (let ((id_0
                                                                                                                                       (unsafe-car
                                                                                                                                        lst_5)))
                                                                                                                                  (let ((rest_5
                                                                                                                                         (unsafe-cdr
                                                                                                                                          lst_5)))
                                                                                                                                    (let ((env_2
                                                                                                                                           (let ((env_2
                                                                                                                                                  (begin
                                                                                                                                                    (maybe-install-free=id-in-context!
                                                                                                                                                     val_0
                                                                                                                                                     id_0
                                                                                                                                                     phase_0
                                                                                                                                                     ctx_0)
                                                                                                                                                    (begin-unsafe
                                                                                                                                                     (hash-set
                                                                                                                                                      env_1
                                                                                                                                                      key_0
                                                                                                                                                      val_0)))))
                                                                                                                                             (values
                                                                                                                                              env_2))))
                                                                                                                                      (for-loop_1
                                                                                                                                       env_2
                                                                                                                                       rest_3
                                                                                                                                       rest_4
                                                                                                                                       rest_5))))))))
                                                                                                                        env_1))))))
                                                                                                               (for-loop_1
                                                                                                                env_0
                                                                                                                keys_0
                                                                                                                vals_0
                                                                                                                ids_0)))))
                                                                                                       (values
                                                                                                        env_1))))
                                                                                                (for-loop_0
                                                                                                 env_1
                                                                                                 rest_0
                                                                                                 rest_1
                                                                                                 rest_2))))))))
                                                                                  env_0))))))
                                                                         (for-loop_0
                                                                          rec-val-env_0
                                                                          trans-keyss_0
                                                                          trans-valss_0
                                                                          trans-idss_0)))))
                                                                 (begin
                                                                   (if syntaxes?2_0
                                                                     (let ((obs_0
                                                                            (begin-unsafe
                                                                             (expand-context/inner-observer
                                                                              (root-expand-context/outer-inner
                                                                               ctx_0)))))
                                                                       (if obs_0
                                                                         (call-expand-observe
                                                                          obs_0
                                                                          'next-group)
                                                                         (void)))
                                                                     (void))
                                                                   (let ((expr-ctx_0
                                                                          (as-expression-context
                                                                           ctx_0)))
                                                                     (let ((orig-rrs_0
                                                                            (begin-unsafe
                                                                             (expand-context/outer-reference-records
                                                                              expr-ctx_0))))
                                                                       (let ((rec-ctx_0
                                                                              (if (expand-context/outer?
                                                                                   expr-ctx_0)
                                                                                (let ((scopes172_0
                                                                                       (if sc_0
                                                                                         (let ((scopes_0
                                                                                                (cons
                                                                                                 sc_0
                                                                                                 (begin-unsafe
                                                                                                  (expand-context/outer-scopes
                                                                                                   ctx_0)))))
                                                                                           (if rec?3_0
                                                                                             (cons
                                                                                              body-sc_0
                                                                                              scopes_0)
                                                                                             scopes_0))
                                                                                         (begin-unsafe
                                                                                          (expand-context/outer-scopes
                                                                                           ctx_0)))))
                                                                                  (let ((reference-records173_0
                                                                                         (if split-by-reference?4_0
                                                                                           (cons
                                                                                            frame-id_0
                                                                                            orig-rrs_0)
                                                                                           orig-rrs_0)))
                                                                                    (let ((binding-layer174_0
                                                                                           (if sc_0
                                                                                             (increment-binding-layer
                                                                                              (cons
                                                                                               trans-idss_0
                                                                                               val-idss_1)
                                                                                              ctx_0
                                                                                              sc_0)
                                                                                             (begin-unsafe
                                                                                              (expand-context/outer-binding-layer
                                                                                               ctx_0)))))
                                                                                      (let ((inner175_0
                                                                                             (root-expand-context/outer-inner
                                                                                              expr-ctx_0)))
                                                                                        (let ((binding-layer174_1
                                                                                               binding-layer174_0)
                                                                                              (reference-records173_1
                                                                                               reference-records173_0)
                                                                                              (scopes172_1
                                                                                               scopes172_0))
                                                                                          (expand-context/outer1.1
                                                                                           inner175_0
                                                                                           (root-expand-context/outer-post-expansion
                                                                                            expr-ctx_0)
                                                                                           (root-expand-context/outer-use-site-scopes
                                                                                            expr-ctx_0)
                                                                                           (root-expand-context/outer-frame-id
                                                                                            expr-ctx_0)
                                                                                           (expand-context/outer-context
                                                                                            expr-ctx_0)
                                                                                           rec-env_0
                                                                                           scopes172_1
                                                                                           (expand-context/outer-def-ctx-scopes
                                                                                            expr-ctx_0)
                                                                                           binding-layer174_1
                                                                                           reference-records173_1
                                                                                           (expand-context/outer-only-immediate?
                                                                                            expr-ctx_0)
                                                                                           (expand-context/outer-need-eventually-defined
                                                                                            expr-ctx_0)
                                                                                           (expand-context/outer-current-introduction-scopes
                                                                                            expr-ctx_0)
                                                                                           (expand-context/outer-current-use-scopes
                                                                                            expr-ctx_0)
                                                                                           (expand-context/outer-name
                                                                                            expr-ctx_0)))))))
                                                                                (raise-argument-error
                                                                                 'struct-copy
                                                                                 "expand-context/outer?"
                                                                                 expr-ctx_0))))
                                                                         (let ((letrec-values-id_0
                                                                                (if (not
                                                                                     (begin-unsafe
                                                                                      (expand-context/inner-to-parsed?
                                                                                       (root-expand-context/outer-inner
                                                                                        ctx_0))))
                                                                                  (if syntaxes?2_0
                                                                                    (core-id
                                                                                     'letrec-values
                                                                                     phase_0)
                                                                                    let-values112_0)
                                                                                  #f)))
                                                                           (let ((rebuild-s_0
                                                                                  (keep-as-needed.1
                                                                                   #f
                                                                                   #t
                                                                                   #f
                                                                                   ctx_0
                                                                                   s_0)))
                                                                             (let ((val-name-idss_0
                                                                                    (if (begin-unsafe
                                                                                         (expand-context/inner-to-parsed?
                                                                                          (root-expand-context/outer-inner
                                                                                           ctx_0)))
                                                                                      (reverse$1
                                                                                       (begin
                                                                                         (letrec*
                                                                                          ((for-loop_0
                                                                                            (|#%name|
                                                                                             for-loop
                                                                                             (lambda (fold-var_0
                                                                                                      lst_0)
                                                                                               (begin
                                                                                                 (if (pair?
                                                                                                      lst_0)
                                                                                                   (let ((val-ids_0
                                                                                                          (unsafe-car
                                                                                                           lst_0)))
                                                                                                     (let ((rest_0
                                                                                                            (unsafe-cdr
                                                                                                             lst_0)))
                                                                                                       (let ((fold-var_1
                                                                                                              (let ((fold-var_1
                                                                                                                     (cons
                                                                                                                      (reverse$1
                                                                                                                       (begin
                                                                                                                         (letrec*
                                                                                                                          ((for-loop_1
                                                                                                                            (|#%name|
                                                                                                                             for-loop
                                                                                                                             (lambda (fold-var_1
                                                                                                                                      lst_1)
                                                                                                                               (begin
                                                                                                                                 (if (pair?
                                                                                                                                      lst_1)
                                                                                                                                   (let ((val-id_0
                                                                                                                                          (unsafe-car
                                                                                                                                           lst_1)))
                                                                                                                                     (let ((rest_1
                                                                                                                                            (unsafe-cdr
                                                                                                                                             lst_1)))
                                                                                                                                       (let ((fold-var_2
                                                                                                                                              (let ((fold-var_2
                                                                                                                                                     (cons
                                                                                                                                                      (datum->syntax$1
                                                                                                                                                       #f
                                                                                                                                                       (syntax-e$1
                                                                                                                                                        val-id_0)
                                                                                                                                                       val-id_0
                                                                                                                                                       val-id_0)
                                                                                                                                                      fold-var_1)))
                                                                                                                                                (values
                                                                                                                                                 fold-var_2))))
                                                                                                                                         (for-loop_1
                                                                                                                                          fold-var_2
                                                                                                                                          rest_1))))
                                                                                                                                   fold-var_1))))))
                                                                                                                          (for-loop_1
                                                                                                                           null
                                                                                                                           val-ids_0))))
                                                                                                                      fold-var_0)))
                                                                                                                (values
                                                                                                                 fold-var_1))))
                                                                                                         (for-loop_0
                                                                                                          fold-var_1
                                                                                                          rest_0))))
                                                                                                   fold-var_0))))))
                                                                                          (for-loop_0
                                                                                           null
                                                                                           val-idss_1))))
                                                                                      val-idss_1)))
                                                                               (let ((get-body_0
                                                                                      (|#%name|
                                                                                       get-body
                                                                                       (lambda (rec-ctx_1)
                                                                                         (begin
                                                                                           (if (begin-unsafe
                                                                                                (expand-context/inner-parsing-expanded?
                                                                                                 (root-expand-context/outer-inner
                                                                                                  ctx_0)))
                                                                                             (reverse$1
                                                                                              (begin
                                                                                                (letrec*
                                                                                                 ((for-loop_0
                                                                                                   (|#%name|
                                                                                                    for-loop
                                                                                                    (lambda (fold-var_0
                                                                                                             lst_0)
                                                                                                      (begin
                                                                                                        (if (pair?
                                                                                                             lst_0)
                                                                                                          (let ((body_0
                                                                                                                 (unsafe-car
                                                                                                                  lst_0)))
                                                                                                            (let ((rest_0
                                                                                                                   (unsafe-cdr
                                                                                                                    lst_0)))
                                                                                                              (let ((fold-var_1
                                                                                                                     (let ((fold-var_1
                                                                                                                            (cons
                                                                                                                             (expand.1
                                                                                                                              #f
                                                                                                                              #f
                                                                                                                              body_0
                                                                                                                              rec-ctx_1)
                                                                                                                             fold-var_0)))
                                                                                                                       (values
                                                                                                                        fold-var_1))))
                                                                                                                (for-loop_0
                                                                                                                 fold-var_1
                                                                                                                 rest_0))))
                                                                                                          fold-var_0))))))
                                                                                                 (for-loop_0
                                                                                                  null
                                                                                                  bodys_1))))
                                                                                             (let ((body-ctx_0
                                                                                                    (if (expand-context/outer?
                                                                                                         rec-ctx_1)
                                                                                                      (let ((inner185_0
                                                                                                             (root-expand-context/outer-inner
                                                                                                              rec-ctx_1)))
                                                                                                        (expand-context/outer1.1
                                                                                                         inner185_0
                                                                                                         (root-expand-context/outer-post-expansion
                                                                                                          rec-ctx_1)
                                                                                                         (root-expand-context/outer-use-site-scopes
                                                                                                          rec-ctx_1)
                                                                                                         (root-expand-context/outer-frame-id
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-context
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-env
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-scopes
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-def-ctx-scopes
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-binding-layer
                                                                                                          rec-ctx_1)
                                                                                                         orig-rrs_0
                                                                                                         (expand-context/outer-only-immediate?
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-need-eventually-defined
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-current-introduction-scopes
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-current-use-scopes
                                                                                                          rec-ctx_1)
                                                                                                         (expand-context/outer-name
                                                                                                          rec-ctx_1)))
                                                                                                      (raise-argument-error
                                                                                                       'struct-copy
                                                                                                       "expand-context/outer?"
                                                                                                       rec-ctx_1))))
                                                                                               (let ((temp182_0
                                                                                                      (as-tail-context.1
                                                                                                       ctx_0
                                                                                                       body-ctx_0)))
                                                                                                 (expand-body.1
                                                                                                  rebuild-s_0
                                                                                                  #f
                                                                                                  bodys_1
                                                                                                  temp182_0)))))))))
                                                                                 (let ((result-s_0
                                                                                        (if (not
                                                                                             split-by-reference?4_0)
                                                                                          (let ((clauses_0
                                                                                                 (reverse$1
                                                                                                  (begin
                                                                                                    (letrec*
                                                                                                     ((for-loop_0
                                                                                                       (|#%name|
                                                                                                        for-loop
                                                                                                        (lambda (fold-var_0
                                                                                                                 lst_0
                                                                                                                 lst_1
                                                                                                                 lst_2
                                                                                                                 lst_3)
                                                                                                          (begin
                                                                                                            (if (if (pair?
                                                                                                                     lst_0)
                                                                                                                  (if (pair?
                                                                                                                       lst_1)
                                                                                                                    (if (pair?
                                                                                                                         lst_2)
                                                                                                                      (pair?
                                                                                                                       lst_3)
                                                                                                                      #f)
                                                                                                                    #f)
                                                                                                                  #f)
                                                                                                              (let ((ids_0
                                                                                                                     (unsafe-car
                                                                                                                      lst_0)))
                                                                                                                (let ((rest_0
                                                                                                                       (unsafe-cdr
                                                                                                                        lst_0)))
                                                                                                                  (let ((keys_0
                                                                                                                         (unsafe-car
                                                                                                                          lst_1)))
                                                                                                                    (let ((rest_1
                                                                                                                           (unsafe-cdr
                                                                                                                            lst_1)))
                                                                                                                      (let ((rhs_0
                                                                                                                             (unsafe-car
                                                                                                                              lst_2)))
                                                                                                                        (let ((rest_2
                                                                                                                               (unsafe-cdr
                                                                                                                                lst_2)))
                                                                                                                          (let ((clause_0
                                                                                                                                 (unsafe-car
                                                                                                                                  lst_3)))
                                                                                                                            (let ((rest_3
                                                                                                                                   (unsafe-cdr
                                                                                                                                    lst_3)))
                                                                                                                              (let ((fold-var_1
                                                                                                                                     (let ((fold-var_1
                                                                                                                                            (cons
                                                                                                                                             (begin
                                                                                                                                               (let ((obs_0
                                                                                                                                                      (begin-unsafe
                                                                                                                                                       (expand-context/inner-observer
                                                                                                                                                        (root-expand-context/outer-inner
                                                                                                                                                         ctx_0)))))
                                                                                                                                                 (if obs_0
                                                                                                                                                   (call-expand-observe
                                                                                                                                                    obs_0
                                                                                                                                                    'next)
                                                                                                                                                   (void)))
                                                                                                                                               (let ((exp-rhs_0
                                                                                                                                                      (let ((temp189_0
                                                                                                                                                             (if rec?3_0
                                                                                                                                                               (as-named-context
                                                                                                                                                                rec-ctx_0
                                                                                                                                                                ids_0)
                                                                                                                                                               (as-named-context
                                                                                                                                                                expr-ctx_0
                                                                                                                                                                ids_0))))
                                                                                                                                                        (expand.1
                                                                                                                                                         #f
                                                                                                                                                         #f
                                                                                                                                                         rhs_0
                                                                                                                                                         temp189_0))))
                                                                                                                                                 (if (begin-unsafe
                                                                                                                                                      (expand-context/inner-to-parsed?
                                                                                                                                                       (root-expand-context/outer-inner
                                                                                                                                                        ctx_0)))
                                                                                                                                                   (list
                                                                                                                                                    keys_0
                                                                                                                                                    exp-rhs_0)
                                                                                                                                                   (datum->syntax$1
                                                                                                                                                    #f
                                                                                                                                                    (list
                                                                                                                                                     ids_0
                                                                                                                                                     exp-rhs_0)
                                                                                                                                                    clause_0
                                                                                                                                                    clause_0))))
                                                                                                                                             fold-var_0)))
                                                                                                                                       (values
                                                                                                                                        fold-var_1))))
                                                                                                                                (for-loop_0
                                                                                                                                 fold-var_1
                                                                                                                                 rest_0
                                                                                                                                 rest_1
                                                                                                                                 rest_2
                                                                                                                                 rest_3))))))))))
                                                                                                              fold-var_0))))))
                                                                                                     (for-loop_0
                                                                                                      null
                                                                                                      val-name-idss_0
                                                                                                      val-keyss_0
                                                                                                      val-rhss_1
                                                                                                      val-clauses_0))))))
                                                                                            (let ((exp-body_0
                                                                                                   (get-body_0
                                                                                                    rec-ctx_0)))
                                                                                              (begin
                                                                                                (if frame-id_0
                                                                                                  (reference-record-clear!
                                                                                                   frame-id_0)
                                                                                                  (void))
                                                                                                (if (begin-unsafe
                                                                                                     (expand-context/inner-to-parsed?
                                                                                                      (root-expand-context/outer-inner
                                                                                                       ctx_0)))
                                                                                                  (if rec?3_0
                                                                                                    (parsed-letrec-values18.1
                                                                                                     rebuild-s_0
                                                                                                     val-name-idss_0
                                                                                                     clauses_0
                                                                                                     exp-body_0)
                                                                                                    (parsed-let-values17.1
                                                                                                     rebuild-s_0
                                                                                                     val-name-idss_0
                                                                                                     clauses_0
                                                                                                     exp-body_0))
                                                                                                  (let ((temp191_0
                                                                                                         (list*
                                                                                                          letrec-values-id_0
                                                                                                          clauses_0
                                                                                                          exp-body_0)))
                                                                                                    (rebuild.1
                                                                                                     #t
                                                                                                     rebuild-s_0
                                                                                                     temp191_0))))))
                                                                                          (expand-and-split-bindings-by-reference.1
                                                                                           rec-ctx_0
                                                                                           frame-id_0
                                                                                           get-body_0
                                                                                           syntaxes?2_0
                                                                                           rebuild-s_0
                                                                                           #t
                                                                                           #t
                                                                                           val-idss_1
                                                                                           val-keyss_0
                                                                                           val-rhss_1
                                                                                           val-clauses_0))))
                                                                                   (if (begin-unsafe
                                                                                        (expand-context/inner-to-parsed?
                                                                                         (root-expand-context/outer-inner
                                                                                          ctx_0)))
                                                                                     result-s_0
                                                                                     (attach-disappeared-transformer-bindings
                                                                                      result-s_0
                                                                                      trans-idss_0))))))))))))))))))))))))))))))))))))
                (args (raise-binding-result-arity-error 5 args)))))
             (args (raise-binding-result-arity-error 7 args))))))))))
(define effect_1922
  (begin
    (void
     (add-core-form!*
      'let-values
      (make-let-values-form.1 'prim-let-values #f #f #f)))
    (void)))
(define effect_2915
  (begin
    (void
     (add-core-form!*
      'letrec-values
      (make-let-values-form.1 'prim-letrec-values #t #f #f)))
    (void)))
(define effect_2432
  (begin
    (void
     (add-core-form!*
      'letrec-syntaxes+values
      (make-let-values-form.1 'prim-letrec-syntaxes+values #t #t #t)))
    (void)))
(define effect_2415
  (begin
    (void
     (add-core-form!*
      '|#%stratified-body|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 '|prim-#%stratified| s_0)
              (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((|#%stratified-body212_0|
                           (let ((s_2 (car s_1))) s_2)))
                      (let ((body213_0
                             (let ((s_2 (cdr s_1)))
                               (let ((s_3
                                      (if (syntax?$1 s_2)
                                        (syntax-e$1 s_2)
                                        s_2)))
                                 (let ((flat-s_0 (to-syntax-list.1 s_3)))
                                   (if (not flat-s_0)
                                     (raise-syntax-error$1 #f "bad syntax" s_0)
                                     (if (null? flat-s_0)
                                       (raise-syntax-error$1
                                        #f
                                        "bad syntax"
                                        s_0)
                                       flat-s_0)))))))
                        (let ((|#%stratified-body212_1|
                               |#%stratified-body212_0|))
                          (values |#%stratified-body212_1| body213_0))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((|#%stratified-body210_0| body211_0)
                (values #t |#%stratified-body210_0| body211_0))
               (args (raise-binding-result-arity-error 2 args)))))
           (case-lambda
            ((ok?_0 |#%stratified-body210_0| body211_0)
             (let ((rebuild-s_0 (keep-as-needed.1 #f #t #f ctx_0 s_0)))
               (let ((exp-body_0
                      (expand-body.1 rebuild-s_0 #t body211_0 ctx_0)))
                 (if (begin-unsafe
                      (expand-context/inner-to-parsed?
                       (root-expand-context/outer-inner ctx_0)))
                   (parsed-begin12.1 rebuild-s_0 exp-body_0)
                   (let ((temp222_0
                          (if (null? (cdr exp-body_0))
                            (car exp-body_0)
                            (list*
                             (core-id
                              'begin
                              (begin-unsafe
                               (expand-context/inner-phase
                                (root-expand-context/outer-inner ctx_0))))
                             exp-body_0))))
                     (rebuild.1 #t rebuild-s_0 temp222_0))))))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2717
  (begin
    (void
     (add-core-form!*
      '|#%datum|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 '|prim-#%datum| s_0) (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((|#%datum225_0| (let ((s_2 (car s_1))) s_2)))
                      (let ((datum226_0 (let ((s_2 (cdr s_1))) s_2)))
                        (let ((|#%datum225_1| |#%datum225_0|))
                          (values |#%datum225_1| datum226_0))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((|#%datum223_0| datum224_0)
                (values #t |#%datum223_0| datum224_0))
               (args (raise-binding-result-arity-error 2 args)))))
           (case-lambda
            ((ok?_0 |#%datum223_0| datum224_0)
             (begin
               (if (if (syntax?$1 datum224_0)
                     (keyword? (syntax-e$1 datum224_0))
                     #f)
                 (raise-syntax-error$1
                  '|#%datum|
                  "keyword misused as an expression"
                  #f
                  datum224_0)
                 (void))
               (let ((phase_0
                      (begin-unsafe
                       (expand-context/inner-phase
                        (root-expand-context/outer-inner ctx_0)))))
                 (if (if (begin-unsafe
                          (expand-context/inner-to-parsed?
                           (root-expand-context/outer-inner ctx_0)))
                       (let ((fs_0
                              (begin-unsafe
                               (expand-context/inner-stops
                                (root-expand-context/outer-inner ctx_0)))))
                         (begin-unsafe (eq? fs_0 empty-free-id-set)))
                       #f)
                   (parsed-quote14.1
                    (begin-unsafe #f)
                    (syntax->datum$1 datum224_0))
                   (syntax-track-origin$1
                    (let ((temp228_0
                           (list (core-id 'quote phase_0) datum224_0)))
                      (rebuild.1 #f s_0 temp228_0))
                    s_0
                    |#%datum223_0|)))))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2574
  (begin
    (void
     (add-core-form!*
      '|#%app|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 '|prim-#%app| s_0) (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((|#%app232_0| (let ((s_2 (car s_1))) s_2)))
                      (let ((e233_0
                             (let ((s_2 (cdr s_1)))
                               (let ((s_3
                                      (if (syntax?$1 s_2)
                                        (syntax-e$1 s_2)
                                        s_2)))
                                 (let ((flat-s_0 (to-syntax-list.1 s_3)))
                                   (if (not flat-s_0)
                                     (raise-syntax-error$1 #f "bad syntax" s_0)
                                     flat-s_0))))))
                        (let ((|#%app232_1| |#%app232_0|))
                          (values |#%app232_1| e233_0))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((|#%app230_0| e231_0) (values #t |#%app230_0| e231_0))
               (args (raise-binding-result-arity-error 2 args)))))
           (case-lambda
            ((ok?_0 |#%app230_0| e231_0)
             (if (null? e231_0)
               (let ((phase_0
                      (begin-unsafe
                       (expand-context/inner-phase
                        (root-expand-context/outer-inner ctx_0)))))
                 (if (begin-unsafe
                      (expand-context/inner-to-parsed?
                       (root-expand-context/outer-inner ctx_0)))
                   (parsed-quote14.1 (begin-unsafe #f) null)
                   (let ((temp235_0 (list (core-id 'quote phase_0) null)))
                     (rebuild.1 #t s_0 temp235_0))))
               (let ((keep-for-parsed?_0 keep-source-locations?))
                 (let ((rebuild-s_0
                        (keep-as-needed.1 #f #f keep-for-parsed?_0 ctx_0 s_0)))
                   (let ((prefixless_0 (cdr (syntax-e$1 s_0))))
                     (let ((rebuild-prefixless_0
                            (if (syntax?$1 prefixless_0)
                              (keep-as-needed.1
                               #f
                               #f
                               keep-for-parsed?_0
                               ctx_0
                               prefixless_0)
                              #f)))
                       (let ((expr-ctx_0 (as-expression-context ctx_0)))
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     expr-ctx_0)))))
                             (if obs_0
                               (call-expand-observe obs_0 'next)
                               (void)))
                           (let ((rest-es_0 (cdr e231_0)))
                             (let ((exp-rator_0
                                    (let ((temp242_0 (car e231_0)))
                                      (expand.1 #f #f temp242_0 expr-ctx_0))))
                               (let ((exp-es_0
                                      (reverse$1
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (fold-var_0 lst_0)
                                               (begin
                                                 (if (pair? lst_0)
                                                   (let ((e_0
                                                          (unsafe-car lst_0)))
                                                     (let ((rest_0
                                                            (unsafe-cdr
                                                             lst_0)))
                                                       (let ((fold-var_1
                                                              (let ((fold-var_1
                                                                     (cons
                                                                      (begin
                                                                        (let ((obs_0
                                                                               (begin-unsafe
                                                                                (expand-context/inner-observer
                                                                                 (root-expand-context/outer-inner
                                                                                  expr-ctx_0)))))
                                                                          (if obs_0
                                                                            (call-expand-observe
                                                                             obs_0
                                                                             'next)
                                                                            (void)))
                                                                        (expand.1
                                                                         #f
                                                                         #f
                                                                         e_0
                                                                         expr-ctx_0))
                                                                      fold-var_0)))
                                                                (values
                                                                 fold-var_1))))
                                                         (for-loop_0
                                                          fold-var_1
                                                          rest_0))))
                                                   fold-var_0))))))
                                          (for-loop_0 null rest-es_0))))))
                                 (if (begin-unsafe
                                      (expand-context/inner-to-parsed?
                                       (root-expand-context/outer-inner
                                        ctx_0)))
                                   (parsed-app7.1
                                    (if rebuild-prefixless_0
                                      rebuild-prefixless_0
                                      rebuild-s_0)
                                    exp-rator_0
                                    exp-es_0)
                                   (let ((exp-es_1
                                          (cons exp-rator_0 exp-es_0)))
                                     (let ((es_0
                                            (if rebuild-prefixless_0
                                              (rebuild.1
                                               #t
                                               rebuild-prefixless_0
                                               exp-es_1)
                                              exp-es_1)))
                                       (let ((temp247_0
                                              (cons |#%app230_0| es_0)))
                                         (rebuild.1
                                          #t
                                          rebuild-s_0
                                          temp247_0))))))))))))))))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2803
  (begin
    (void
     (add-core-form!*
      'quote
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-quote #f) (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((quote252_0 (let ((s_2 (car s_1))) s_2)))
                      (let ((datum253_0
                             (let ((s_2 (cdr s_1)))
                               (let ((s_3
                                      (if (syntax?$1 s_2)
                                        (syntax-e$1 s_2)
                                        s_2)))
                                 (if (pair? s_3)
                                   (let ((datum254_0
                                          (let ((s_4 (car s_3))) s_4)))
                                     (call-with-values
                                      (lambda ()
                                        (let ((s_4 (cdr s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (if (null? s_5)
                                              (values)
                                              (raise-syntax-error$1
                                               #f
                                               "bad syntax"
                                               s_0)))))
                                      (case-lambda
                                       (()
                                        (let ((datum254_1 datum254_0))
                                          (values datum254_1)))
                                       (args
                                        (raise-binding-result-arity-error
                                         0
                                         args)))))
                                   (raise-syntax-error$1
                                    #f
                                    "bad syntax"
                                    s_0))))))
                        (let ((quote252_1 quote252_0))
                          (values quote252_1 datum253_0))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((quote250_0 datum251_0) (values #t quote250_0 datum251_0))
               (args (raise-binding-result-arity-error 2 args)))))
           (case-lambda
            ((ok?_0 quote250_0 datum251_0)
             (if (begin-unsafe
                  (expand-context/inner-to-parsed?
                   (root-expand-context/outer-inner ctx_0)))
               (parsed-quote14.1
                (begin-unsafe #f)
                (syntax->datum$1 datum251_0))
               s_0))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2401
  (begin
    (void
     (add-core-form!*
      'quote-syntax
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-quote-syntax s_0)
              (void)))
          (call-with-values
           (lambda ()
             (if (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                   (if (pair? s_1)
                     (if (let ((s_2 (car s_1))) #t)
                       (let ((s_2 (cdr s_1)))
                         (let ((s_3 (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                           (if (pair? s_3)
                             (if (let ((s_4 (car s_3))) #t)
                               (let ((s_4 (cdr s_3)))
                                 (let ((s_5
                                        (if (syntax?$1 s_4)
                                          (syntax-e$1 s_4)
                                          s_4)))
                                   (if (pair? s_5)
                                     (if (let ((s_6 (car s_5)))
                                           (let ((s_7
                                                  (if (syntax?$1 s_6)
                                                    (syntax-e$1 s_6)
                                                    s_6)))
                                             (eq? kw2186 s_7)))
                                       (let ((s_6 (cdr s_5)))
                                         (let ((s_7
                                                (if (syntax?$1 s_6)
                                                  (syntax-e$1 s_6)
                                                  s_6)))
                                           (null? s_7)))
                                       #f)
                                     #f)))
                               #f)
                             #f)))
                       #f)
                     #f))
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (let ((quote-syntax257_0 (let ((s_2 (car s_1))) s_2)))
                      (let ((datum258_0
                             (let ((s_2 (cdr s_1)))
                               (let ((s_3
                                      (if (syntax?$1 s_2)
                                        (syntax-e$1 s_2)
                                        s_2)))
                                 (let ((datum259_0
                                        (let ((s_4 (car s_3))) s_4)))
                                   (call-with-values
                                    (lambda ()
                                      (let ((s_4 (cdr s_3)))
                                        (let ((s_5
                                               (if (syntax?$1 s_4)
                                                 (syntax-e$1 s_4)
                                                 s_4)))
                                          (call-with-values
                                           (lambda ()
                                             (let ((s_6 (car s_5)))
                                               (let ((s_7
                                                      (if (syntax?$1 s_6)
                                                        (syntax-e$1 s_6)
                                                        s_6)))
                                                 (values))))
                                           (case-lambda
                                            (()
                                             (call-with-values
                                              (lambda ()
                                                (let ((s_6 (cdr s_5)))
                                                  (let ((s_7
                                                         (if (syntax?$1 s_6)
                                                           (syntax-e$1 s_6)
                                                           s_6)))
                                                    (values))))
                                              (case-lambda
                                               (() (let () (values)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 0
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              0
                                              args)))))))
                                    (case-lambda
                                     (()
                                      (let ((datum259_1 datum259_0))
                                        (values datum259_1)))
                                     (args
                                      (raise-binding-result-arity-error
                                       0
                                       args)))))))))
                        (let ((quote-syntax257_1 quote-syntax257_0))
                          (values quote-syntax257_1 datum258_0))))))
                (case-lambda
                 ((quote-syntax255_0 datum256_0)
                  (values #t quote-syntax255_0 datum256_0))
                 (args (raise-binding-result-arity-error 2 args))))
               (values #f #f #f)))
           (case-lambda
            ((ok?_0 quote-syntax255_0 datum256_0)
             (call-with-values
              (lambda ()
                (if (if (not ok?_0) #t #f)
                  (call-with-values
                   (lambda ()
                     (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                       (if (pair? s_1)
                         (let ((quote-syntax262_0 (let ((s_2 (car s_1))) s_2)))
                           (let ((datum263_0
                                  (let ((s_2 (cdr s_1)))
                                    (let ((s_3
                                           (if (syntax?$1 s_2)
                                             (syntax-e$1 s_2)
                                             s_2)))
                                      (if (pair? s_3)
                                        (let ((datum264_0
                                               (let ((s_4 (car s_3))) s_4)))
                                          (call-with-values
                                           (lambda ()
                                             (let ((s_4 (cdr s_3)))
                                               (let ((s_5
                                                      (if (syntax?$1 s_4)
                                                        (syntax-e$1 s_4)
                                                        s_4)))
                                                 (if (null? s_5)
                                                   (values)
                                                   (raise-syntax-error$1
                                                    #f
                                                    "bad syntax"
                                                    s_0)))))
                                           (case-lambda
                                            (()
                                             (let ((datum264_1 datum264_0))
                                               (values datum264_1)))
                                            (args
                                             (raise-binding-result-arity-error
                                              0
                                              args)))))
                                        (raise-syntax-error$1
                                         #f
                                         "bad syntax"
                                         s_0))))))
                             (let ((quote-syntax262_1 quote-syntax262_0))
                               (values quote-syntax262_1 datum263_0))))
                         (raise-syntax-error$1 #f "bad syntax" s_0))))
                   (case-lambda
                    ((quote-syntax260_0 datum261_0)
                     (values #t quote-syntax260_0 datum261_0))
                    (args (raise-binding-result-arity-error 2 args))))
                  (values #f #f #f)))
              (case-lambda
               ((ok?_1 quote-syntax260_0 datum261_0)
                (if ok?_0
                  (begin
                    (reference-records-all-used!
                     (begin-unsafe
                      (expand-context/outer-reference-records ctx_0)))
                    (call-with-values
                     (lambda ()
                       (call-with-values
                        (lambda ()
                          (let ((s_1
                                 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                            (if (pair? s_1)
                              (let ((_0 (let ((s_2 (car s_1))) s_2)))
                                (call-with-values
                                 (lambda ()
                                   (let ((s_2 (cdr s_1)))
                                     (let ((s_3
                                            (if (syntax?$1 s_2)
                                              (syntax-e$1 s_2)
                                              s_2)))
                                       (if (pair? s_3)
                                         (let ((_1
                                                (let ((s_4 (car s_3))) s_4)))
                                           (let ((kw272_0
                                                  (let ((s_4 (cdr s_3)))
                                                    (let ((s_5
                                                           (if (syntax?$1 s_4)
                                                             (syntax-e$1 s_4)
                                                             s_4)))
                                                      (if (pair? s_5)
                                                        (let ((kw273_0
                                                               (let ((s_6
                                                                      (car
                                                                       s_5)))
                                                                 s_6)))
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((s_6
                                                                    (cdr s_5)))
                                                               (let ((s_7
                                                                      (if (syntax?$1
                                                                           s_6)
                                                                        (syntax-e$1
                                                                         s_6)
                                                                        s_6)))
                                                                 (if (null?
                                                                      s_7)
                                                                   (values)
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    s_0)))))
                                                           (case-lambda
                                                            (()
                                                             (let ((kw273_1
                                                                    kw273_0))
                                                               (values
                                                                kw273_1)))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              0
                                                              args)))))
                                                        (raise-syntax-error$1
                                                         #f
                                                         "bad syntax"
                                                         s_0))))))
                                             (let ((_2 _1))
                                               (values _2 kw272_0))))
                                         (raise-syntax-error$1
                                          #f
                                          "bad syntax"
                                          s_0)))))
                                 (case-lambda
                                  ((_1 kw270_0)
                                   (let ((_2 _0)) (values _2 _1 kw270_0)))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))
                              (raise-syntax-error$1 #f "bad syntax" s_0))))
                        (case-lambda
                         ((_0 _1 kw267_0) (values #t _0 _1 kw267_0))
                         (args (raise-binding-result-arity-error 3 args)))))
                     (case-lambda
                      ((ok?_2 _0 _1 kw267_0)
                       (if (begin-unsafe
                            (expand-context/inner-to-parsed?
                             (root-expand-context/outer-inner ctx_0)))
                         (parsed-quote-syntax15.1 (begin-unsafe #f) datum256_0)
                         (let ((temp275_0
                                (list quote-syntax255_0 datum256_0 kw267_0)))
                           (rebuild.1 #t s_0 temp275_0))))
                      (args (raise-binding-result-arity-error 4 args)))))
                  (let ((use-site-scopes_0
                         (begin-unsafe
                          (root-expand-context/outer-use-site-scopes ctx_0))))
                    (let ((datum-s_0
                           (let ((app_0
                                  (remove-scopes
                                   datum261_0
                                   (begin-unsafe
                                    (expand-context/outer-scopes ctx_0)))))
                             (remove-scopes
                              app_0
                              (if use-site-scopes_0
                                (unbox use-site-scopes_0)
                                '())))))
                      (if (if (begin-unsafe
                               (expand-context/inner-to-parsed?
                                (root-expand-context/outer-inner ctx_0)))
                            (let ((fs_0
                                   (begin-unsafe
                                    (expand-context/inner-stops
                                     (root-expand-context/outer-inner
                                      ctx_0)))))
                              (begin-unsafe (eq? fs_0 empty-free-id-set)))
                            #f)
                        (parsed-quote-syntax15.1 (begin-unsafe #f) datum-s_0)
                        (let ((temp277_0 (list quote-syntax260_0 datum-s_0)))
                          (rebuild.1 #t s_0 temp277_0)))))))
               (args (raise-binding-result-arity-error 3 args)))))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2524
  (begin
    (void
     (add-core-form!*
      'if
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-if s_0) (void)))
          (call-with-values
           (lambda ()
             (if (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                   (if (pair? s_1)
                     (if (let ((s_2 (car s_1))) #t)
                       (let ((s_2 (cdr s_1)))
                         (let ((s_3 (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                           (if (pair? s_3)
                             (if (let ((s_4 (car s_3))) #t)
                               (let ((s_4 (cdr s_3)))
                                 (let ((s_5
                                        (if (syntax?$1 s_4)
                                          (syntax-e$1 s_4)
                                          s_4)))
                                   (if (pair? s_5)
                                     (if (let ((s_6 (car s_5))) #t)
                                       (let ((s_6 (cdr s_5)))
                                         (let ((s_7
                                                (if (syntax?$1 s_6)
                                                  (syntax-e$1 s_6)
                                                  s_6)))
                                           (null? s_7)))
                                       #f)
                                     #f)))
                               #f)
                             #f)))
                       #f)
                     #f))
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (let ((_0 (let ((s_2 (car s_1))) s_2)))
                      (call-with-values
                       (lambda ()
                         (let ((s_2 (cdr s_1)))
                           (let ((s_3
                                  (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                             (let ((_1 (let ((s_4 (car s_3))) s_4)))
                               (let ((_2
                                      (let ((s_4 (cdr s_3)))
                                        (let ((s_5
                                               (if (syntax?$1 s_4)
                                                 (syntax-e$1 s_4)
                                                 s_4)))
                                          (let ((_2
                                                 (let ((s_6 (car s_5))) s_6)))
                                            (call-with-values
                                             (lambda ()
                                               (let ((s_6 (cdr s_5)))
                                                 (let ((s_7
                                                        (if (syntax?$1 s_6)
                                                          (syntax-e$1 s_6)
                                                          s_6)))
                                                   (values))))
                                             (case-lambda
                                              (() (let ((_3 _2)) (values _3)))
                                              (args
                                               (raise-binding-result-arity-error
                                                0
                                                args)))))))))
                                 (let ((_3 _1)) (values _3 _2)))))))
                       (case-lambda
                        ((_1 _2) (let ((_3 _0)) (values _3 _1 _2)))
                        (args (raise-binding-result-arity-error 2 args)))))))
                (case-lambda
                 ((_0 _1 _2) (values #t _0 _1 _2))
                 (args (raise-binding-result-arity-error 3 args))))
               (values #f #f #f #f)))
           (case-lambda
            ((ok?_0 _0 _1 _2)
             (begin
               (if ok?_0
                 (raise-syntax-error$1 #f "missing an \"else\" expression" s_0)
                 (void))
               (call-with-values
                (lambda ()
                  (call-with-values
                   (lambda ()
                     (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                       (if (pair? s_1)
                         (let ((if291_0 (let ((s_2 (car s_1))) s_2)))
                           (call-with-values
                            (lambda ()
                              (let ((s_2 (cdr s_1)))
                                (let ((s_3
                                       (if (syntax?$1 s_2)
                                         (syntax-e$1 s_2)
                                         s_2)))
                                  (if (pair? s_3)
                                    (let ((tst295_0
                                           (let ((s_4 (car s_3))) s_4)))
                                      (call-with-values
                                       (lambda ()
                                         (let ((s_4 (cdr s_3)))
                                           (let ((s_5
                                                  (if (syntax?$1 s_4)
                                                    (syntax-e$1 s_4)
                                                    s_4)))
                                             (if (pair? s_5)
                                               (let ((thn298_0
                                                      (let ((s_6 (car s_5)))
                                                        s_6)))
                                                 (let ((els299_0
                                                        (let ((s_6 (cdr s_5)))
                                                          (let ((s_7
                                                                 (if (syntax?$1
                                                                      s_6)
                                                                   (syntax-e$1
                                                                    s_6)
                                                                   s_6)))
                                                            (if (pair? s_7)
                                                              (let ((els300_0
                                                                     (let ((s_8
                                                                            (car
                                                                             s_7)))
                                                                       s_8)))
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_8
                                                                          (cdr
                                                                           s_7)))
                                                                     (let ((s_9
                                                                            (if (syntax?$1
                                                                                 s_8)
                                                                              (syntax-e$1
                                                                               s_8)
                                                                              s_8)))
                                                                       (if (null?
                                                                            s_9)
                                                                         (values)
                                                                         (raise-syntax-error$1
                                                                          #f
                                                                          "bad syntax"
                                                                          s_0)))))
                                                                 (case-lambda
                                                                  (()
                                                                   (let ((els300_1
                                                                          els300_0))
                                                                     (values
                                                                      els300_1)))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    0
                                                                    args)))))
                                                              (raise-syntax-error$1
                                                               #f
                                                               "bad syntax"
                                                               s_0))))))
                                                   (let ((thn298_1 thn298_0))
                                                     (values
                                                      thn298_1
                                                      els299_0))))
                                               (raise-syntax-error$1
                                                #f
                                                "bad syntax"
                                                s_0)))))
                                       (case-lambda
                                        ((thn296_0 els297_0)
                                         (let ((tst295_1 tst295_0))
                                           (values
                                            tst295_1
                                            thn296_0
                                            els297_0)))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))
                                    (raise-syntax-error$1
                                     #f
                                     "bad syntax"
                                     s_0)))))
                            (case-lambda
                             ((tst292_0 thn293_0 els294_0)
                              (let ((if291_1 if291_0))
                                (values if291_1 tst292_0 thn293_0 els294_0)))
                             (args
                              (raise-binding-result-arity-error 3 args)))))
                         (raise-syntax-error$1 #f "bad syntax" s_0))))
                   (case-lambda
                    ((if287_0 tst288_0 thn289_0 els290_0)
                     (values #t if287_0 tst288_0 thn289_0 els290_0))
                    (args (raise-binding-result-arity-error 4 args)))))
                (case-lambda
                 ((ok?_1 if287_0 tst288_0 thn289_0 els290_0)
                  (let ((expr-ctx_0 (as-expression-context ctx_0)))
                    (let ((tail-ctx_0 (as-tail-context.1 ctx_0 expr-ctx_0)))
                      (let ((rebuild-s_0
                             (keep-as-needed.1 #f #f #f ctx_0 s_0)))
                        (let ((exp-tst_0 (expand.1 #f #f tst288_0 expr-ctx_0)))
                          (begin
                            (let ((obs_0
                                   (begin-unsafe
                                    (expand-context/inner-observer
                                     (root-expand-context/outer-inner
                                      ctx_0)))))
                              (if obs_0
                                (call-expand-observe obs_0 'next)
                                (void)))
                            (let ((exp-thn_0
                                   (expand.1 #f #f thn289_0 tail-ctx_0)))
                              (begin
                                (let ((obs_0
                                       (begin-unsafe
                                        (expand-context/inner-observer
                                         (root-expand-context/outer-inner
                                          ctx_0)))))
                                  (if obs_0
                                    (call-expand-observe obs_0 'next)
                                    (void)))
                                (let ((exp-els_0
                                       (expand.1 #f #f els290_0 tail-ctx_0)))
                                  (if (begin-unsafe
                                       (expand-context/inner-to-parsed?
                                        (root-expand-context/outer-inner
                                         ctx_0)))
                                    (parsed-if8.1
                                     rebuild-s_0
                                     exp-tst_0
                                     exp-thn_0
                                     exp-els_0)
                                    (let ((temp312_0
                                           (list
                                            if287_0
                                            exp-tst_0
                                            exp-thn_0
                                            exp-els_0)))
                                      (rebuild.1
                                       #t
                                       rebuild-s_0
                                       temp312_0))))))))))))
                 (args (raise-binding-result-arity-error 5 args))))))
            (args (raise-binding-result-arity-error 4 args))))))))
    (void)))
(define effect_2066
  (begin
    (void
     (add-core-form!*
      'with-continuation-mark
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-with-continuation-mark s_0)
              (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((with-continuation-mark317_0
                           (let ((s_2 (car s_1))) s_2)))
                      (call-with-values
                       (lambda ()
                         (let ((s_2 (cdr s_1)))
                           (let ((s_3
                                  (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                             (if (pair? s_3)
                               (let ((key321_0 (let ((s_4 (car s_3))) s_4)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((s_4 (cdr s_3)))
                                      (let ((s_5
                                             (if (syntax?$1 s_4)
                                               (syntax-e$1 s_4)
                                               s_4)))
                                        (if (pair? s_5)
                                          (let ((val324_0
                                                 (let ((s_6 (car s_5))) s_6)))
                                            (let ((body325_0
                                                   (let ((s_6 (cdr s_5)))
                                                     (let ((s_7
                                                            (if (syntax?$1 s_6)
                                                              (syntax-e$1 s_6)
                                                              s_6)))
                                                       (if (pair? s_7)
                                                         (let ((body326_0
                                                                (let ((s_8
                                                                       (car
                                                                        s_7)))
                                                                  s_8)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((s_8
                                                                     (cdr
                                                                      s_7)))
                                                                (let ((s_9
                                                                       (if (syntax?$1
                                                                            s_8)
                                                                         (syntax-e$1
                                                                          s_8)
                                                                         s_8)))
                                                                  (if (null?
                                                                       s_9)
                                                                    (values)
                                                                    (raise-syntax-error$1
                                                                     #f
                                                                     "bad syntax"
                                                                     s_0)))))
                                                            (case-lambda
                                                             (()
                                                              (let ((body326_1
                                                                     body326_0))
                                                                (values
                                                                 body326_1)))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               0
                                                               args)))))
                                                         (raise-syntax-error$1
                                                          #f
                                                          "bad syntax"
                                                          s_0))))))
                                              (let ((val324_1 val324_0))
                                                (values val324_1 body325_0))))
                                          (raise-syntax-error$1
                                           #f
                                           "bad syntax"
                                           s_0)))))
                                  (case-lambda
                                   ((val322_0 body323_0)
                                    (let ((key321_1 key321_0))
                                      (values key321_1 val322_0 body323_0)))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))
                               (raise-syntax-error$1 #f "bad syntax" s_0)))))
                       (case-lambda
                        ((key318_0 val319_0 body320_0)
                         (let ((with-continuation-mark317_1
                                with-continuation-mark317_0))
                           (values
                            with-continuation-mark317_1
                            key318_0
                            val319_0
                            body320_0)))
                        (args (raise-binding-result-arity-error 3 args)))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((with-continuation-mark313_0 key314_0 val315_0 body316_0)
                (values
                 #t
                 with-continuation-mark313_0
                 key314_0
                 val315_0
                 body316_0))
               (args (raise-binding-result-arity-error 4 args)))))
           (case-lambda
            ((ok?_0 with-continuation-mark313_0 key314_0 val315_0 body316_0)
             (let ((expr-ctx_0 (as-expression-context ctx_0)))
               (let ((rebuild-s_0 (keep-as-needed.1 #f #f #f ctx_0 s_0)))
                 (let ((exp-key_0 (expand.1 #f #f key314_0 expr-ctx_0)))
                   (begin
                     (let ((obs_0
                            (begin-unsafe
                             (expand-context/inner-observer
                              (root-expand-context/outer-inner ctx_0)))))
                       (if obs_0 (call-expand-observe obs_0 'next) (void)))
                     (let ((exp-val_0 (expand.1 #f #f val315_0 expr-ctx_0)))
                       (begin
                         (let ((obs_0
                                (begin-unsafe
                                 (expand-context/inner-observer
                                  (root-expand-context/outer-inner ctx_0)))))
                           (if obs_0 (call-expand-observe obs_0 'next) (void)))
                         (let ((exp-body_0
                                (let ((temp334_0
                                       (as-tail-context.1 ctx_0 expr-ctx_0)))
                                  (expand.1 #f #f body316_0 temp334_0))))
                           (if (begin-unsafe
                                (expand-context/inner-to-parsed?
                                 (root-expand-context/outer-inner ctx_0)))
                             (parsed-with-continuation-mark10.1
                              rebuild-s_0
                              exp-key_0
                              exp-val_0
                              exp-body_0)
                             (let ((temp338_0
                                    (list
                                     with-continuation-mark313_0
                                     exp-key_0
                                     exp-val_0
                                     exp-body_0)))
                               (rebuild.1 #t rebuild-s_0 temp338_0)))))))))))
            (args (raise-binding-result-arity-error 5 args))))))))
    (void)))
(define make-begin.1
  (|#%name|
   make-begin
   (lambda (last-is-tail?10_0 log-tag12_0 parsed-begin13_0)
     (begin
       (lambda (s_0 ctx_0)
         (begin
           (let ((obs_0
                  (begin-unsafe
                   (expand-context/inner-observer
                    (root-expand-context/outer-inner ctx_0)))))
             (if obs_0 (call-expand-observe obs_0 log-tag12_0 s_0) (void)))
           (call-with-values
            (lambda ()
              (call-with-values
               (lambda ()
                 (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                   (if (pair? s_1)
                     (let ((begin341_0 (let ((s_2 (car s_1))) s_2)))
                       (let ((e342_0
                              (let ((s_2 (cdr s_1)))
                                (let ((s_3
                                       (if (syntax?$1 s_2)
                                         (syntax-e$1 s_2)
                                         s_2)))
                                  (let ((flat-s_0 (to-syntax-list.1 s_3)))
                                    (if (not flat-s_0)
                                      (raise-syntax-error$1
                                       #f
                                       "bad syntax"
                                       s_0)
                                      (if (null? flat-s_0)
                                        (raise-syntax-error$1
                                         #f
                                         "bad syntax"
                                         s_0)
                                        flat-s_0)))))))
                         (let ((begin341_1 begin341_0))
                           (values begin341_1 e342_0))))
                     (raise-syntax-error$1 #f "bad syntax" s_0))))
               (case-lambda
                ((begin339_0 e340_0) (values #t begin339_0 e340_0))
                (args (raise-binding-result-arity-error 2 args)))))
            (case-lambda
             ((ok?_0 begin339_0 e340_0)
              (let ((expr-ctx_0
                     (if last-is-tail?10_0
                       (as-begin-expression-context ctx_0)
                       (as-expression-context ctx_0))))
                (let ((rebuild-s_0 (keep-as-needed.1 #f #f #f ctx_0 s_0)))
                  (let ((exp-es_0
                         (letrec*
                          ((loop_0
                            (|#%name|
                             loop
                             (lambda (es_0)
                               (begin
                                 (if (null? es_0)
                                   null
                                   (let ((rest-es_0 (cdr es_0)))
                                     (begin
                                       (let ((obs_0
                                              (begin-unsafe
                                               (expand-context/inner-observer
                                                (root-expand-context/outer-inner
                                                 ctx_0)))))
                                         (if obs_0
                                           (call-expand-observe obs_0 'next)
                                           (void)))
                                       (let ((app_0
                                              (let ((temp345_0 (car es_0)))
                                                (let ((temp346_0
                                                       (if (if last-is-tail?10_0
                                                             (null? rest-es_0)
                                                             #f)
                                                         (as-tail-context.1
                                                          ctx_0
                                                          expr-ctx_0)
                                                         expr-ctx_0)))
                                                  (let ((temp345_1 temp345_0))
                                                    (expand.1
                                                     #f
                                                     #f
                                                     temp345_1
                                                     temp346_0))))))
                                         (cons
                                          app_0
                                          (loop_0 rest-es_0)))))))))))
                          (loop_0 e340_0))))
                    (if (begin-unsafe
                         (expand-context/inner-to-parsed?
                          (root-expand-context/outer-inner ctx_0)))
                      (|#%app| parsed-begin13_0 rebuild-s_0 exp-es_0)
                      (let ((temp350_0 (cons begin339_0 exp-es_0)))
                        (rebuild.1 #t rebuild-s_0 temp350_0)))))))
             (args (raise-binding-result-arity-error 3 args))))))))))
(define effect_2648
  (begin
    (void
     (add-core-form!*
      'begin
      (let ((nonempty-begin_0 (make-begin.1 #t 'prim-begin parsed-begin12.1)))
        (lambda (s_0 ctx_0)
          (let ((context_0
                 (begin-unsafe (expand-context/outer-context ctx_0))))
            (if (let ((or-part_0 (eq? context_0 'top-level)))
                  (if or-part_0 or-part_0 (eq? context_0 'module)))
              (call-with-values
               (lambda ()
                 (if (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                       (if (pair? s_1)
                         (if (let ((s_2 (car s_1))) #t)
                           (let ((s_2 (cdr s_1)))
                             (let ((s_3
                                    (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                               (null? s_3)))
                           #f)
                         #f))
                   (let ((begin354_0
                          (let ((s_1
                                 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                            (let ((begin355_0 (let ((s_2 (car s_1))) s_2)))
                              (call-with-values
                               (lambda ()
                                 (let ((s_2 (cdr s_1)))
                                   (let ((s_3
                                          (if (syntax?$1 s_2)
                                            (syntax-e$1 s_2)
                                            s_2)))
                                     (values))))
                               (case-lambda
                                (()
                                 (let ((begin355_1 begin355_0))
                                   (values begin355_1)))
                                (args
                                 (raise-binding-result-arity-error
                                  0
                                  args))))))))
                     (values #t begin354_0))
                   (values #f #f)))
               (case-lambda
                ((ok?_0 begin354_0)
                 (if ok?_0
                   (if (begin-unsafe
                        (expand-context/inner-to-parsed?
                         (root-expand-context/outer-inner ctx_0)))
                     (parsed-begin12.1
                      (keep-as-needed.1 #f #f #f ctx_0 s_0)
                      '())
                     s_0)
                   (|#%app| nonempty-begin_0 s_0 ctx_0)))
                (args (raise-binding-result-arity-error 2 args))))
              (|#%app| nonempty-begin_0 s_0 ctx_0)))))))
    (void)))
(define effect_2641
  (begin
    (void
     (add-core-form!*
      'begin0
      (make-begin.1 #f 'prim-begin0 parsed-begin013.1)))
    (void)))
(define register-eventual-variable!?
  (lambda (id_0 ctx_0)
    (if (if (begin-unsafe (expand-context/outer-need-eventually-defined ctx_0))
          (>=
           (begin-unsafe
            (expand-context/inner-phase
             (root-expand-context/outer-inner ctx_0)))
           1)
          #f)
      (begin
        (let ((ht_0
               (begin-unsafe
                (expand-context/outer-need-eventually-defined ctx_0))))
          (let ((key_0
                 (begin-unsafe
                  (expand-context/inner-phase
                   (root-expand-context/outer-inner ctx_0)))))
            (let ((xform_0 (lambda (l_0) (cons id_0 l_0))))
              (begin-unsafe
               (do-hash-update
                'hash-update!
                #t
                hash-set!
                ht_0
                key_0
                xform_0
                null)))))
        #t)
      #f)))
(define check-top-binding-is-variable
  (lambda (ctx_0 b_0 id_0 s_0)
    (call-with-values
     (lambda ()
       (let ((temp365_0
              (begin-unsafe
               (expand-context/inner-in-local-expand?
                (root-expand-context/outer-inner ctx_0)))))
         (lookup.1 s_0 temp365_0 b_0 ctx_0 id_0)))
     (case-lambda
      ((t_0 primitive?_0 insp-of-t_0 protected?_0)
       (begin
         (if (let ((or-part_0 (variable? t_0)))
               (if or-part_0 or-part_0 (1/rename-transformer? t_0)))
           (void)
           (raise-syntax-error$1
            #f
            "identifier does not refer to a variable"
            id_0
            s_0))
         (values t_0 primitive?_0)))
      (args (raise-binding-result-arity-error 4 args))))))
(define effect_2399
  (begin
    (void
     (add-core-form!*
      '|#%top|
      (let ((...nder/expand/expr.rkt:602:1_0
             (|#%name|
              ...nder/expand/expr.rkt:602:1
              (lambda (s367_0 ctx368_0 implicit-omitted?366_0)
                (begin
                  (begin
                    (let ((obs_0
                           (begin-unsafe
                            (expand-context/inner-observer
                             (root-expand-context/outer-inner ctx368_0)))))
                      (if obs_0
                        (call-expand-observe obs_0 '|prim-#%top| s367_0)
                        (void)))
                    (let ((id_0
                           (if implicit-omitted?366_0
                             s367_0
                             (call-with-values
                              (lambda ()
                                (call-with-values
                                 (lambda ()
                                   (let ((s_0
                                          (if (syntax?$1 s367_0)
                                            (syntax-e$1 s367_0)
                                            s367_0)))
                                     (if (pair? s_0)
                                       (let ((|#%top371_0|
                                              (let ((s_1 (car s_0))) s_1)))
                                         (let ((id372_0
                                                (let ((s_1 (cdr s_0)))
                                                  (if (let ((or-part_0
                                                             (if (syntax?$1
                                                                  s_1)
                                                               (symbol?
                                                                (syntax-e$1
                                                                 s_1))
                                                               #f)))
                                                        (if or-part_0
                                                          or-part_0
                                                          (symbol? s_1)))
                                                    s_1
                                                    (raise-syntax-error$1
                                                     #f
                                                     "not an identifier"
                                                     s367_0
                                                     s_1)))))
                                           (let ((|#%top371_1| |#%top371_0|))
                                             (values |#%top371_1| id372_0))))
                                       (raise-syntax-error$1
                                        #f
                                        "bad syntax"
                                        s367_0))))
                                 (case-lambda
                                  ((|#%top369_0| id370_0)
                                   (values #t |#%top369_0| id370_0))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))
                              (case-lambda
                               ((ok?_0 |#%top369_0| id370_0) id370_0)
                               (args
                                (raise-binding-result-arity-error 3 args)))))))
                      (let ((b_0
                             (let ((temp374_0
                                    (begin-unsafe
                                     (expand-context/inner-phase
                                      (root-expand-context/outer-inner
                                       ctx368_0)))))
                               (resolve+shift.1
                                'ambiguous
                                #f
                                null
                                unsafe-undefined
                                #f
                                id_0
                                temp374_0))))
                        (if (eq? b_0 'ambiguous)
                          (raise-ambiguous-error id_0 ctx368_0)
                          (if (if b_0
                                (if (module-binding? b_0)
                                  (let ((app_0 (module-binding-module b_0)))
                                    (eq?
                                     app_0
                                     (begin-unsafe
                                      (root-expand-context/inner-self-mpi
                                       (root-expand-context/outer-inner
                                        ctx368_0)))))
                                  #f)
                                #f)
                            (begin
                              (if (begin-unsafe
                                   (expand-context/inner-allow-unbound?
                                    (root-expand-context/outer-inner
                                     ctx368_0)))
                                (void)
                                (check-top-binding-is-variable
                                 ctx368_0
                                 b_0
                                 id_0
                                 s367_0))
                              (if (begin-unsafe
                                   (expand-context/inner-to-parsed?
                                    (root-expand-context/outer-inner
                                     ctx368_0)))
                                (parsed-id2.1 id_0 b_0 #f)
                                (if (let ((mpi_0 (module-binding-module b_0)))
                                      (begin-unsafe
                                       (eq?
                                        top-level-module-path-index
                                        mpi_0)))
                                  s367_0
                                  id_0)))
                            (if (local-binding? b_0)
                              (raise-unbound-syntax-error
                               #f
                               "unbound identifier"
                               id_0
                               #f
                               null
                               (syntax-debug-info-string id_0 ctx368_0))
                              (if (register-eventual-variable!? id_0 ctx368_0)
                                (if (begin-unsafe
                                     (expand-context/inner-to-parsed?
                                      (root-expand-context/outer-inner
                                       ctx368_0)))
                                  (parsed-id2.1 id_0 b_0 #f)
                                  id_0)
                                (if (not
                                     (begin-unsafe
                                      (expand-context/inner-allow-unbound?
                                       (root-expand-context/outer-inner
                                        ctx368_0))))
                                  (raise-unbound-syntax-error
                                   #f
                                   "unbound identifier"
                                   id_0
                                   #f
                                   null
                                   (syntax-debug-info-string id_0 ctx368_0))
                                  (let ((tl-id_0
                                         (add-scope
                                          id_0
                                          (begin-unsafe
                                           (root-expand-context/inner-top-level-bind-scope
                                            (root-expand-context/outer-inner
                                             ctx368_0))))))
                                    (let ((tl-b_0
                                           (let ((temp377_0
                                                  (begin-unsafe
                                                   (expand-context/inner-phase
                                                    (root-expand-context/outer-inner
                                                     ctx368_0)))))
                                             (resolve.1
                                              #f
                                              #f
                                              null
                                              #f
                                              tl-id_0
                                              temp377_0))))
                                      (if tl-b_0
                                        (if (begin-unsafe
                                             (expand-context/inner-to-parsed?
                                              (root-expand-context/outer-inner
                                               ctx368_0)))
                                          (parsed-top-id4.1 tl-id_0 tl-b_0 #f)
                                          (if implicit-omitted?366_0
                                            id_0
                                            (call-with-values
                                             (lambda ()
                                               (call-with-values
                                                (lambda ()
                                                  (let ((s_0
                                                         (if (syntax?$1 s367_0)
                                                           (syntax-e$1 s367_0)
                                                           s367_0)))
                                                    (if (pair? s_0)
                                                      (let ((|#%top380_0|
                                                             (let ((s_1
                                                                    (car s_0)))
                                                               s_1)))
                                                        (let ((id381_0
                                                               (let ((s_1
                                                                      (cdr
                                                                       s_0)))
                                                                 (if (let ((or-part_0
                                                                            (if (syntax?$1
                                                                                 s_1)
                                                                              (symbol?
                                                                               (syntax-e$1
                                                                                s_1))
                                                                              #f)))
                                                                       (if or-part_0
                                                                         or-part_0
                                                                         (symbol?
                                                                          s_1)))
                                                                   s_1
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "not an identifier"
                                                                    s367_0
                                                                    s_1)))))
                                                          (let ((|#%top380_1|
                                                                 |#%top380_0|))
                                                            (values
                                                             |#%top380_1|
                                                             id381_0))))
                                                      (raise-syntax-error$1
                                                       #f
                                                       "bad syntax"
                                                       s367_0))))
                                                (case-lambda
                                                 ((|#%top378_0| id379_0)
                                                  (values
                                                   #t
                                                   |#%top378_0|
                                                   id379_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args)))))
                                             (case-lambda
                                              ((ok?_0 |#%top378_0| id379_0)
                                               (let ((temp383_0
                                                      (cons
                                                       |#%top378_0|
                                                       id_0)))
                                                 (rebuild.1
                                                  #t
                                                  s367_0
                                                  temp383_0)))
                                              (args
                                               (raise-binding-result-arity-error
                                                3
                                                args))))))
                                        (if (begin-unsafe
                                             (expand-context/inner-to-parsed?
                                              (root-expand-context/outer-inner
                                               ctx368_0)))
                                          (parsed-top-id4.1 id_0 b_0 #f)
                                          s367_0)))))))))))))))))
        (|#%name|
         ...nder/expand/expr.rkt:602:1
         (case-lambda
          ((s_0 ctx_0) (begin (...nder/expand/expr.rkt:602:1_0 s_0 ctx_0 #f)))
          ((s_0 ctx_0 implicit-omitted?366_0)
           (...nder/expand/expr.rkt:602:1_0
            s_0
            ctx_0
            implicit-omitted?366_0)))))))
    (void)))
(define effect_2236
  (begin
    (void
     (add-core-form!*
      'set!
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-set! s_0) (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((set!387_0 (let ((s_2 (car s_1))) s_2)))
                      (call-with-values
                       (lambda ()
                         (let ((s_2 (cdr s_1)))
                           (let ((s_3
                                  (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                             (if (pair? s_3)
                               (let ((id390_0
                                      (let ((s_4 (car s_3)))
                                        (if (let ((or-part_0
                                                   (if (syntax?$1 s_4)
                                                     (symbol? (syntax-e$1 s_4))
                                                     #f)))
                                              (if or-part_0
                                                or-part_0
                                                (symbol? s_4)))
                                          s_4
                                          (raise-syntax-error$1
                                           #f
                                           "not an identifier"
                                           s_0
                                           s_4)))))
                                 (let ((rhs391_0
                                        (let ((s_4 (cdr s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (if (pair? s_5)
                                              (let ((rhs392_0
                                                     (let ((s_6 (car s_5)))
                                                       s_6)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((s_6 (cdr s_5)))
                                                     (let ((s_7
                                                            (if (syntax?$1 s_6)
                                                              (syntax-e$1 s_6)
                                                              s_6)))
                                                       (if (null? s_7)
                                                         (values)
                                                         (raise-syntax-error$1
                                                          #f
                                                          "bad syntax"
                                                          s_0)))))
                                                 (case-lambda
                                                  (()
                                                   (let ((rhs392_1 rhs392_0))
                                                     (values rhs392_1)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    0
                                                    args)))))
                                              (raise-syntax-error$1
                                               #f
                                               "bad syntax"
                                               s_0))))))
                                   (let ((id390_1 id390_0))
                                     (values id390_1 rhs391_0))))
                               (raise-syntax-error$1 #f "bad syntax" s_0)))))
                       (case-lambda
                        ((id388_0 rhs389_0)
                         (let ((set!387_1 set!387_0))
                           (values set!387_1 id388_0 rhs389_0)))
                        (args (raise-binding-result-arity-error 2 args)))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((set!384_0 id385_0 rhs386_0)
                (values #t set!384_0 id385_0 rhs386_0))
               (args (raise-binding-result-arity-error 3 args)))))
           (case-lambda
            ((ok?_0 set!384_0 id385_0 rhs386_0)
             (letrec*
              ((rename-loop_0
                (|#%name|
                 rename-loop
                 (lambda (id_0 from-rename?_0)
                   (begin
                     (let ((binding_0
                            (let ((temp394_0
                                   (begin-unsafe
                                    (expand-context/inner-phase
                                     (root-expand-context/outer-inner
                                      ctx_0)))))
                              (resolve+shift.1
                               'ambiguous
                               #f
                               null
                               #t
                               #f
                               id_0
                               temp394_0))))
                       (begin
                         (if (eq? binding_0 'ambiguous)
                           (raise-ambiguous-error id_0 ctx_0)
                           (void))
                         (call-with-values
                          (lambda ()
                            (if binding_0
                              (lookup.1 #f #f binding_0 ctx_0 s_0)
                              (values #f #f #f #f)))
                          (case-lambda
                           ((t_0 primitive?_0 insp_0 protected?_0)
                            (begin
                              (let ((obs_0
                                     (begin-unsafe
                                      (expand-context/inner-observer
                                       (root-expand-context/outer-inner
                                        ctx_0)))))
                                (if obs_0
                                  (call-expand-observe obs_0 'resolve id_0)
                                  (void)))
                              (if (let ((or-part_0 (variable? t_0)))
                                    (if or-part_0
                                      or-part_0
                                      (if (not binding_0)
                                        (let ((or-part_1
                                               (register-eventual-variable!?
                                                id_0
                                                ctx_0)))
                                          (if or-part_1
                                            or-part_1
                                            (begin-unsafe
                                             (expand-context/inner-allow-unbound?
                                              (root-expand-context/outer-inner
                                               ctx_0)))))
                                        #f)))
                                (begin
                                  (if (if (module-binding? binding_0)
                                        (not
                                         (let ((app_0
                                                (module-binding-module
                                                 binding_0)))
                                           (inside-module-context?
                                            app_0
                                            (begin-unsafe
                                             (root-expand-context/inner-self-mpi
                                              (root-expand-context/outer-inner
                                               ctx_0))))))
                                        #f)
                                    (raise-syntax-error$1
                                     #f
                                     "cannot mutate module-required identifier"
                                     s_0
                                     id_0)
                                    (void))
                                  (begin
                                    (let ((obs_0
                                           (begin-unsafe
                                            (expand-context/inner-observer
                                             (root-expand-context/outer-inner
                                              ctx_0)))))
                                      (if obs_0
                                        (call-expand-observe obs_0 'next)
                                        (void)))
                                    (begin
                                      (register-variable-referenced-if-local!
                                       binding_0
                                       ctx_0)
                                      (let ((rebuild-s_0
                                             (keep-as-needed.1
                                              #f
                                              #f
                                              #f
                                              ctx_0
                                              s_0)))
                                        (let ((exp-rhs_0
                                               (let ((temp403_0
                                                      (as-expression-context
                                                       ctx_0)))
                                                 (expand.1
                                                  #f
                                                  #f
                                                  rhs386_0
                                                  temp403_0))))
                                          (if (begin-unsafe
                                               (expand-context/inner-to-parsed?
                                                (root-expand-context/outer-inner
                                                 ctx_0)))
                                            (parsed-set!9.1
                                             rebuild-s_0
                                             (parsed-id2.1 id_0 binding_0 #f)
                                             exp-rhs_0)
                                            (let ((temp405_0
                                                   (list
                                                    set!384_0
                                                    (let ((temp408_0
                                                           (free-id-set-empty-or-just-module*?
                                                            (begin-unsafe
                                                             (expand-context/inner-stops
                                                              (root-expand-context/outer-inner
                                                               ctx_0))))))
                                                      (substitute-variable.1
                                                       temp408_0
                                                       id_0
                                                       t_0))
                                                    exp-rhs_0)))
                                              (rebuild.1
                                               #t
                                               rebuild-s_0
                                               temp405_0))))))))
                                (if (not binding_0)
                                  (raise-unbound-syntax-error
                                   #f
                                   "unbound identifier"
                                   s_0
                                   id_0
                                   null
                                   (syntax-debug-info-string id_0 ctx_0))
                                  (if (1/set!-transformer? t_0)
                                    (if (not-in-this-expand-context? t_0 ctx_0)
                                      (let ((temp409_0
                                             (avoid-current-expand-context
                                              (begin-unsafe
                                               (if from-rename?_0
                                                 (datum->syntax$1
                                                  s_0
                                                  (list
                                                   set!384_0
                                                   rhs386_0
                                                   id_0)
                                                  s_0
                                                  s_0)
                                                 s_0))
                                              t_0
                                              ctx_0)))
                                        (expand.1 #f #f temp409_0 ctx_0))
                                      (call-with-values
                                       (lambda ()
                                         (apply-transformer.1
                                          id385_0
                                          t_0
                                          insp_0
                                          s_0
                                          id385_0
                                          ctx_0
                                          binding_0))
                                       (case-lambda
                                        ((exp-s_0 re-ctx_0)
                                         (if (begin-unsafe
                                              (expand-context/inner-just-once?
                                               (root-expand-context/outer-inner
                                                ctx_0)))
                                           exp-s_0
                                           (expand.1 #f #f exp-s_0 re-ctx_0)))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))
                                    (if (1/rename-transformer? t_0)
                                      (if (not-in-this-expand-context?
                                           t_0
                                           ctx_0)
                                        (let ((temp420_0
                                               (avoid-current-expand-context
                                                (begin-unsafe
                                                 (if from-rename?_0
                                                   (datum->syntax$1
                                                    s_0
                                                    (list
                                                     set!384_0
                                                     rhs386_0
                                                     id_0)
                                                    s_0
                                                    s_0)
                                                   s_0))
                                                t_0
                                                ctx_0)))
                                          (expand.1 #f #f temp420_0 ctx_0))
                                        (rename-loop_0
                                         (apply-rename-transformer
                                          t_0
                                          id_0
                                          ctx_0)
                                         #t))
                                      (raise-syntax-error$1
                                       #f
                                       "cannot mutate syntax identifier"
                                       s_0
                                       id_0)))))))
                           (args
                            (raise-binding-result-arity-error 4 args)))))))))))
              (rename-loop_0 id385_0 #f)))
            (args (raise-binding-result-arity-error 4 args))))))))
    (void)))
(define substitute-set!-rename
  (lambda (s_0 set!-id_0 id_0 rhs-s_0 from-rename?_0 ctx_0)
    (if from-rename?_0
      (datum->syntax$1 s_0 (list set!-id_0 id_0 rhs-s_0) s_0 s_0)
      s_0)))
(define effect_2694
  (begin
    (void
     (add-core-form!*
      '|#%variable-reference|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 '|prim-#%variable-reference| s_0)
              (void)))
          (call-with-values
           (lambda ()
             (if (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                   (if (pair? s_1)
                     (if (let ((s_2 (car s_1))) #t)
                       (let ((s_2 (cdr s_1)))
                         (let ((s_3 (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                           (if (pair? s_3)
                             (if (let ((s_4 (car s_3)))
                                   (let ((or-part_0
                                          (if (syntax?$1 s_4)
                                            (symbol? (syntax-e$1 s_4))
                                            #f)))
                                     (if or-part_0 or-part_0 (symbol? s_4))))
                               (let ((s_4 (cdr s_3)))
                                 (let ((s_5
                                        (if (syntax?$1 s_4)
                                          (syntax-e$1 s_4)
                                          s_4)))
                                   (null? s_5)))
                               #f)
                             #f)))
                       #f)
                     #f))
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (let ((|#%variable-reference424_0|
                           (let ((s_2 (car s_1))) s_2)))
                      (let ((id425_0
                             (let ((s_2 (cdr s_1)))
                               (let ((s_3
                                      (if (syntax?$1 s_2)
                                        (syntax-e$1 s_2)
                                        s_2)))
                                 (let ((id426_0 (let ((s_4 (car s_3))) s_4)))
                                   (call-with-values
                                    (lambda ()
                                      (let ((s_4 (cdr s_3)))
                                        (let ((s_5
                                               (if (syntax?$1 s_4)
                                                 (syntax-e$1 s_4)
                                                 s_4)))
                                          (values))))
                                    (case-lambda
                                     (()
                                      (let ((id426_1 id426_0))
                                        (values id426_1)))
                                     (args
                                      (raise-binding-result-arity-error
                                       0
                                       args)))))))))
                        (let ((|#%variable-reference424_1|
                               |#%variable-reference424_0|))
                          (values |#%variable-reference424_1| id425_0))))))
                (case-lambda
                 ((|#%variable-reference422_0| id423_0)
                  (values #t |#%variable-reference422_0| id423_0))
                 (args (raise-binding-result-arity-error 2 args))))
               (values #f #f #f)))
           (case-lambda
            ((ok?_0 |#%variable-reference422_0| id423_0)
             (call-with-values
              (lambda ()
                (if (if (not ok?_0)
                      (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                        (if (pair? s_1)
                          (if (let ((s_2 (car s_1))) #t)
                            (let ((s_2 (cdr s_1)))
                              (let ((s_3
                                     (if (syntax?$1 s_2)
                                       (syntax-e$1 s_2)
                                       s_2)))
                                (if (pair? s_3)
                                  (if (let ((s_4 (car s_3)))
                                        (let ((s_5
                                               (if (syntax?$1 s_4)
                                                 (syntax-e$1 s_4)
                                                 s_4)))
                                          (if (pair? s_5)
                                            (if (let ((s_6 (car s_5))) #t)
                                              (let ((s_6 (cdr s_5)))
                                                (let ((or-part_0
                                                       (if (syntax?$1 s_6)
                                                         (symbol?
                                                          (syntax-e$1 s_6))
                                                         #f)))
                                                  (if or-part_0
                                                    or-part_0
                                                    (symbol? s_6))))
                                              #f)
                                            #f)))
                                    (let ((s_4 (cdr s_3)))
                                      (let ((s_5
                                             (if (syntax?$1 s_4)
                                               (syntax-e$1 s_4)
                                               s_4)))
                                        (null? s_5)))
                                    #f)
                                  #f)))
                            #f)
                          #f))
                      #f)
                  (call-with-values
                   (lambda ()
                     (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                       (let ((|#%variable-reference430_0|
                              (let ((s_2 (car s_1))) s_2)))
                         (call-with-values
                          (lambda ()
                            (let ((s_2 (cdr s_1)))
                              (let ((s_3
                                     (if (syntax?$1 s_2)
                                       (syntax-e$1 s_2)
                                       s_2)))
                                (call-with-values
                                 (lambda ()
                                   (let ((s_4 (car s_3)))
                                     (let ((s_5
                                            (if (syntax?$1 s_4)
                                              (syntax-e$1 s_4)
                                              s_4)))
                                       (let ((|#%top435_0|
                                              (let ((s_6 (car s_5))) s_6)))
                                         (let ((id436_0
                                                (let ((s_6 (cdr s_5))) s_6)))
                                           (let ((|#%top435_1| |#%top435_0|))
                                             (values
                                              |#%top435_1|
                                              id436_0)))))))
                                 (case-lambda
                                  ((|#%top433_0| id434_0)
                                   (call-with-values
                                    (lambda ()
                                      (let ((s_4 (cdr s_3)))
                                        (let ((s_5
                                               (if (syntax?$1 s_4)
                                                 (syntax-e$1 s_4)
                                                 s_4)))
                                          (values))))
                                    (case-lambda
                                     (()
                                      (let ((|#%top433_1| |#%top433_0|)
                                            (id434_1 id434_0))
                                        (values |#%top433_1| id434_1)))
                                     (args
                                      (raise-binding-result-arity-error
                                       0
                                       args)))))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))))
                          (case-lambda
                           ((|#%top431_0| id432_0)
                            (let ((|#%variable-reference430_1|
                                   |#%variable-reference430_0|))
                              (values
                               |#%variable-reference430_1|
                               |#%top431_0|
                               id432_0)))
                           (args
                            (raise-binding-result-arity-error 2 args)))))))
                   (case-lambda
                    ((|#%variable-reference427_0| |#%top428_0| id429_0)
                     (values
                      #t
                      |#%variable-reference427_0|
                      |#%top428_0|
                      id429_0))
                    (args (raise-binding-result-arity-error 3 args))))
                  (values #f #f #f #f)))
              (case-lambda
               ((ok?_1 |#%variable-reference427_0| |#%top428_0| id429_0)
                (call-with-values
                 (lambda ()
                   (if (if (not (if ok?_0 ok?_0 ok?_1)) #t #f)
                     (let ((|#%variable-reference437_0|
                            (let ((s_1
                                   (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                              (if (pair? s_1)
                                (let ((|#%variable-reference438_0|
                                       (let ((s_2 (car s_1))) s_2)))
                                  (call-with-values
                                   (lambda ()
                                     (let ((s_2 (cdr s_1)))
                                       (let ((s_3
                                              (if (syntax?$1 s_2)
                                                (syntax-e$1 s_2)
                                                s_2)))
                                         (if (null? s_3)
                                           (values)
                                           (raise-syntax-error$1
                                            #f
                                            "bad syntax"
                                            s_0)))))
                                   (case-lambda
                                    (()
                                     (let ((|#%variable-reference438_1|
                                            |#%variable-reference438_0|))
                                       (values |#%variable-reference438_1|)))
                                    (args
                                     (raise-binding-result-arity-error
                                      0
                                      args)))))
                                (raise-syntax-error$1 #f "bad syntax" s_0)))))
                       (values #t |#%variable-reference437_0|))
                     (values #f #f)))
                 (case-lambda
                  ((ok?_2 |#%variable-reference437_0|)
                   (if (if ok?_0 ok?_0 ok?_1)
                     (begin
                       (if ok?_1
                         (let ((phase_0
                                (begin-unsafe
                                 (expand-context/inner-phase
                                  (root-expand-context/outer-inner ctx_0)))))
                           (if (if (identifier? |#%top428_0|)
                                 (free-identifier=?$1
                                  |#%top428_0|
                                  (core-id '|#%top| phase_0)
                                  phase_0
                                  phase_0)
                                 #f)
                             (void)
                             (raise-syntax-error$1 #f "bad syntax" s_0)))
                         (void))
                       (let ((var-id_0 (if ok?_0 id423_0 id429_0)))
                         (letrec*
                          ((rename-loop_0
                            (|#%name|
                             rename-loop
                             (lambda (var-id_1 from-rename?_0)
                               (begin
                                 (let ((binding_0
                                        (let ((temp440_0
                                               (begin-unsafe
                                                (expand-context/inner-phase
                                                 (root-expand-context/outer-inner
                                                  ctx_0)))))
                                          (let ((temp442_0
                                                 (not
                                                  (begin-unsafe
                                                   (expand-context/inner-to-parsed?
                                                    (root-expand-context/outer-inner
                                                     ctx_0))))))
                                            (resolve+shift.1
                                             'ambiguous
                                             #f
                                             null
                                             temp442_0
                                             #f
                                             var-id_1
                                             temp440_0)))))
                                   (begin
                                     (if (eq? binding_0 'ambiguous)
                                       (raise-ambiguous-error var-id_1 ctx_0)
                                       (void))
                                     (begin
                                       (if (if (if binding_0
                                                 binding_0
                                                 (begin-unsafe
                                                  (expand-context/inner-allow-unbound?
                                                   (root-expand-context/outer-inner
                                                    ctx_0))))
                                             (not
                                              (if ok?_1
                                                (local-binding? binding_0)
                                                #f))
                                             #f)
                                         (void)
                                         (raise-unbound-syntax-error
                                          #f
                                          "unbound identifier"
                                          s_0
                                          var-id_1
                                          null
                                          (syntax-debug-info-string
                                           var-id_1
                                           ctx_0)))
                                       (call-with-values
                                        (lambda ()
                                          (if (let ((or-part_0
                                                     (not binding_0)))
                                                (if or-part_0
                                                  or-part_0
                                                  (if (begin-unsafe
                                                       (expand-context/inner-allow-unbound?
                                                        (root-expand-context/outer-inner
                                                         ctx_0)))
                                                    ok?_1
                                                    #f)))
                                            (values #f #f)
                                            (check-top-binding-is-variable
                                             ctx_0
                                             binding_0
                                             var-id_1
                                             s_0)))
                                        (case-lambda
                                         ((t_0 primitive?_0)
                                          (let ((substitute-vr-rename_0
                                                 (|#%name|
                                                  substitute-vr-rename
                                                  (lambda ()
                                                    (begin
                                                      (if (if from-rename?_0
                                                            from-rename?_0
                                                            (local-variable?
                                                             t_0))
                                                        (let ((vr-id_0
                                                               (if ok?_0
                                                                 |#%variable-reference422_0|
                                                                 |#%variable-reference427_0|)))
                                                          (let ((s-var-id_0
                                                                 (let ((temp445_0
                                                                        (free-id-set-empty-or-just-module*?
                                                                         (begin-unsafe
                                                                          (expand-context/inner-stops
                                                                           (root-expand-context/outer-inner
                                                                            ctx_0))))))
                                                                   (substitute-variable.1
                                                                    temp445_0
                                                                    var-id_1
                                                                    t_0))))
                                                            (datum->syntax$1
                                                             s_0
                                                             (list
                                                              vr-id_0
                                                              s-var-id_0)
                                                             s_0
                                                             s_0)))
                                                        s_0))))))
                                            (if (begin-unsafe
                                                 (expand-context/inner-to-parsed?
                                                  (root-expand-context/outer-inner
                                                   ctx_0)))
                                              (|parsed-#%variable-reference11.1|
                                               (begin-unsafe #f)
                                               (if ok?_1
                                                 (parsed-top-id4.1
                                                  var-id_1
                                                  binding_0
                                                  #f)
                                                 (if primitive?_0
                                                   (parsed-primitive-id3.1
                                                    var-id_1
                                                    binding_0
                                                    #f)
                                                   (parsed-id2.1
                                                    var-id_1
                                                    binding_0
                                                    #f))))
                                              (if (1/rename-transformer? t_0)
                                                (if (not-in-this-expand-context?
                                                     t_0
                                                     ctx_0)
                                                  (let ((temp446_0
                                                         (avoid-current-expand-context
                                                          (substitute-vr-rename_0)
                                                          t_0
                                                          ctx_0)))
                                                    (expand.1
                                                     #f
                                                     #f
                                                     temp446_0
                                                     ctx_0))
                                                  (rename-loop_0
                                                   (apply-rename-transformer
                                                    t_0
                                                    var-id_1
                                                    ctx_0)
                                                   #t))
                                                (substitute-vr-rename_0)))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))))))))))
                          (rename-loop_0 var-id_0 #f))))
                     (if (begin-unsafe
                          (expand-context/inner-to-parsed?
                           (root-expand-context/outer-inner ctx_0)))
                       (|parsed-#%variable-reference11.1| (begin-unsafe #f) #f)
                       s_0)))
                  (args (raise-binding-result-arity-error 2 args)))))
               (args (raise-binding-result-arity-error 4 args)))))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2691
  (begin
    (void
     (add-core-form!*
      '|#%expression|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 '|prim-#%expression| s_0)
              (void)))
          (call-with-values
           (lambda ()
             (call-with-values
              (lambda ()
                (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                  (if (pair? s_1)
                    (let ((|#%expression450_0| (let ((s_2 (car s_1))) s_2)))
                      (let ((e451_0
                             (let ((s_2 (cdr s_1)))
                               (let ((s_3
                                      (if (syntax?$1 s_2)
                                        (syntax-e$1 s_2)
                                        s_2)))
                                 (if (pair? s_3)
                                   (let ((e452_0 (let ((s_4 (car s_3))) s_4)))
                                     (call-with-values
                                      (lambda ()
                                        (let ((s_4 (cdr s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (if (null? s_5)
                                              (values)
                                              (raise-syntax-error$1
                                               #f
                                               "bad syntax"
                                               s_0)))))
                                      (case-lambda
                                       (()
                                        (let ((e452_1 e452_0))
                                          (values e452_1)))
                                       (args
                                        (raise-binding-result-arity-error
                                         0
                                         args)))))
                                   (raise-syntax-error$1
                                    #f
                                    "bad syntax"
                                    s_0))))))
                        (let ((|#%expression450_1| |#%expression450_0|))
                          (values |#%expression450_1| e451_0))))
                    (raise-syntax-error$1 #f "bad syntax" s_0))))
              (case-lambda
               ((|#%expression448_0| e449_0)
                (values #t |#%expression448_0| e449_0))
               (args (raise-binding-result-arity-error 2 args)))))
           (case-lambda
            ((ok?_0 |#%expression448_0| e449_0)
             (let ((rebuild-s_0 (keep-as-needed.1 #t #f #f ctx_0 s_0)))
               (let ((exp-e_0
                      (let ((temp457_0
                             (let ((temp458_0 (as-expression-context ctx_0)))
                               (as-tail-context.1 ctx_0 temp458_0))))
                        (expand.1 #f #f e449_0 temp457_0))))
                 (if (begin-unsafe
                      (expand-context/inner-to-parsed?
                       (root-expand-context/outer-inner ctx_0)))
                   exp-e_0
                   (if (let ((or-part_0
                              (if (begin-unsafe
                                   (expand-context/inner-in-local-expand?
                                    (root-expand-context/outer-inner ctx_0)))
                                (begin-unsafe
                                 (|expand-context/inner-keep-#%expression?|
                                  (root-expand-context/outer-inner ctx_0)))
                                #f)))
                         (if or-part_0
                           or-part_0
                           (eq?
                            'top-level
                            (begin-unsafe
                             (expand-context/outer-context ctx_0)))))
                     (let ((temp461_0 (list |#%expression448_0| exp-e_0)))
                       (rebuild.1 #t rebuild-s_0 temp461_0))
                     (let ((result-s_0
                            (syntax-track-origin$1 exp-e_0 rebuild-s_0)))
                       (begin
                         (let ((obs_0
                                (begin-unsafe
                                 (expand-context/inner-observer
                                  (root-expand-context/outer-inner ctx_0)))))
                           (if obs_0
                             (call-expand-observe obs_0 'tag result-s_0)
                             (void)))
                         result-s_0)))))))
            (args (raise-binding-result-arity-error 3 args))))))))
    (void)))
(define effect_2926
  (begin
    (void
     (add-core-form!*
      'unquote
      (lambda (s_0 ctx_0) (raise-syntax-error$1 #f "not in quasiquote" s_0))))
    (void)))
(define effect_2058
  (begin
    (void
     (add-core-form!*
      'unquote-splicing
      (lambda (s_0 ctx_0) (raise-syntax-error$1 #f "not in quasiquote" s_0))))
    (void)))
(define binding-for-transformer?
  (lambda (b_0 id_0 at-phase_0 ns_0)
    (if (not at-phase_0)
      (let ((m_0
             (namespace->module
              ns_0
              (1/module-path-index-resolve
               (module-binding-nominal-module b_0)))))
        (let ((b/p_0
               (let ((app_0
                      (hash-ref
                       (module-provides m_0)
                       (module-binding-nominal-phase+space b_0)
                       hash2610)))
                 (hash-ref app_0 (module-binding-nominal-sym b_0) #f))))
          (provided-as-transformer? b/p_0)))
      (begin
        (namespace-visit-available-modules!
         ns_0
         (+ at-phase_0 (module-binding-phase b_0)))
        (call-with-values
         (lambda ()
           (binding-lookup.1 #f #f #f b_0 empty-env null ns_0 at-phase_0 id_0))
         (case-lambda
          ((val_0 primitive?_0 insp_0 protected?_0) (not (variable? val_0)))
          (args (raise-binding-result-arity-error 4 args))))))))
(define layers '(raw phaseless spaceless id))
(define provide-form-name 'provide)
(define parse-and-expand-provides!
  (lambda (specs_0 orig-s_0 rp_0 self_0 phase_0 ctx_0)
    (let ((ns_0
           (begin-unsafe
            (expand-context/inner-namespace
             (root-expand-context/outer-inner ctx_0)))))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (specs_1
                   at-phase_0
                   at-space-level_0
                   protected?_0
                   layer_0
                   orig-s_1)
            (begin
              (call-with-values
               (lambda ()
                 (call-with-values
                  (lambda ()
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (track-stxes_0 exp-specs_0 lst_0)
                            (begin
                              (if (pair? lst_0)
                                (let ((spec_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (call-with-values
                                     (lambda ()
                                       (call-with-values
                                        (lambda ()
                                          (call-with-values
                                           (lambda ()
                                             (let ((fm_0
                                                    (if (pair?
                                                         (syntax-e$1 spec_0))
                                                      (if (identifier?
                                                           (car
                                                            (syntax-e$1
                                                             spec_0)))
                                                        (syntax-e$1
                                                         (car
                                                          (syntax-e$1 spec_0)))
                                                        #f)
                                                      #f)))
                                               (let ((check-nested_0
                                                      (|#%name|
                                                       check-nested
                                                       (lambda (want-layer_0)
                                                         (begin
                                                           (if (member
                                                                want-layer_0
                                                                (member
                                                                 layer_0
                                                                 layers))
                                                             (void)
                                                             (raise-syntax-error$1
                                                              'provide
                                                              (format
                                                               "nested `~a' not allowed"
                                                               fm_0)
                                                              orig-s_1
                                                              spec_0)))))))
                                                 (let ((index_0
                                                        (if (symbol? fm_0)
                                                          (hash-ref
                                                           hash2390
                                                           fm_0
                                                           (lambda () 0))
                                                          0)))
                                                   (if (unsafe-fx< index_0 7)
                                                     (if (unsafe-fx< index_0 3)
                                                       (if (unsafe-fx<
                                                            index_0
                                                            1)
                                                         (if (identifier?
                                                              spec_0)
                                                           (begin
                                                             (parse-identifier!
                                                              spec_0
                                                              orig-s_1
                                                              (syntax-e$1
                                                               spec_0)
                                                              at-phase_0
                                                              at-space-level_0
                                                              ns_0
                                                              rp_0
                                                              protected?_0)
                                                             (values
                                                              null
                                                              (list spec_0)))
                                                           (raise-syntax-error$1
                                                            'provide
                                                            "bad syntax"
                                                            orig-s_1
                                                            spec_0))
                                                         (if (unsafe-fx<
                                                              index_0
                                                              2)
                                                           (begin
                                                             (check-nested_0
                                                              'raw)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((for-meta6_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (if (pair?
                                                                                     s_2)
                                                                                  (let ((phase-level9_0
                                                                                         (let ((s_3
                                                                                                (car
                                                                                                 s_2)))
                                                                                           s_3)))
                                                                                    (let ((spec10_0
                                                                                           (let ((s_3
                                                                                                  (cdr
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (let ((flat-s_0
                                                                                                      (to-syntax-list.1
                                                                                                       s_4)))
                                                                                                 (if (not
                                                                                                      flat-s_0)
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    spec_0)
                                                                                                   flat-s_0))))))
                                                                                      (let ((phase-level9_1
                                                                                             phase-level9_0))
                                                                                        (values
                                                                                         phase-level9_1
                                                                                         spec10_0))))
                                                                                  (raise-syntax-error$1
                                                                                   #f
                                                                                   "bad syntax"
                                                                                   spec_0)))))
                                                                          (case-lambda
                                                                           ((phase-level7_0
                                                                             spec8_0)
                                                                            (let ((for-meta6_1
                                                                                   for-meta6_0))
                                                                              (values
                                                                               for-meta6_1
                                                                               phase-level7_0
                                                                               spec8_0)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args)))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((for-meta3_0
                                                                    phase-level4_0
                                                                    spec5_0)
                                                                   (values
                                                                    #t
                                                                    for-meta3_0
                                                                    phase-level4_0
                                                                    spec5_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    3
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 for-meta3_0
                                                                 phase-level4_0
                                                                 spec5_0)
                                                                (let ((p_0
                                                                       (syntax-e$1
                                                                        phase-level4_0)))
                                                                  (begin
                                                                    (if (phase?
                                                                         p_0)
                                                                      (void)
                                                                      (raise-syntax-error$1
                                                                       'provide
                                                                       "bad `for-meta' phase"
                                                                       orig-s_1
                                                                       spec_0))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (loop_0
                                                                        spec5_0
                                                                        (phase+
                                                                         p_0
                                                                         at-phase_0)
                                                                        at-space-level_0
                                                                        protected?_0
                                                                        'phaseless
                                                                        orig-s_1))
                                                                     (case-lambda
                                                                      ((track-stxes_1
                                                                        exp-specs_1)
                                                                       (values
                                                                        null
                                                                        (list
                                                                         (syntax-track-origin*
                                                                          track-stxes_1
                                                                          (let ((temp12_0
                                                                                 (list*
                                                                                  for-meta3_0
                                                                                  phase-level4_0
                                                                                  exp-specs_1)))
                                                                            (rebuild.1
                                                                             #t
                                                                             spec_0
                                                                             temp12_0))))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 4
                                                                 args)))))
                                                           (begin
                                                             (check-nested_0
                                                              'raw)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((for-syntax15_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (let ((spec16_0
                                                                                (let ((s_1
                                                                                       (cdr
                                                                                        s_0)))
                                                                                  (let ((s_2
                                                                                         (if (syntax?$1
                                                                                              s_1)
                                                                                           (syntax-e$1
                                                                                            s_1)
                                                                                           s_1)))
                                                                                    (let ((flat-s_0
                                                                                           (to-syntax-list.1
                                                                                            s_2)))
                                                                                      (if (not
                                                                                           flat-s_0)
                                                                                        (raise-syntax-error$1
                                                                                         #f
                                                                                         "bad syntax"
                                                                                         spec_0)
                                                                                        flat-s_0))))))
                                                                           (let ((for-syntax15_1
                                                                                  for-syntax15_0))
                                                                             (values
                                                                              for-syntax15_1
                                                                              spec16_0))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((for-syntax13_0
                                                                    spec14_0)
                                                                   (values
                                                                    #t
                                                                    for-syntax13_0
                                                                    spec14_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 for-syntax13_0
                                                                 spec14_0)
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (loop_0
                                                                    spec14_0
                                                                    (phase+
                                                                     1
                                                                     at-phase_0)
                                                                    at-space-level_0
                                                                    protected?_0
                                                                    'phaseless
                                                                    orig-s_1))
                                                                 (case-lambda
                                                                  ((track-stxes_1
                                                                    exp-specs_1)
                                                                   (values
                                                                    null
                                                                    (list
                                                                     (syntax-track-origin*
                                                                      track-stxes_1
                                                                      (let ((temp18_0
                                                                             (list*
                                                                              for-syntax13_0
                                                                              exp-specs_1)))
                                                                        (rebuild.1
                                                                         #t
                                                                         spec_0
                                                                         temp18_0))))))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args)))))))
                                                       (if (unsafe-fx<
                                                            index_0
                                                            4)
                                                         (begin
                                                           (check-nested_0
                                                            'raw)
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             spec_0)
                                                                          (syntax-e$1
                                                                           spec_0)
                                                                          spec_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((for-label21_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (let ((spec22_0
                                                                              (let ((s_1
                                                                                     (cdr
                                                                                      s_0)))
                                                                                (let ((s_2
                                                                                       (if (syntax?$1
                                                                                            s_1)
                                                                                         (syntax-e$1
                                                                                          s_1)
                                                                                         s_1)))
                                                                                  (let ((flat-s_0
                                                                                         (to-syntax-list.1
                                                                                          s_2)))
                                                                                    (if (not
                                                                                         flat-s_0)
                                                                                      (raise-syntax-error$1
                                                                                       #f
                                                                                       "bad syntax"
                                                                                       spec_0)
                                                                                      flat-s_0))))))
                                                                         (let ((for-label21_1
                                                                                for-label21_0))
                                                                           (values
                                                                            for-label21_1
                                                                            spec22_0))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      spec_0))))
                                                               (case-lambda
                                                                ((for-label19_0
                                                                  spec20_0)
                                                                 (values
                                                                  #t
                                                                  for-label19_0
                                                                  spec20_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               for-label19_0
                                                               spec20_0)
                                                              (call-with-values
                                                               (lambda ()
                                                                 (loop_0
                                                                  spec20_0
                                                                  #f
                                                                  at-space-level_0
                                                                  protected?_0
                                                                  'phaseless
                                                                  orig-s_1))
                                                               (case-lambda
                                                                ((track-stxes_1
                                                                  exp-specs_1)
                                                                 (values
                                                                  null
                                                                  (list
                                                                   (syntax-track-origin*
                                                                    track-stxes_1
                                                                    (let ((temp24_0
                                                                           (list*
                                                                            for-label19_0
                                                                            exp-specs_1)))
                                                                      (rebuild.1
                                                                       #t
                                                                       spec_0
                                                                       temp24_0))))))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args)))))
                                                         (if (unsafe-fx<
                                                              index_0
                                                              5)
                                                           (begin
                                                             (check-nested_0
                                                              'phaseless)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((for-space28_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (if (pair?
                                                                                     s_2)
                                                                                  (let ((space31_0
                                                                                         (let ((s_3
                                                                                                (car
                                                                                                 s_2)))
                                                                                           s_3)))
                                                                                    (let ((spec32_0
                                                                                           (let ((s_3
                                                                                                  (cdr
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (let ((flat-s_0
                                                                                                      (to-syntax-list.1
                                                                                                       s_4)))
                                                                                                 (if (not
                                                                                                      flat-s_0)
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    spec_0)
                                                                                                   flat-s_0))))))
                                                                                      (let ((space31_1
                                                                                             space31_0))
                                                                                        (values
                                                                                         space31_1
                                                                                         spec32_0))))
                                                                                  (raise-syntax-error$1
                                                                                   #f
                                                                                   "bad syntax"
                                                                                   spec_0)))))
                                                                          (case-lambda
                                                                           ((space29_0
                                                                             spec30_0)
                                                                            (let ((for-space28_1
                                                                                   for-space28_0))
                                                                              (values
                                                                               for-space28_1
                                                                               space29_0
                                                                               spec30_0)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args)))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((for-space25_0
                                                                    space26_0
                                                                    spec27_0)
                                                                   (values
                                                                    #t
                                                                    for-space25_0
                                                                    space26_0
                                                                    spec27_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    3
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 for-space25_0
                                                                 space26_0
                                                                 spec27_0)
                                                                (let ((space_0
                                                                       (syntax-e$1
                                                                        space26_0)))
                                                                  (begin
                                                                    (if (space?
                                                                         space_0)
                                                                      (void)
                                                                      (raise-syntax-error$1
                                                                       'provide
                                                                       "bad `for-space' space"
                                                                       orig-s_1
                                                                       spec_0))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (loop_0
                                                                        spec27_0
                                                                        at-phase_0
                                                                        space_0
                                                                        protected?_0
                                                                        'spaceless
                                                                        orig-s_1))
                                                                     (case-lambda
                                                                      ((track-stxes_1
                                                                        exp-specs_1)
                                                                       (values
                                                                        null
                                                                        (list
                                                                         (syntax-track-origin*
                                                                          track-stxes_1
                                                                          (let ((temp34_0
                                                                                 (list*
                                                                                  for-space25_0
                                                                                  space26_0
                                                                                  exp-specs_1)))
                                                                            (rebuild.1
                                                                             #t
                                                                             spec_0
                                                                             temp34_0))))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 4
                                                                 args)))))
                                                           (if (unsafe-fx<
                                                                index_0
                                                                6)
                                                             (begin
                                                               (check-nested_0
                                                                'spaceless)
                                                               (begin
                                                                 (if protected?_0
                                                                   (raise-syntax-error$1
                                                                    'provide
                                                                    "nested `protect' not allowed"
                                                                    orig-s_1
                                                                    spec_0)
                                                                   (void))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((s_0
                                                                              (if (syntax?$1
                                                                                   spec_0)
                                                                                (syntax-e$1
                                                                                 spec_0)
                                                                                spec_0)))
                                                                         (if (pair?
                                                                              s_0)
                                                                           (let ((protect37_0
                                                                                  (let ((s_1
                                                                                         (car
                                                                                          s_0)))
                                                                                    s_1)))
                                                                             (let ((p-spec38_0
                                                                                    (let ((s_1
                                                                                           (cdr
                                                                                            s_0)))
                                                                                      (let ((s_2
                                                                                             (if (syntax?$1
                                                                                                  s_1)
                                                                                               (syntax-e$1
                                                                                                s_1)
                                                                                               s_1)))
                                                                                        (let ((flat-s_0
                                                                                               (to-syntax-list.1
                                                                                                s_2)))
                                                                                          (if (not
                                                                                               flat-s_0)
                                                                                            (raise-syntax-error$1
                                                                                             #f
                                                                                             "bad syntax"
                                                                                             spec_0)
                                                                                            flat-s_0))))))
                                                                               (let ((protect37_1
                                                                                      protect37_0))
                                                                                 (values
                                                                                  protect37_1
                                                                                  p-spec38_0))))
                                                                           (raise-syntax-error$1
                                                                            #f
                                                                            "bad syntax"
                                                                            spec_0))))
                                                                     (case-lambda
                                                                      ((protect35_0
                                                                        p-spec36_0)
                                                                       (values
                                                                        #t
                                                                        protect35_0
                                                                        p-spec36_0))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((ok?_0
                                                                     protect35_0
                                                                     p-spec36_0)
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (loop_0
                                                                        p-spec36_0
                                                                        at-phase_0
                                                                        at-space-level_0
                                                                        #t
                                                                        layer_0
                                                                        orig-s_1))
                                                                     (case-lambda
                                                                      ((track-stxes_1
                                                                        exp-specs_1)
                                                                       (values
                                                                        null
                                                                        (list
                                                                         (syntax-track-origin*
                                                                          track-stxes_1
                                                                          (let ((temp40_0
                                                                                 (list*
                                                                                  protect35_0
                                                                                  exp-specs_1)))
                                                                            (rebuild.1
                                                                             #t
                                                                             spec_0
                                                                             temp40_0))))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     3
                                                                     args))))))
                                                             (begin
                                                               (check-nested_0
                                                                'spaceless)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((s_0
                                                                            (if (syntax?$1
                                                                                 spec_0)
                                                                              (syntax-e$1
                                                                               spec_0)
                                                                              spec_0)))
                                                                       (if (pair?
                                                                            s_0)
                                                                         (let ((rename44_0
                                                                                (let ((s_1
                                                                                       (car
                                                                                        s_0)))
                                                                                  s_1)))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((s_1
                                                                                     (cdr
                                                                                      s_0)))
                                                                                (let ((s_2
                                                                                       (if (syntax?$1
                                                                                            s_1)
                                                                                         (syntax-e$1
                                                                                          s_1)
                                                                                         s_1)))
                                                                                  (if (pair?
                                                                                       s_2)
                                                                                    (let ((id:from47_0
                                                                                           (let ((s_3
                                                                                                  (car
                                                                                                   s_2)))
                                                                                             (if (let ((or-part_0
                                                                                                        (if (syntax?$1
                                                                                                             s_3)
                                                                                                          (symbol?
                                                                                                           (syntax-e$1
                                                                                                            s_3))
                                                                                                          #f)))
                                                                                                   (if or-part_0
                                                                                                     or-part_0
                                                                                                     (symbol?
                                                                                                      s_3)))
                                                                                               s_3
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "not an identifier"
                                                                                                spec_0
                                                                                                s_3)))))
                                                                                      (let ((id:to48_0
                                                                                             (let ((s_3
                                                                                                    (cdr
                                                                                                     s_2)))
                                                                                               (let ((s_4
                                                                                                      (if (syntax?$1
                                                                                                           s_3)
                                                                                                        (syntax-e$1
                                                                                                         s_3)
                                                                                                        s_3)))
                                                                                                 (if (pair?
                                                                                                      s_4)
                                                                                                   (let ((id:to49_0
                                                                                                          (let ((s_5
                                                                                                                 (car
                                                                                                                  s_4)))
                                                                                                            (if (let ((or-part_0
                                                                                                                       (if (syntax?$1
                                                                                                                            s_5)
                                                                                                                         (symbol?
                                                                                                                          (syntax-e$1
                                                                                                                           s_5))
                                                                                                                         #f)))
                                                                                                                  (if or-part_0
                                                                                                                    or-part_0
                                                                                                                    (symbol?
                                                                                                                     s_5)))
                                                                                                              s_5
                                                                                                              (raise-syntax-error$1
                                                                                                               #f
                                                                                                               "not an identifier"
                                                                                                               spec_0
                                                                                                               s_5)))))
                                                                                                     (call-with-values
                                                                                                      (lambda ()
                                                                                                        (let ((s_5
                                                                                                               (cdr
                                                                                                                s_4)))
                                                                                                          (let ((s_6
                                                                                                                 (if (syntax?$1
                                                                                                                      s_5)
                                                                                                                   (syntax-e$1
                                                                                                                    s_5)
                                                                                                                   s_5)))
                                                                                                            (if (null?
                                                                                                                 s_6)
                                                                                                              (values)
                                                                                                              (raise-syntax-error$1
                                                                                                               #f
                                                                                                               "bad syntax"
                                                                                                               spec_0)))))
                                                                                                      (case-lambda
                                                                                                       (()
                                                                                                        (let ((id:to49_1
                                                                                                               id:to49_0))
                                                                                                          (values
                                                                                                           id:to49_1)))
                                                                                                       (args
                                                                                                        (raise-binding-result-arity-error
                                                                                                         0
                                                                                                         args)))))
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    spec_0))))))
                                                                                        (let ((id:from47_1
                                                                                               id:from47_0))
                                                                                          (values
                                                                                           id:from47_1
                                                                                           id:to48_0))))
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     spec_0)))))
                                                                            (case-lambda
                                                                             ((id:from45_0
                                                                               id:to46_0)
                                                                              (let ((rename44_1
                                                                                     rename44_0))
                                                                                (values
                                                                                 rename44_1
                                                                                 id:from45_0
                                                                                 id:to46_0)))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args)))))
                                                                         (raise-syntax-error$1
                                                                          #f
                                                                          "bad syntax"
                                                                          spec_0))))
                                                                   (case-lambda
                                                                    ((rename41_0
                                                                      id:from42_0
                                                                      id:to43_0)
                                                                     (values
                                                                      #t
                                                                      rename41_0
                                                                      id:from42_0
                                                                      id:to43_0))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      3
                                                                      args)))))
                                                                (case-lambda
                                                                 ((ok?_0
                                                                   rename41_0
                                                                   id:from42_0
                                                                   id:to43_0)
                                                                  (begin
                                                                    (parse-identifier!
                                                                     id:from42_0
                                                                     orig-s_1
                                                                     (syntax-e$1
                                                                      id:to43_0)
                                                                     at-phase_0
                                                                     at-space-level_0
                                                                     ns_0
                                                                     rp_0
                                                                     protected?_0)
                                                                    (values
                                                                     null
                                                                     (list
                                                                      spec_0))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   4
                                                                   args)))))))))
                                                     (if (unsafe-fx<
                                                          index_0
                                                          10)
                                                       (if (unsafe-fx<
                                                            index_0
                                                            8)
                                                         (begin
                                                           (check-nested_0
                                                            'phaseless)
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             spec_0)
                                                                          (syntax-e$1
                                                                           spec_0)
                                                                          spec_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((struct53_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (if (pair?
                                                                                   s_2)
                                                                                (let ((id:struct56_0
                                                                                       (let ((s_3
                                                                                              (car
                                                                                               s_2)))
                                                                                         (if (let ((or-part_0
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (symbol?
                                                                                                       (syntax-e$1
                                                                                                        s_3))
                                                                                                      #f)))
                                                                                               (if or-part_0
                                                                                                 or-part_0
                                                                                                 (symbol?
                                                                                                  s_3)))
                                                                                           s_3
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "not an identifier"
                                                                                            spec_0
                                                                                            s_3)))))
                                                                                  (let ((id:field57_0
                                                                                         (let ((s_3
                                                                                                (cdr
                                                                                                 s_2)))
                                                                                           (let ((s_4
                                                                                                  (if (syntax?$1
                                                                                                       s_3)
                                                                                                    (syntax-e$1
                                                                                                     s_3)
                                                                                                    s_3)))
                                                                                             (if (pair?
                                                                                                  s_4)
                                                                                               (let ((id:field58_0
                                                                                                      (let ((s_5
                                                                                                             (car
                                                                                                              s_4)))
                                                                                                        (let ((s_6
                                                                                                               (if (syntax?$1
                                                                                                                    s_5)
                                                                                                                 (syntax-e$1
                                                                                                                  s_5)
                                                                                                                 s_5)))
                                                                                                          (let ((flat-s_0
                                                                                                                 (to-syntax-list.1
                                                                                                                  s_6)))
                                                                                                            (if (not
                                                                                                                 flat-s_0)
                                                                                                              (raise-syntax-error$1
                                                                                                               #f
                                                                                                               "bad syntax"
                                                                                                               spec_0)
                                                                                                              (let ((id:field_0
                                                                                                                     (begin
                                                                                                                       (letrec*
                                                                                                                        ((for-loop_1
                                                                                                                          (|#%name|
                                                                                                                           for-loop
                                                                                                                           (lambda (id:field_0
                                                                                                                                    lst_1)
                                                                                                                             (begin
                                                                                                                               (if (pair?
                                                                                                                                    lst_1)
                                                                                                                                 (let ((s_7
                                                                                                                                        (unsafe-car
                                                                                                                                         lst_1)))
                                                                                                                                   (let ((rest_1
                                                                                                                                          (unsafe-cdr
                                                                                                                                           lst_1)))
                                                                                                                                     (let ((id:field_1
                                                                                                                                            (let ((id:field_1
                                                                                                                                                   (let ((id:field59_0
                                                                                                                                                          (if (let ((or-part_0
                                                                                                                                                                     (if (syntax?$1
                                                                                                                                                                          s_7)
                                                                                                                                                                       (symbol?
                                                                                                                                                                        (syntax-e$1
                                                                                                                                                                         s_7))
                                                                                                                                                                       #f)))
                                                                                                                                                                (if or-part_0
                                                                                                                                                                  or-part_0
                                                                                                                                                                  (symbol?
                                                                                                                                                                   s_7)))
                                                                                                                                                            s_7
                                                                                                                                                            (raise-syntax-error$1
                                                                                                                                                             #f
                                                                                                                                                             "not an identifier"
                                                                                                                                                             spec_0
                                                                                                                                                             s_7))))
                                                                                                                                                     (cons
                                                                                                                                                      id:field59_0
                                                                                                                                                      id:field_0))))
                                                                                                                                              (values
                                                                                                                                               id:field_1))))
                                                                                                                                       (for-loop_1
                                                                                                                                        id:field_1
                                                                                                                                        rest_1))))
                                                                                                                                 id:field_0))))))
                                                                                                                        (for-loop_1
                                                                                                                         null
                                                                                                                         flat-s_0)))))
                                                                                                                (reverse$1
                                                                                                                 id:field_0))))))))
                                                                                                 (call-with-values
                                                                                                  (lambda ()
                                                                                                    (let ((s_5
                                                                                                           (cdr
                                                                                                            s_4)))
                                                                                                      (let ((s_6
                                                                                                             (if (syntax?$1
                                                                                                                  s_5)
                                                                                                               (syntax-e$1
                                                                                                                s_5)
                                                                                                               s_5)))
                                                                                                        (if (null?
                                                                                                             s_6)
                                                                                                          (values)
                                                                                                          (raise-syntax-error$1
                                                                                                           #f
                                                                                                           "bad syntax"
                                                                                                           spec_0)))))
                                                                                                  (case-lambda
                                                                                                   (()
                                                                                                    (let ((id:field58_1
                                                                                                           id:field58_0))
                                                                                                      (values
                                                                                                       id:field58_1)))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     0
                                                                                                     args)))))
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "bad syntax"
                                                                                                spec_0))))))
                                                                                    (let ((id:struct56_1
                                                                                           id:struct56_0))
                                                                                      (values
                                                                                       id:struct56_1
                                                                                       id:field57_0))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 spec_0)))))
                                                                        (case-lambda
                                                                         ((id:struct54_0
                                                                           id:field55_0)
                                                                          (let ((struct53_1
                                                                                 struct53_0))
                                                                            (values
                                                                             struct53_1
                                                                             id:struct54_0
                                                                             id:field55_0)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args)))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      spec_0))))
                                                               (case-lambda
                                                                ((struct50_0
                                                                  id:struct51_0
                                                                  id:field52_0)
                                                                 (values
                                                                  #t
                                                                  struct50_0
                                                                  id:struct51_0
                                                                  id:field52_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  3
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               struct50_0
                                                               id:struct51_0
                                                               id:field52_0)
                                                              (begin
                                                                (parse-struct!
                                                                 id:struct51_0
                                                                 orig-s_1
                                                                 id:field52_0
                                                                 at-phase_0
                                                                 ns_0
                                                                 rp_0
                                                                 protected?_0)
                                                                (values
                                                                 null
                                                                 (list
                                                                  spec_0))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               4
                                                               args)))))
                                                         (if (unsafe-fx<
                                                              index_0
                                                              9)
                                                           (begin
                                                             (check-nested_0
                                                              'spaceless)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((all-from62_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (let ((mod-path63_0
                                                                                (let ((s_1
                                                                                       (cdr
                                                                                        s_0)))
                                                                                  (let ((s_2
                                                                                         (if (syntax?$1
                                                                                              s_1)
                                                                                           (syntax-e$1
                                                                                            s_1)
                                                                                           s_1)))
                                                                                    (if (pair?
                                                                                         s_2)
                                                                                      (let ((mod-path64_0
                                                                                             (let ((s_3
                                                                                                    (car
                                                                                                     s_2)))
                                                                                               s_3)))
                                                                                        (call-with-values
                                                                                         (lambda ()
                                                                                           (let ((s_3
                                                                                                  (cdr
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (if (null?
                                                                                                    s_4)
                                                                                                 (values)
                                                                                                 (raise-syntax-error$1
                                                                                                  #f
                                                                                                  "bad syntax"
                                                                                                  spec_0)))))
                                                                                         (case-lambda
                                                                                          (()
                                                                                           (let ((mod-path64_1
                                                                                                  mod-path64_0))
                                                                                             (values
                                                                                              mod-path64_1)))
                                                                                          (args
                                                                                           (raise-binding-result-arity-error
                                                                                            0
                                                                                            args)))))
                                                                                      (raise-syntax-error$1
                                                                                       #f
                                                                                       "bad syntax"
                                                                                       spec_0))))))
                                                                           (let ((all-from62_1
                                                                                  all-from62_0))
                                                                             (values
                                                                              all-from62_1
                                                                              mod-path63_0))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((all-from60_0
                                                                    mod-path61_0)
                                                                   (values
                                                                    #t
                                                                    all-from60_0
                                                                    mod-path61_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 all-from60_0
                                                                 mod-path61_0)
                                                                (begin
                                                                  (parse-all-from
                                                                   mod-path61_0
                                                                   orig-s_1
                                                                   self_0
                                                                   null
                                                                   at-phase_0
                                                                   at-space-level_0
                                                                   ns_0
                                                                   rp_0
                                                                   protected?_0
                                                                   ctx_0)
                                                                  (values
                                                                   null
                                                                   (list
                                                                    spec_0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args)))))
                                                           (begin
                                                             (check-nested_0
                                                              'spaceless)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((all-from-except68_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (if (pair?
                                                                                     s_2)
                                                                                  (let ((mod-path71_0
                                                                                         (let ((s_3
                                                                                                (car
                                                                                                 s_2)))
                                                                                           s_3)))
                                                                                    (let ((id72_0
                                                                                           (let ((s_3
                                                                                                  (cdr
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (let ((flat-s_0
                                                                                                      (to-syntax-list.1
                                                                                                       s_4)))
                                                                                                 (if (not
                                                                                                      flat-s_0)
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    spec_0)
                                                                                                   (let ((id_0
                                                                                                          (begin
                                                                                                            (letrec*
                                                                                                             ((for-loop_1
                                                                                                               (|#%name|
                                                                                                                for-loop
                                                                                                                (lambda (id_0
                                                                                                                         lst_1)
                                                                                                                  (begin
                                                                                                                    (if (pair?
                                                                                                                         lst_1)
                                                                                                                      (let ((s_5
                                                                                                                             (unsafe-car
                                                                                                                              lst_1)))
                                                                                                                        (let ((rest_1
                                                                                                                               (unsafe-cdr
                                                                                                                                lst_1)))
                                                                                                                          (let ((id_1
                                                                                                                                 (let ((id_1
                                                                                                                                        (let ((id73_0
                                                                                                                                               (if (let ((or-part_0
                                                                                                                                                          (if (syntax?$1
                                                                                                                                                               s_5)
                                                                                                                                                            (symbol?
                                                                                                                                                             (syntax-e$1
                                                                                                                                                              s_5))
                                                                                                                                                            #f)))
                                                                                                                                                     (if or-part_0
                                                                                                                                                       or-part_0
                                                                                                                                                       (symbol?
                                                                                                                                                        s_5)))
                                                                                                                                                 s_5
                                                                                                                                                 (raise-syntax-error$1
                                                                                                                                                  #f
                                                                                                                                                  "not an identifier"
                                                                                                                                                  spec_0
                                                                                                                                                  s_5))))
                                                                                                                                          (cons
                                                                                                                                           id73_0
                                                                                                                                           id_0))))
                                                                                                                                   (values
                                                                                                                                    id_1))))
                                                                                                                            (for-loop_1
                                                                                                                             id_1
                                                                                                                             rest_1))))
                                                                                                                      id_0))))))
                                                                                                             (for-loop_1
                                                                                                              null
                                                                                                              flat-s_0)))))
                                                                                                     (reverse$1
                                                                                                      id_0))))))))
                                                                                      (let ((mod-path71_1
                                                                                             mod-path71_0))
                                                                                        (values
                                                                                         mod-path71_1
                                                                                         id72_0))))
                                                                                  (raise-syntax-error$1
                                                                                   #f
                                                                                   "bad syntax"
                                                                                   spec_0)))))
                                                                          (case-lambda
                                                                           ((mod-path69_0
                                                                             id70_0)
                                                                            (let ((all-from-except68_1
                                                                                   all-from-except68_0))
                                                                              (values
                                                                               all-from-except68_1
                                                                               mod-path69_0
                                                                               id70_0)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args)))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((all-from-except65_0
                                                                    mod-path66_0
                                                                    id67_0)
                                                                   (values
                                                                    #t
                                                                    all-from-except65_0
                                                                    mod-path66_0
                                                                    id67_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    3
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 all-from-except65_0
                                                                 mod-path66_0
                                                                 id67_0)
                                                                (begin
                                                                  (parse-all-from
                                                                   mod-path66_0
                                                                   orig-s_1
                                                                   self_0
                                                                   id67_0
                                                                   at-phase_0
                                                                   at-space-level_0
                                                                   ns_0
                                                                   rp_0
                                                                   protected?_0
                                                                   ctx_0)
                                                                  (values
                                                                   null
                                                                   (list
                                                                    spec_0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 4
                                                                 args)))))))
                                                       (if (unsafe-fx<
                                                            index_0
                                                            12)
                                                         (if (unsafe-fx<
                                                              index_0
                                                              11)
                                                           (begin
                                                             (check-nested_0
                                                              'spaceless)
                                                             (call-with-values
                                                              (lambda ()
                                                                (let ((all-defined74_0
                                                                       (let ((s_0
                                                                              (if (syntax?$1
                                                                                   spec_0)
                                                                                (syntax-e$1
                                                                                 spec_0)
                                                                                spec_0)))
                                                                         (if (pair?
                                                                              s_0)
                                                                           (let ((all-defined75_0
                                                                                  (let ((s_1
                                                                                         (car
                                                                                          s_0)))
                                                                                    s_1)))
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (let ((s_1
                                                                                       (cdr
                                                                                        s_0)))
                                                                                  (let ((s_2
                                                                                         (if (syntax?$1
                                                                                              s_1)
                                                                                           (syntax-e$1
                                                                                            s_1)
                                                                                           s_1)))
                                                                                    (if (null?
                                                                                         s_2)
                                                                                      (values)
                                                                                      (raise-syntax-error$1
                                                                                       #f
                                                                                       "bad syntax"
                                                                                       spec_0)))))
                                                                              (case-lambda
                                                                               (()
                                                                                (let ((all-defined75_1
                                                                                       all-defined75_0))
                                                                                  (values
                                                                                   all-defined75_1)))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 0
                                                                                 args)))))
                                                                           (raise-syntax-error$1
                                                                            #f
                                                                            "bad syntax"
                                                                            spec_0)))))
                                                                  (values
                                                                   #t
                                                                   all-defined74_0)))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 all-defined74_0)
                                                                (begin
                                                                  (parse-all-from-module
                                                                   self_0
                                                                   spec_0
                                                                   orig-s_1
                                                                   null
                                                                   #f
                                                                   at-phase_0
                                                                   at-space-level_0
                                                                   ns_0
                                                                   rp_0
                                                                   protected?_0)
                                                                  (values
                                                                   null
                                                                   (list
                                                                    spec_0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args)))))
                                                           (begin
                                                             (check-nested_0
                                                              'spaceless)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((all-defined-except78_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (let ((id79_0
                                                                                (let ((s_1
                                                                                       (cdr
                                                                                        s_0)))
                                                                                  (let ((s_2
                                                                                         (if (syntax?$1
                                                                                              s_1)
                                                                                           (syntax-e$1
                                                                                            s_1)
                                                                                           s_1)))
                                                                                    (let ((flat-s_0
                                                                                           (to-syntax-list.1
                                                                                            s_2)))
                                                                                      (if (not
                                                                                           flat-s_0)
                                                                                        (raise-syntax-error$1
                                                                                         #f
                                                                                         "bad syntax"
                                                                                         spec_0)
                                                                                        (let ((id_0
                                                                                               (begin
                                                                                                 (letrec*
                                                                                                  ((for-loop_1
                                                                                                    (|#%name|
                                                                                                     for-loop
                                                                                                     (lambda (id_0
                                                                                                              lst_1)
                                                                                                       (begin
                                                                                                         (if (pair?
                                                                                                              lst_1)
                                                                                                           (let ((s_3
                                                                                                                  (unsafe-car
                                                                                                                   lst_1)))
                                                                                                             (let ((rest_1
                                                                                                                    (unsafe-cdr
                                                                                                                     lst_1)))
                                                                                                               (let ((id_1
                                                                                                                      (let ((id_1
                                                                                                                             (let ((id80_0
                                                                                                                                    (if (let ((or-part_0
                                                                                                                                               (if (syntax?$1
                                                                                                                                                    s_3)
                                                                                                                                                 (symbol?
                                                                                                                                                  (syntax-e$1
                                                                                                                                                   s_3))
                                                                                                                                                 #f)))
                                                                                                                                          (if or-part_0
                                                                                                                                            or-part_0
                                                                                                                                            (symbol?
                                                                                                                                             s_3)))
                                                                                                                                      s_3
                                                                                                                                      (raise-syntax-error$1
                                                                                                                                       #f
                                                                                                                                       "not an identifier"
                                                                                                                                       spec_0
                                                                                                                                       s_3))))
                                                                                                                               (cons
                                                                                                                                id80_0
                                                                                                                                id_0))))
                                                                                                                        (values
                                                                                                                         id_1))))
                                                                                                                 (for-loop_1
                                                                                                                  id_1
                                                                                                                  rest_1))))
                                                                                                           id_0))))))
                                                                                                  (for-loop_1
                                                                                                   null
                                                                                                   flat-s_0)))))
                                                                                          (reverse$1
                                                                                           id_0))))))))
                                                                           (let ((all-defined-except78_1
                                                                                  all-defined-except78_0))
                                                                             (values
                                                                              all-defined-except78_1
                                                                              id79_0))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((all-defined-except76_0
                                                                    id77_0)
                                                                   (values
                                                                    #t
                                                                    all-defined-except76_0
                                                                    id77_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 all-defined-except76_0
                                                                 id77_0)
                                                                (begin
                                                                  (parse-all-from-module
                                                                   self_0
                                                                   spec_0
                                                                   orig-s_1
                                                                   id77_0
                                                                   #f
                                                                   at-phase_0
                                                                   at-space-level_0
                                                                   ns_0
                                                                   rp_0
                                                                   protected?_0)
                                                                  (values
                                                                   null
                                                                   (list
                                                                    spec_0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args))))))
                                                         (if (unsafe-fx<
                                                              index_0
                                                              13)
                                                           (begin
                                                             (check-nested_0
                                                              'spaceless)
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               spec_0)
                                                                            (syntax-e$1
                                                                             spec_0)
                                                                            spec_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((prefix-all-defined83_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (let ((id:prefix84_0
                                                                                (let ((s_1
                                                                                       (cdr
                                                                                        s_0)))
                                                                                  (let ((s_2
                                                                                         (if (syntax?$1
                                                                                              s_1)
                                                                                           (syntax-e$1
                                                                                            s_1)
                                                                                           s_1)))
                                                                                    (if (pair?
                                                                                         s_2)
                                                                                      (let ((id:prefix85_0
                                                                                             (let ((s_3
                                                                                                    (car
                                                                                                     s_2)))
                                                                                               (if (let ((or-part_0
                                                                                                          (if (syntax?$1
                                                                                                               s_3)
                                                                                                            (symbol?
                                                                                                             (syntax-e$1
                                                                                                              s_3))
                                                                                                            #f)))
                                                                                                     (if or-part_0
                                                                                                       or-part_0
                                                                                                       (symbol?
                                                                                                        s_3)))
                                                                                                 s_3
                                                                                                 (raise-syntax-error$1
                                                                                                  #f
                                                                                                  "not an identifier"
                                                                                                  spec_0
                                                                                                  s_3)))))
                                                                                        (call-with-values
                                                                                         (lambda ()
                                                                                           (let ((s_3
                                                                                                  (cdr
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (if (null?
                                                                                                    s_4)
                                                                                                 (values)
                                                                                                 (raise-syntax-error$1
                                                                                                  #f
                                                                                                  "bad syntax"
                                                                                                  spec_0)))))
                                                                                         (case-lambda
                                                                                          (()
                                                                                           (let ((id:prefix85_1
                                                                                                  id:prefix85_0))
                                                                                             (values
                                                                                              id:prefix85_1)))
                                                                                          (args
                                                                                           (raise-binding-result-arity-error
                                                                                            0
                                                                                            args)))))
                                                                                      (raise-syntax-error$1
                                                                                       #f
                                                                                       "bad syntax"
                                                                                       spec_0))))))
                                                                           (let ((prefix-all-defined83_1
                                                                                  prefix-all-defined83_0))
                                                                             (values
                                                                              prefix-all-defined83_1
                                                                              id:prefix84_0))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        spec_0))))
                                                                 (case-lambda
                                                                  ((prefix-all-defined81_0
                                                                    id:prefix82_0)
                                                                   (values
                                                                    #t
                                                                    prefix-all-defined81_0
                                                                    id:prefix82_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 prefix-all-defined81_0
                                                                 id:prefix82_0)
                                                                (begin
                                                                  (parse-all-from-module
                                                                   self_0
                                                                   spec_0
                                                                   orig-s_1
                                                                   null
                                                                   (syntax-e$1
                                                                    id:prefix82_0)
                                                                   at-phase_0
                                                                   at-space-level_0
                                                                   ns_0
                                                                   rp_0
                                                                   protected?_0)
                                                                  (values
                                                                   null
                                                                   (list
                                                                    spec_0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args)))))
                                                           (if (unsafe-fx<
                                                                index_0
                                                                14)
                                                             (begin
                                                               (check-nested_0
                                                                'spaceless)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((s_0
                                                                            (if (syntax?$1
                                                                                 spec_0)
                                                                              (syntax-e$1
                                                                               spec_0)
                                                                              spec_0)))
                                                                       (if (pair?
                                                                            s_0)
                                                                         (let ((prefix-all-defined-except89_0
                                                                                (let ((s_1
                                                                                       (car
                                                                                        s_0)))
                                                                                  s_1)))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((s_1
                                                                                     (cdr
                                                                                      s_0)))
                                                                                (let ((s_2
                                                                                       (if (syntax?$1
                                                                                            s_1)
                                                                                         (syntax-e$1
                                                                                          s_1)
                                                                                         s_1)))
                                                                                  (if (pair?
                                                                                       s_2)
                                                                                    (let ((id:prefix92_0
                                                                                           (let ((s_3
                                                                                                  (car
                                                                                                   s_2)))
                                                                                             (if (let ((or-part_0
                                                                                                        (if (syntax?$1
                                                                                                             s_3)
                                                                                                          (symbol?
                                                                                                           (syntax-e$1
                                                                                                            s_3))
                                                                                                          #f)))
                                                                                                   (if or-part_0
                                                                                                     or-part_0
                                                                                                     (symbol?
                                                                                                      s_3)))
                                                                                               s_3
                                                                                               (raise-syntax-error$1
                                                                                                #f
                                                                                                "not an identifier"
                                                                                                spec_0
                                                                                                s_3)))))
                                                                                      (let ((id93_0
                                                                                             (let ((s_3
                                                                                                    (cdr
                                                                                                     s_2)))
                                                                                               (let ((s_4
                                                                                                      (if (syntax?$1
                                                                                                           s_3)
                                                                                                        (syntax-e$1
                                                                                                         s_3)
                                                                                                        s_3)))
                                                                                                 (let ((flat-s_0
                                                                                                        (to-syntax-list.1
                                                                                                         s_4)))
                                                                                                   (if (not
                                                                                                        flat-s_0)
                                                                                                     (raise-syntax-error$1
                                                                                                      #f
                                                                                                      "bad syntax"
                                                                                                      spec_0)
                                                                                                     (let ((id_0
                                                                                                            (begin
                                                                                                              (letrec*
                                                                                                               ((for-loop_1
                                                                                                                 (|#%name|
                                                                                                                  for-loop
                                                                                                                  (lambda (id_0
                                                                                                                           lst_1)
                                                                                                                    (begin
                                                                                                                      (if (pair?
                                                                                                                           lst_1)
                                                                                                                        (let ((s_5
                                                                                                                               (unsafe-car
                                                                                                                                lst_1)))
                                                                                                                          (let ((rest_1
                                                                                                                                 (unsafe-cdr
                                                                                                                                  lst_1)))
                                                                                                                            (let ((id_1
                                                                                                                                   (let ((id_1
                                                                                                                                          (let ((id94_0
                                                                                                                                                 (if (let ((or-part_0
                                                                                                                                                            (if (syntax?$1
                                                                                                                                                                 s_5)
                                                                                                                                                              (symbol?
                                                                                                                                                               (syntax-e$1
                                                                                                                                                                s_5))
                                                                                                                                                              #f)))
                                                                                                                                                       (if or-part_0
                                                                                                                                                         or-part_0
                                                                                                                                                         (symbol?
                                                                                                                                                          s_5)))
                                                                                                                                                   s_5
                                                                                                                                                   (raise-syntax-error$1
                                                                                                                                                    #f
                                                                                                                                                    "not an identifier"
                                                                                                                                                    spec_0
                                                                                                                                                    s_5))))
                                                                                                                                            (cons
                                                                                                                                             id94_0
                                                                                                                                             id_0))))
                                                                                                                                     (values
                                                                                                                                      id_1))))
                                                                                                                              (for-loop_1
                                                                                                                               id_1
                                                                                                                               rest_1))))
                                                                                                                        id_0))))))
                                                                                                               (for-loop_1
                                                                                                                null
                                                                                                                flat-s_0)))))
                                                                                                       (reverse$1
                                                                                                        id_0))))))))
                                                                                        (let ((id:prefix92_1
                                                                                               id:prefix92_0))
                                                                                          (values
                                                                                           id:prefix92_1
                                                                                           id93_0))))
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     spec_0)))))
                                                                            (case-lambda
                                                                             ((id:prefix90_0
                                                                               id91_0)
                                                                              (let ((prefix-all-defined-except89_1
                                                                                     prefix-all-defined-except89_0))
                                                                                (values
                                                                                 prefix-all-defined-except89_1
                                                                                 id:prefix90_0
                                                                                 id91_0)))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args)))))
                                                                         (raise-syntax-error$1
                                                                          #f
                                                                          "bad syntax"
                                                                          spec_0))))
                                                                   (case-lambda
                                                                    ((prefix-all-defined-except86_0
                                                                      id:prefix87_0
                                                                      id88_0)
                                                                     (values
                                                                      #t
                                                                      prefix-all-defined-except86_0
                                                                      id:prefix87_0
                                                                      id88_0))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      3
                                                                      args)))))
                                                                (case-lambda
                                                                 ((ok?_0
                                                                   prefix-all-defined-except86_0
                                                                   id:prefix87_0
                                                                   id88_0)
                                                                  (begin
                                                                    (parse-all-from-module
                                                                     self_0
                                                                     spec_0
                                                                     orig-s_1
                                                                     id88_0
                                                                     (syntax-e$1
                                                                      id:prefix87_0)
                                                                     at-phase_0
                                                                     at-space-level_0
                                                                     ns_0
                                                                     rp_0
                                                                     protected?_0)
                                                                    (values
                                                                     null
                                                                     (list
                                                                      spec_0))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   4
                                                                   args)))))
                                                             (call-with-values
                                                              (lambda ()
                                                                (if (let ((s_0
                                                                           (if (syntax?$1
                                                                                spec_0)
                                                                             (syntax-e$1
                                                                              spec_0)
                                                                             spec_0)))
                                                                      (if (pair?
                                                                           s_0)
                                                                        (if (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              #t)
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (if (pair?
                                                                                   s_2)
                                                                                (if (let ((s_3
                                                                                           (car
                                                                                            s_2)))
                                                                                      (let ((s_4
                                                                                             (if (syntax?$1
                                                                                                  s_3)
                                                                                               (syntax-e$1
                                                                                                s_3)
                                                                                               s_3)))
                                                                                        (if (pair?
                                                                                             s_4)
                                                                                          (if (let ((s_5
                                                                                                     (car
                                                                                                      s_4)))
                                                                                                (let ((or-part_0
                                                                                                       (if (syntax?$1
                                                                                                            s_5)
                                                                                                         (symbol?
                                                                                                          (syntax-e$1
                                                                                                           s_5))
                                                                                                         #f)))
                                                                                                  (if or-part_0
                                                                                                    or-part_0
                                                                                                    (symbol?
                                                                                                     s_5))))
                                                                                            (let ((s_5
                                                                                                   (cdr
                                                                                                    s_4)))
                                                                                              #t)
                                                                                            #f)
                                                                                          #f)))
                                                                                  (let ((s_3
                                                                                         (cdr
                                                                                          s_2)))
                                                                                    (let ((s_4
                                                                                           (if (syntax?$1
                                                                                                s_3)
                                                                                             (syntax-e$1
                                                                                              s_3)
                                                                                             s_3)))
                                                                                      (if (pair?
                                                                                           s_4)
                                                                                        (if (let ((s_5
                                                                                                   (car
                                                                                                    s_4)))
                                                                                              #t)
                                                                                          (let ((s_5
                                                                                                 (cdr
                                                                                                  s_4)))
                                                                                            (let ((s_6
                                                                                                   (if (syntax?$1
                                                                                                        s_5)
                                                                                                     (syntax-e$1
                                                                                                      s_5)
                                                                                                     s_5)))
                                                                                              (null?
                                                                                               s_6)))
                                                                                          #f)
                                                                                        #f)))
                                                                                  #f)
                                                                                #f)))
                                                                          #f)
                                                                        #f))
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((s_0
                                                                            (if (syntax?$1
                                                                                 spec_0)
                                                                              (syntax-e$1
                                                                               spec_0)
                                                                              spec_0)))
                                                                       (let ((expand99_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (call-with-values
                                                                                 (lambda ()
                                                                                   (let ((s_3
                                                                                          (car
                                                                                           s_2)))
                                                                                     (let ((s_4
                                                                                            (if (syntax?$1
                                                                                                 s_3)
                                                                                              (syntax-e$1
                                                                                               s_3)
                                                                                              s_3)))
                                                                                       (let ((id106_0
                                                                                              (let ((s_5
                                                                                                     (car
                                                                                                      s_4)))
                                                                                                s_5)))
                                                                                         (let ((datum107_0
                                                                                                (let ((s_5
                                                                                                       (cdr
                                                                                                        s_4)))
                                                                                                  s_5)))
                                                                                           (let ((id106_1
                                                                                                  id106_0))
                                                                                             (values
                                                                                              id106_1
                                                                                              datum107_0)))))))
                                                                                 (case-lambda
                                                                                  ((id103_0
                                                                                    datum104_0)
                                                                                   (let ((orig105_0
                                                                                          (let ((s_3
                                                                                                 (cdr
                                                                                                  s_2)))
                                                                                            (let ((s_4
                                                                                                   (if (syntax?$1
                                                                                                        s_3)
                                                                                                     (syntax-e$1
                                                                                                      s_3)
                                                                                                     s_3)))
                                                                                              (let ((orig108_0
                                                                                                     (let ((s_5
                                                                                                            (car
                                                                                                             s_4)))
                                                                                                       s_5)))
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (let ((s_5
                                                                                                          (cdr
                                                                                                           s_4)))
                                                                                                     (let ((s_6
                                                                                                            (if (syntax?$1
                                                                                                                 s_5)
                                                                                                              (syntax-e$1
                                                                                                               s_5)
                                                                                                              s_5)))
                                                                                                       (values))))
                                                                                                 (case-lambda
                                                                                                  (()
                                                                                                   (let ((orig108_1
                                                                                                          orig108_0))
                                                                                                     (values
                                                                                                      orig108_1)))
                                                                                                  (args
                                                                                                   (raise-binding-result-arity-error
                                                                                                    0
                                                                                                    args)))))))))
                                                                                     (let ((id103_1
                                                                                            id103_0)
                                                                                           (datum104_1
                                                                                            datum104_0))
                                                                                       (values
                                                                                        id103_1
                                                                                        datum104_1
                                                                                        orig105_0))))
                                                                                  (args
                                                                                   (raise-binding-result-arity-error
                                                                                    2
                                                                                    args)))))))
                                                                          (case-lambda
                                                                           ((id100_0
                                                                             datum101_0
                                                                             orig102_0)
                                                                            (let ((expand99_1
                                                                                   expand99_0))
                                                                              (values
                                                                               expand99_1
                                                                               id100_0
                                                                               datum101_0
                                                                               orig102_0)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             3
                                                                             args)))))))
                                                                   (case-lambda
                                                                    ((expand95_0
                                                                      id96_0
                                                                      datum97_0
                                                                      orig98_0)
                                                                     (values
                                                                      #t
                                                                      expand95_0
                                                                      id96_0
                                                                      datum97_0
                                                                      orig98_0))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      4
                                                                      args))))
                                                                  (values
                                                                   #f
                                                                   #f
                                                                   #f
                                                                   #f
                                                                   #f)))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 expand95_0
                                                                 id96_0
                                                                 datum97_0
                                                                 orig98_0)
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (if (if (not
                                                                            ok?_0)
                                                                         #t
                                                                         #f)
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((s_0
                                                                               (if (syntax?$1
                                                                                    spec_0)
                                                                                 (syntax-e$1
                                                                                  spec_0)
                                                                                 spec_0)))
                                                                          (if (pair?
                                                                               s_0)
                                                                            (let ((expand112_0
                                                                                   (let ((s_1
                                                                                          (car
                                                                                           s_0)))
                                                                                     s_1)))
                                                                              (call-with-values
                                                                               (lambda ()
                                                                                 (let ((s_1
                                                                                        (cdr
                                                                                         s_0)))
                                                                                   (let ((s_2
                                                                                          (if (syntax?$1
                                                                                               s_1)
                                                                                            (syntax-e$1
                                                                                             s_1)
                                                                                            s_1)))
                                                                                     (if (pair?
                                                                                          s_2)
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (let ((s_3
                                                                                                 (car
                                                                                                  s_2)))
                                                                                            (let ((s_4
                                                                                                   (if (syntax?$1
                                                                                                        s_3)
                                                                                                     (syntax-e$1
                                                                                                      s_3)
                                                                                                     s_3)))
                                                                                              (if (pair?
                                                                                                   s_4)
                                                                                                (let ((id117_0
                                                                                                       (let ((s_5
                                                                                                              (car
                                                                                                               s_4)))
                                                                                                         (if (let ((or-part_0
                                                                                                                    (if (syntax?$1
                                                                                                                         s_5)
                                                                                                                      (symbol?
                                                                                                                       (syntax-e$1
                                                                                                                        s_5))
                                                                                                                      #f)))
                                                                                                               (if or-part_0
                                                                                                                 or-part_0
                                                                                                                 (symbol?
                                                                                                                  s_5)))
                                                                                                           s_5
                                                                                                           (raise-syntax-error$1
                                                                                                            #f
                                                                                                            "not an identifier"
                                                                                                            spec_0
                                                                                                            s_5)))))
                                                                                                  (let ((datum118_0
                                                                                                         (let ((s_5
                                                                                                                (cdr
                                                                                                                 s_4)))
                                                                                                           s_5)))
                                                                                                    (let ((id117_1
                                                                                                           id117_0))
                                                                                                      (values
                                                                                                       id117_1
                                                                                                       datum118_0))))
                                                                                                (raise-syntax-error$1
                                                                                                 #f
                                                                                                 "bad syntax"
                                                                                                 spec_0)))))
                                                                                        (case-lambda
                                                                                         ((id115_0
                                                                                           datum116_0)
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (let ((s_3
                                                                                                    (cdr
                                                                                                     s_2)))
                                                                                               (let ((s_4
                                                                                                      (if (syntax?$1
                                                                                                           s_3)
                                                                                                        (syntax-e$1
                                                                                                         s_3)
                                                                                                        s_3)))
                                                                                                 (if (null?
                                                                                                      s_4)
                                                                                                   (values)
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    spec_0)))))
                                                                                           (case-lambda
                                                                                            (()
                                                                                             (let ((id115_1
                                                                                                    id115_0)
                                                                                                   (datum116_1
                                                                                                    datum116_0))
                                                                                               (values
                                                                                                id115_1
                                                                                                datum116_1)))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              0
                                                                                              args)))))
                                                                                         (args
                                                                                          (raise-binding-result-arity-error
                                                                                           2
                                                                                           args))))
                                                                                       (raise-syntax-error$1
                                                                                        #f
                                                                                        "bad syntax"
                                                                                        spec_0)))))
                                                                               (case-lambda
                                                                                ((id113_0
                                                                                  datum114_0)
                                                                                 (let ((expand112_1
                                                                                        expand112_0))
                                                                                   (values
                                                                                    expand112_1
                                                                                    id113_0
                                                                                    datum114_0)))
                                                                                (args
                                                                                 (raise-binding-result-arity-error
                                                                                  2
                                                                                  args)))))
                                                                            (raise-syntax-error$1
                                                                             #f
                                                                             "bad syntax"
                                                                             spec_0))))
                                                                      (case-lambda
                                                                       ((expand109_0
                                                                         id110_0
                                                                         datum111_0)
                                                                        (values
                                                                         #t
                                                                         expand109_0
                                                                         id110_0
                                                                         datum111_0))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         3
                                                                         args))))
                                                                     (values
                                                                      #f
                                                                      #f
                                                                      #f
                                                                      #f)))
                                                                 (case-lambda
                                                                  ((ok?_1
                                                                    expand109_0
                                                                    id110_0
                                                                    datum111_0)
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((s_0
                                                                                (if (syntax?$1
                                                                                     spec_0)
                                                                                  (syntax-e$1
                                                                                   spec_0)
                                                                                  spec_0)))
                                                                           (if (pair?
                                                                                s_0)
                                                                             (let ((expand122_0
                                                                                    (let ((s_1
                                                                                           (car
                                                                                            s_0)))
                                                                                      s_1)))
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (let ((s_1
                                                                                         (cdr
                                                                                          s_0)))
                                                                                    (let ((s_2
                                                                                           (if (syntax?$1
                                                                                                s_1)
                                                                                             (syntax-e$1
                                                                                              s_1)
                                                                                             s_1)))
                                                                                      (if (pair?
                                                                                           s_2)
                                                                                        (let ((form125_0
                                                                                               (let ((s_3
                                                                                                      (car
                                                                                                       s_2)))
                                                                                                 s_3)))
                                                                                          (let ((_0
                                                                                                 (let ((s_3
                                                                                                        (cdr
                                                                                                         s_2)))
                                                                                                   s_3)))
                                                                                            (let ((form125_1
                                                                                                   form125_0))
                                                                                              (values
                                                                                               form125_1
                                                                                               _0))))
                                                                                        (raise-syntax-error$1
                                                                                         #f
                                                                                         "bad syntax"
                                                                                         spec_0)))))
                                                                                (case-lambda
                                                                                 ((form123_0
                                                                                   _0)
                                                                                  (let ((expand122_1
                                                                                         expand122_0))
                                                                                    (values
                                                                                     expand122_1
                                                                                     form123_0
                                                                                     _0)))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args)))))
                                                                             (raise-syntax-error$1
                                                                              #f
                                                                              "bad syntax"
                                                                              spec_0))))
                                                                       (case-lambda
                                                                        ((expand119_0
                                                                          form120_0
                                                                          _0)
                                                                         (values
                                                                          #t
                                                                          expand119_0
                                                                          form120_0
                                                                          _0))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          3
                                                                          args)))))
                                                                    (case-lambda
                                                                     ((ok?_2
                                                                       expand119_0
                                                                       form120_0
                                                                       _0)
                                                                      (let ((exp-spec_0
                                                                             (let ((temp132_0
                                                                                    (if (expand-context/outer?
                                                                                         ctx_0)
                                                                                      (let ((inner134_0
                                                                                             (let ((the-struct_0
                                                                                                    (root-expand-context/outer-inner
                                                                                                     ctx_0)))
                                                                                               (if (expand-context/inner?
                                                                                                    the-struct_0)
                                                                                                 (let ((stops135_0
                                                                                                        (free-id-set
                                                                                                         at-phase_0
                                                                                                         (list
                                                                                                          (core-id
                                                                                                           'begin
                                                                                                           at-phase_0)))))
                                                                                                   (expand-context/inner2.1
                                                                                                    (root-expand-context/inner-self-mpi
                                                                                                     the-struct_0)
                                                                                                    (root-expand-context/inner-module-scopes
                                                                                                     the-struct_0)
                                                                                                    (root-expand-context/inner-top-level-bind-scope
                                                                                                     the-struct_0)
                                                                                                    (root-expand-context/inner-all-scopes-stx
                                                                                                     the-struct_0)
                                                                                                    (root-expand-context/inner-defined-syms
                                                                                                     the-struct_0)
                                                                                                    (root-expand-context/inner-counter
                                                                                                     the-struct_0)
                                                                                                    (root-expand-context/inner-lift-key
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-to-parsed?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-phase
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-namespace
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-just-once?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-module-begin-k
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-allow-unbound?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-in-local-expand?
                                                                                                     the-struct_0)
                                                                                                    (|expand-context/inner-keep-#%expression?|
                                                                                                     the-struct_0)
                                                                                                    stops135_0
                                                                                                    (expand-context/inner-declared-submodule-names
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-lifts
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-lift-envs
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-module-lifts
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-require-lifts
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-to-module-lifts
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-requires+provides
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-observer
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-for-serializable?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-to-correlated-linklet?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-normalize-locals?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-parsing-expanded?
                                                                                                     the-struct_0)
                                                                                                    (expand-context/inner-skip-visit-available?
                                                                                                     the-struct_0)))
                                                                                                 (raise-argument-error
                                                                                                  'struct-copy
                                                                                                  "expand-context/inner?"
                                                                                                  the-struct_0)))))
                                                                                        (expand-context/outer1.1
                                                                                         inner134_0
                                                                                         (root-expand-context/outer-post-expansion
                                                                                          ctx_0)
                                                                                         (root-expand-context/outer-use-site-scopes
                                                                                          ctx_0)
                                                                                         (root-expand-context/outer-frame-id
                                                                                          ctx_0)
                                                                                         (expand-context/outer-context
                                                                                          ctx_0)
                                                                                         (expand-context/outer-env
                                                                                          ctx_0)
                                                                                         (expand-context/outer-scopes
                                                                                          ctx_0)
                                                                                         #f
                                                                                         (expand-context/outer-binding-layer
                                                                                          ctx_0)
                                                                                         (expand-context/outer-reference-records
                                                                                          ctx_0)
                                                                                         (expand-context/outer-only-immediate?
                                                                                          ctx_0)
                                                                                         (expand-context/outer-need-eventually-defined
                                                                                          ctx_0)
                                                                                         (expand-context/outer-current-introduction-scopes
                                                                                          ctx_0)
                                                                                         (expand-context/outer-current-use-scopes
                                                                                          ctx_0)
                                                                                         (expand-context/outer-name
                                                                                          ctx_0)))
                                                                                      (raise-argument-error
                                                                                       'struct-copy
                                                                                       "expand-context/outer?"
                                                                                       ctx_0))))
                                                                               (expand.1
                                                                                #f
                                                                                #f
                                                                                form120_0
                                                                                temp132_0))))
                                                                        (begin
                                                                          (if (if (pair?
                                                                                   (syntax-e$1
                                                                                    exp-spec_0))
                                                                                (if (identifier?
                                                                                     (car
                                                                                      (syntax-e$1
                                                                                       exp-spec_0)))
                                                                                  (eq?
                                                                                   'begin
                                                                                   (core-form-sym
                                                                                    exp-spec_0
                                                                                    at-phase_0))
                                                                                  #f)
                                                                                #f)
                                                                            (void)
                                                                            (raise-syntax-error$1
                                                                             'provide
                                                                             "expansion was not a `begin' sequence"
                                                                             orig-s_1
                                                                             spec_0))
                                                                          (call-with-values
                                                                           (lambda ()
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (let ((s_0
                                                                                       (if (syntax?$1
                                                                                            exp-spec_0)
                                                                                         (syntax-e$1
                                                                                          exp-spec_0)
                                                                                         exp-spec_0)))
                                                                                  (if (pair?
                                                                                       s_0)
                                                                                    (let ((begin129_0
                                                                                           (let ((s_1
                                                                                                  (car
                                                                                                   s_0)))
                                                                                             s_1)))
                                                                                      (let ((spec130_0
                                                                                             (let ((s_1
                                                                                                    (cdr
                                                                                                     s_0)))
                                                                                               (let ((s_2
                                                                                                      (if (syntax?$1
                                                                                                           s_1)
                                                                                                        (syntax-e$1
                                                                                                         s_1)
                                                                                                        s_1)))
                                                                                                 (let ((flat-s_0
                                                                                                        (to-syntax-list.1
                                                                                                         s_2)))
                                                                                                   (if (not
                                                                                                        flat-s_0)
                                                                                                     (raise-syntax-error$1
                                                                                                      #f
                                                                                                      "bad syntax"
                                                                                                      exp-spec_0)
                                                                                                     flat-s_0))))))
                                                                                        (let ((begin129_1
                                                                                               begin129_0))
                                                                                          (values
                                                                                           begin129_1
                                                                                           spec130_0))))
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     exp-spec_0))))
                                                                              (case-lambda
                                                                               ((begin127_0
                                                                                 spec128_0)
                                                                                (values
                                                                                 #t
                                                                                 begin127_0
                                                                                 spec128_0))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 2
                                                                                 args)))))
                                                                           (case-lambda
                                                                            ((ok?_3
                                                                              begin127_0
                                                                              spec128_0)
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (loop_0
                                                                                 spec128_0
                                                                                 at-phase_0
                                                                                 at-space-level_0
                                                                                 protected?_0
                                                                                 layer_0
                                                                                 (if orig98_0
                                                                                   orig98_0
                                                                                   orig-s_1)))
                                                                              (case-lambda
                                                                               ((track-stxes_1
                                                                                 exp-specs_1)
                                                                                (values
                                                                                 (list*
                                                                                  spec_0
                                                                                  exp-spec_0
                                                                                  track-stxes_1)
                                                                                 exp-specs_1))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 2
                                                                                 args)))))
                                                                            (args
                                                                             (raise-binding-result-arity-error
                                                                              3
                                                                              args)))))))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       4
                                                                       args)))))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    4
                                                                    args)))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 5
                                                                 args)))))))))))))
                                           (case-lambda
                                            ((track-stxes1_0 exp-specs2_0)
                                             (values
                                              (cons
                                               track-stxes1_0
                                               track-stxes_0)
                                              (cons exp-specs2_0 exp-specs_0)))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))
                                        (case-lambda
                                         ((track-stxes_1 exp-specs_1)
                                          (values track-stxes_1 exp-specs_1))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))
                                     (case-lambda
                                      ((track-stxes_1 exp-specs_1)
                                       (for-loop_0
                                        track-stxes_1
                                        exp-specs_1
                                        rest_0))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))))
                                (values track-stxes_0 exp-specs_0)))))))
                       (for-loop_0 null null specs_1))))
                  (case-lambda
                   ((track-stxes_0 exp-specs_0)
                    (let ((app_0 (reverse$1 track-stxes_0)))
                      (values app_0 (reverse$1 exp-specs_0))))
                   (args (raise-binding-result-arity-error 2 args)))))
               (case-lambda
                ((track-stxess_0 exp-specss_0)
                 (let ((app_0 (apply append track-stxess_0)))
                   (values app_0 (apply append exp-specss_0))))
                (args (raise-binding-result-arity-error 2 args)))))))))
       (loop_0 specs_0 phase_0 kw2450 #f 'raw orig-s_0)))))
(define parse-identifier!
  (lambda (spec_0
           orig-s_0
           sym_0
           at-phase_0
           at-space-level_0
           ns_0
           rp_0
           protected?_0)
    (let ((at-space_0 (space+ #f at-space-level_0)))
      (let ((spec-at-space_0 (add-space-scope spec_0 at-space_0)))
        (let ((b_0
               (resolve+shift/extra-inspector
                spec-at-space_0
                at-phase_0
                ns_0)))
          (begin
            (if (module-binding? b_0)
              (void)
              (raise-syntax-error$1
               'provide
               "provided identifier is not defined or required"
               orig-s_0
               spec_0))
            (begin
              (if at-space_0
                (if (identifier-binding-uses-scope?
                     spec-at-space_0
                     (make-interned-scope at-space_0)
                     at-phase_0)
                  (void)
                  (raise-syntax-error$1
                   'provide
                   "provided identifier is defined only outside the space"
                   orig-s_0
                   spec_0))
                (void))
              (let ((as-transformer?_0
                     (binding-for-transformer? b_0 spec_0 at-phase_0 ns_0)))
                (let ((immed-b_0
                       (resolve+shift.1 #f #f null #t #f spec_0 at-phase_0)))
                  (let ((temp138_0 (intern-phase+space at-phase_0 at-space_0)))
                    (add-provide!.1
                     protected?_0
                     as-transformer?_0
                     rp_0
                     sym_0
                     temp138_0
                     b_0
                     immed-b_0
                     spec_0
                     orig-s_0)))))))))))
(define parse-struct!
  (lambda (id:struct_0 orig-s_0 fields_0 at-phase_0 ns_0 rp_0 protected?_0)
    (let ((mk_0
           (|#%name|
            mk
            (lambda (fmt_0)
              (begin
                (let ((sym_0
                       (string->symbol
                        (format fmt_0 (syntax-e$1 id:struct_0)))))
                  (datum->syntax$1 id:struct_0 sym_0 id:struct_0)))))))
      (let ((mk2_0
             (|#%name|
              mk2
              (lambda (fmt_0 field-id_0)
                (begin
                  (let ((sym_0
                         (string->symbol
                          (let ((app_0 (syntax-e$1 id:struct_0)))
                            (format fmt_0 app_0 (syntax-e$1 field-id_0))))))
                    (datum->syntax$1 id:struct_0 sym_0 id:struct_0)))))))
        (begin
          (let ((lst_0 (list "~a" "make-~a" "struct:~a" "~a?")))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (lst_1)
                    (begin
                      (if (pair? lst_1)
                        (let ((fmt_0 (unsafe-car lst_1)))
                          (let ((rest_0 (unsafe-cdr lst_1)))
                            (begin
                              (let ((id_0 (mk_0 fmt_0)))
                                (parse-identifier!
                                 id_0
                                 orig-s_0
                                 (syntax-e$1 id_0)
                                 at-phase_0
                                 #f
                                 ns_0
                                 rp_0
                                 protected?_0))
                              (for-loop_0 rest_0))))
                        (values)))))))
               (for-loop_0 lst_0))))
          (void)
          (begin
            (letrec*
             ((for-loop_0
               (|#%name|
                for-loop
                (lambda (lst_0)
                  (begin
                    (if (pair? lst_0)
                      (let ((field_0 (unsafe-car lst_0)))
                        (let ((rest_0 (unsafe-cdr lst_0)))
                          (begin
                            (let ((get-id_0 (mk2_0 "~a-~a" field_0)))
                              (let ((set-id_0 (mk2_0 "set-~a-~a!" field_0)))
                                (begin
                                  (parse-identifier!
                                   get-id_0
                                   orig-s_0
                                   (syntax-e$1 get-id_0)
                                   at-phase_0
                                   #f
                                   ns_0
                                   rp_0
                                   protected?_0)
                                  (parse-identifier!
                                   set-id_0
                                   orig-s_0
                                   (syntax-e$1 set-id_0)
                                   at-phase_0
                                   #f
                                   ns_0
                                   rp_0
                                   protected?_0))))
                            (for-loop_0 rest_0))))
                      (values)))))))
             (for-loop_0 fields_0)))
          (void))))))
(define parse-all-from
  (lambda (mod-path-stx_0
           orig-s_0
           self_0
           except-ids_0
           at-phase_0
           at-space-level_0
           ns_0
           rp_0
           protected?_0
           ctx_0)
    (let ((mod-path_0 (syntax->datum$1 mod-path-stx_0)))
      (begin
        (if (1/module-path? mod-path_0)
          (void)
          (raise-syntax-error$1
           'provide
           "not a module path"
           orig-s_0
           mod-path-stx_0))
        (let ((mpi_0 (module-path->mpi/context mod-path_0 ctx_0)))
          (parse-all-from-module
           mpi_0
           #f
           orig-s_0
           except-ids_0
           #f
           at-phase_0
           at-space-level_0
           ns_0
           rp_0
           protected?_0))))))
(define parse-all-from-module
  (lambda (mpi_0
           matching-stx_0
           orig-s_0
           except-ids_0
           prefix-sym_0
           at-phase_0
           at-space-level_0
           ns_0
           rp_0
           protected?_0)
    (let ((at-phase+space-shift_0
           (intern-phase+space-shift at-phase_0 at-space-level_0)))
      (let ((requireds_0
             (extract-module-requires rp_0 mpi_0 at-phase+space-shift_0)))
        (let ((phase-desc_0
               (|#%name|
                phase-desc
                (lambda ()
                  (begin
                    (let ((app_0
                           (if (begin-unsafe (eq? at-phase_0 0))
                             ""
                             (if (begin-unsafe (not at-phase_0))
                               " for-label"
                               (format " for phase level ~a" at-phase_0)))))
                      (string-append
                       app_0
                       (if (not (space+ #f at-space-level_0))
                         ""
                         (format " in space level ~s" at-space-level_0)))))))))
          (begin
            (if requireds_0
              (void)
              (raise-syntax-error$1
               'provide
               (format
                "cannot provide from a module without a matching require~a"
                (phase-desc_0))
               orig-s_0
               matching-stx_0))
            (let ((add-prefix_0
                   (|#%name|
                    add-prefix
                    (lambda (sym_0)
                      (begin
                        (if prefix-sym_0
                          (string->symbol
                           (let ((app_0 (symbol->string prefix-sym_0)))
                             (string-append app_0 (symbol->string sym_0))))
                          sym_0))))))
              (let ((at-phase+space_0
                     (begin-unsafe
                      (intern-phase+space
                       (phase+space+$1 0 at-phase+space-shift_0)))))
                (let ((found_0 (make-hasheq)))
                  (begin
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (lst_0)
                            (begin
                              (if (pair? lst_0)
                                (let ((i_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (begin
                                      (let ((id_0 (required-id i_0)))
                                        (let ((phase+space_0
                                               (required-phase+space i_0)))
                                          (let ((phase_0
                                                 (phase+space-phase
                                                  phase+space_0)))
                                            (let ((space_0
                                                   (phase+space-space
                                                    phase+space_0)))
                                              (if (let ((or-part_0
                                                         (if matching-stx_0
                                                           (not
                                                            (if (eqv?
                                                                 phase+space_0
                                                                 at-phase+space_0)
                                                              (free-identifier=?$1
                                                               id_0
                                                               (add-space-scope
                                                                (datum->syntax$1
                                                                 matching-stx_0
                                                                 (syntax-e$1
                                                                  id_0))
                                                                space_0)
                                                               phase_0
                                                               phase_0)
                                                              #f))
                                                           #f)))
                                                    (if or-part_0
                                                      or-part_0
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_1
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (result_0
                                                                     lst_1)
                                                              (begin
                                                                (if (pair?
                                                                     lst_1)
                                                                  (let ((except-id_0
                                                                         (unsafe-car
                                                                          lst_1)))
                                                                    (let ((rest_1
                                                                           (unsafe-cdr
                                                                            lst_1)))
                                                                      (let ((result_1
                                                                             (let ((result_1
                                                                                    (if (free-identifier=?$1
                                                                                         id_0
                                                                                         (add-space-scope
                                                                                          except-id_0
                                                                                          space_0)
                                                                                         phase_0
                                                                                         phase_0)
                                                                                      (hash-set!
                                                                                       found_0
                                                                                       except-id_0
                                                                                       #t)
                                                                                      #f)))
                                                                               (values
                                                                                result_1))))
                                                                        (if (if (not
                                                                                 (let ((x_0
                                                                                        (list
                                                                                         except-id_0)))
                                                                                   result_1))
                                                                              #t
                                                                              #f)
                                                                          (for-loop_1
                                                                           result_1
                                                                           rest_1)
                                                                          result_1))))
                                                                  result_0))))))
                                                         (for-loop_1
                                                          #f
                                                          except-ids_0)))))
                                                (void)
                                                (let ((b_0
                                                       (resolve+shift/extra-inspector
                                                        id_0
                                                        phase_0
                                                        ns_0)))
                                                  (let ((immed-b_0
                                                         (resolve+shift.1
                                                          #f
                                                          #f
                                                          null
                                                          #t
                                                          #f
                                                          id_0
                                                          phase_0)))
                                                    (let ((temp149_0
                                                           (add-prefix_0
                                                            (syntax-e$1
                                                             id_0))))
                                                      (let ((temp156_0
                                                             (required-as-transformer?
                                                              i_0)))
                                                        (let ((temp149_1
                                                               temp149_0))
                                                          (add-provide!.1
                                                           protected?_0
                                                           temp156_0
                                                           rp_0
                                                           temp149_1
                                                           phase+space_0
                                                           b_0
                                                           immed-b_0
                                                           id_0
                                                           orig-s_0)))))))))))
                                      (for-loop_0 rest_0))))
                                (values)))))))
                       (for-loop_0 requireds_0)))
                    (void)
                    (if (let ((app_0 (hash-count found_0)))
                          (= app_0 (length except-ids_0)))
                      (void)
                      (begin
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (lst_0)
                                (begin
                                  (if (pair? lst_0)
                                    (let ((except-id_0 (unsafe-car lst_0)))
                                      (let ((rest_0 (unsafe-cdr lst_0)))
                                        (begin
                                          (if (let ((or-part_0
                                                     (hash-ref
                                                      found_0
                                                      except-id_0
                                                      #f)))
                                                (if or-part_0
                                                  or-part_0
                                                  (begin
                                                    (letrec*
                                                     ((for-loop_1
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (result_0
                                                                 lst_1)
                                                          (begin
                                                            (if (pair? lst_1)
                                                              (let ((i_0
                                                                     (unsafe-car
                                                                      lst_1)))
                                                                (let ((rest_1
                                                                       (unsafe-cdr
                                                                        lst_1)))
                                                                  (let ((result_1
                                                                         (let ((result_1
                                                                                (let ((id_0
                                                                                       (required-id
                                                                                        i_0)))
                                                                                  (let ((phase+space_0
                                                                                         (required-phase+space
                                                                                          i_0)))
                                                                                    (let ((phase_0
                                                                                           (phase+space-phase
                                                                                            phase+space_0)))
                                                                                      (let ((space_0
                                                                                             (phase+space-space
                                                                                              phase+space_0)))
                                                                                        (free-identifier=?$1
                                                                                         id_0
                                                                                         (add-space-scope
                                                                                          except-id_0
                                                                                          space_0)
                                                                                         phase_0
                                                                                         phase_0)))))))
                                                                           (values
                                                                            result_1))))
                                                                    (if (if (not
                                                                             (let ((x_0
                                                                                    (list
                                                                                     i_0)))
                                                                               result_1))
                                                                          #t
                                                                          #f)
                                                                      (for-loop_1
                                                                       result_1
                                                                       rest_1)
                                                                      result_1))))
                                                              result_0))))))
                                                     (for-loop_1
                                                      #f
                                                      requireds_0)))))
                                            (void)
                                            (raise-syntax-error$1
                                             'provide
                                             (format
                                              (if matching-stx_0
                                                "excluded identifier was not defined or required in the module~a"
                                                "excluded identifier was not required from the specified module~a")
                                              (phase-desc_0))
                                             orig-s_0
                                             except-id_0))
                                          (for-loop_0 rest_0))))
                                    (values)))))))
                           (for-loop_0 except-ids_0)))
                        (void)))))))))))))
(define check-cross-phase-persistent-form
  (lambda (bodys_0 self-mpi_0)
    (letrec*
     ((check-body_0
       (|#%name|
        check-body
        (lambda (bodys_1)
          (begin
            (begin
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((body_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (begin
                                (let ((p_0
                                       (if (expanded+parsed? body_0)
                                         (expanded+parsed-parsed body_0)
                                         body_0)))
                                  (if (parsed-define-values? p_0)
                                    (check-expr_0
                                     (parsed-define-values-rhs p_0)
                                     (length (parsed-define-values-syms p_0))
                                     p_0)
                                    (if (let ((or-part_0
                                               (|parsed-#%declare?| p_0)))
                                          (if or-part_0
                                            or-part_0
                                            (let ((or-part_1
                                                   (parsed-module? p_0)))
                                              (if or-part_1
                                                or-part_1
                                                (syntax?$1 p_0)))))
                                      (void)
                                      (disallow p_0))))
                                (for-loop_0 rest_0))))
                          (values)))))))
                 (for-loop_0 bodys_1)))
              (void))))))
      (check-expr_0
       (|#%name|
        check-expr
        (lambda (e_0 num-results_0 enclosing_0)
          (begin
            (if (parsed-lambda? e_0)
              (begin
                (check-count 1 num-results_0 enclosing_0)
                (check-no-disallowed-expr_0 e_0))
              (if (parsed-case-lambda? e_0)
                (begin
                  (check-count 1 num-results_0 enclosing_0)
                  (check-no-disallowed-expr_0 e_0))
                (if (parsed-quote? e_0)
                  (begin
                    (check-datum (parsed-quote-datum e_0) e_0)
                    (check-count 1 num-results_0 enclosing_0))
                  (if (parsed-app? e_0)
                    (let ((rands_0 (parsed-app-rands e_0)))
                      (begin
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (lst_0)
                                (begin
                                  (if (pair? lst_0)
                                    (let ((rand_0 (unsafe-car lst_0)))
                                      (let ((rest_0 (unsafe-cdr lst_0)))
                                        (begin
                                          (check-expr_0 rand_0 1 e_0)
                                          (for-loop_0 rest_0))))
                                    (values)))))))
                           (for-loop_0 rands_0)))
                        (void)
                        (let ((tmp_0
                               (cross-phase-primitive-name
                                (parsed-app-rator e_0))))
                          (if (if (eq? tmp_0 'cons) #t (eq? tmp_0 'list))
                            (check-count 1 num-results_0 enclosing_0)
                            (if (eq? tmp_0 'make-struct-type)
                              (check-count 5 num-results_0 enclosing_0)
                              (if (eq? tmp_0 'make-struct-type-property)
                                (check-count 3 num-results_0 enclosing_0)
                                (if (eq? tmp_0 'gensym)
                                  (if (let ((or-part_0 (= 0 (length rands_0))))
                                        (if or-part_0
                                          or-part_0
                                          (if (= 1 (length rands_0))
                                            (quoted-string? (car rands_0))
                                            #f)))
                                    (void)
                                    (disallow e_0))
                                  (if (eq? tmp_0 'string->uninterned-symbol)
                                    (if (if (= 1 (length rands_0))
                                          (quoted-string? (car rands_0))
                                          #f)
                                      (void)
                                      (disallow e_0))
                                    (disallow e_0)))))))))
                    (check-no-disallowed-expr_0 e_0)))))))))
      (check-no-disallowed-expr_0
       (|#%name|
        check-no-disallowed-expr
        (lambda (e_0)
          (begin
            (if (parsed-lambda? e_0)
              (check-body-no-disallowed-expr_0 (parsed-lambda-body e_0))
              (if (parsed-case-lambda? e_0)
                (begin
                  (let ((lst_0 (parsed-case-lambda-clauses e_0)))
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (lst_1)
                            (begin
                              (if (pair? lst_1)
                                (let ((clause_0 (unsafe-car lst_1)))
                                  (let ((rest_0 (unsafe-cdr lst_1)))
                                    (begin
                                      (check-body-no-disallowed-expr_0
                                       (cadr clause_0))
                                      (for-loop_0 rest_0))))
                                (values)))))))
                       (for-loop_0 lst_0))))
                  (void))
                (if (if (parsed-app? e_0)
                      (if (eq?
                           'variable-reference-from-unsafe?
                           (cross-phase-primitive-name (parsed-app-rator e_0)))
                        (andmap_2344
                         |parsed-#%variable-reference?|
                         (parsed-app-rands e_0))
                        #f)
                      #f)
                  (void)
                  (if (parsed-app? e_0)
                    (begin
                      (check-no-disallowed-expr_0 (parsed-app-rator e_0))
                      (let ((lst_0 (parsed-app-rands e_0)))
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (lst_1)
                                (begin
                                  (if (pair? lst_1)
                                    (let ((e_1 (unsafe-car lst_1)))
                                      (let ((rest_0 (unsafe-cdr lst_1)))
                                        (begin
                                          (check-no-disallowed-expr_0 e_1)
                                          (for-loop_0 rest_0))))
                                    (values)))))))
                           (for-loop_0 lst_0))))
                      (void))
                    (if (parsed-if? e_0)
                      (begin
                        (check-no-disallowed-expr_0 (parsed-if-tst e_0))
                        (check-no-disallowed-expr_0 (parsed-if-thn e_0))
                        (check-no-disallowed-expr_0 (parsed-if-els e_0)))
                      (if (parsed-set!? e_0)
                        (let ((id_0 (parsed-set!-id e_0)))
                          (let ((normal-b_0 (parsed-id-binding id_0)))
                            (begin
                              (if (let ((or-part_0 (not normal-b_0)))
                                    (if or-part_0
                                      or-part_0
                                      (let ((or-part_1 (parsed-top-id? id_0)))
                                        (if or-part_1
                                          or-part_1
                                          (if (not (symbol? normal-b_0))
                                            (eq?
                                             (module-binding-module normal-b_0)
                                             self-mpi_0)
                                            #f)))))
                                (disallow e_0)
                                (void))
                              (check-no-disallowed-expr_0
                               (parsed-set!-rhs e_0)))))
                        (if (parsed-with-continuation-mark? e_0)
                          (begin
                            (check-no-disallowed-expr_0
                             (parsed-with-continuation-mark-key e_0))
                            (check-no-disallowed-expr_0
                             (parsed-with-continuation-mark-val e_0))
                            (check-no-disallowed-expr_0
                             (parsed-with-continuation-mark-body e_0)))
                          (if (parsed-begin? e_0)
                            (check-body-no-disallowed-expr_0
                             (parsed-begin-body e_0))
                            (if (parsed-begin0? e_0)
                              (check-body-no-disallowed-expr_0
                               (parsed-begin0-body e_0))
                              (if (parsed-let_-values? e_0)
                                (begin
                                  (let ((lst_0
                                         (parsed-let_-values-clauses e_0)))
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (lst_1)
                                            (begin
                                              (if (pair? lst_1)
                                                (let ((clause_0
                                                       (unsafe-car lst_1)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_1)))
                                                    (begin
                                                      (check-no-disallowed-expr_0
                                                       (cadr clause_0))
                                                      (for-loop_0 rest_0))))
                                                (values)))))))
                                       (for-loop_0 lst_0))))
                                  (void)
                                  (check-body-no-disallowed-expr_0
                                   (parsed-let_-values-body e_0)))
                                (if (let ((or-part_0
                                           (parsed-quote-syntax? e_0)))
                                      (if or-part_0
                                        or-part_0
                                        (|parsed-#%variable-reference?| e_0)))
                                  (disallow e_0)
                                  (void))))))))))))))))
      (check-body-no-disallowed-expr_0
       (|#%name|
        check-body-no-disallowed-expr
        (lambda (l_0)
          (begin
            (begin
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((e_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (begin
                                (check-no-disallowed-expr_0 e_0)
                                (for-loop_0 rest_0))))
                          (values)))))))
                 (for-loop_0 l_0)))
              (void)))))))
     (check-body_0 bodys_0))))
(define check-count
  (lambda (is-num_0 expected-num_0 enclosing_0)
    (if (= is-num_0 expected-num_0) (void) (disallow enclosing_0))))
(define check-datum
  (lambda (d_0 e_0)
    (if (let ((or-part_0 (number? d_0)))
          (if or-part_0
            or-part_0
            (let ((or-part_1 (boolean? d_0)))
              (if or-part_1
                or-part_1
                (let ((or-part_2 (symbol? d_0)))
                  (if or-part_2
                    or-part_2
                    (let ((or-part_3 (string? d_0)))
                      (if or-part_3
                        or-part_3
                        (let ((or-part_4 (bytes? d_0)))
                          (if or-part_4 or-part_4 (null? d_0)))))))))))
      (void)
      (disallow e_0))))
(define quoted-string?
  (lambda (e_0)
    (if (parsed-quote? e_0) (string? (parsed-quote-datum e_0)) #f)))
(define cross-phase-primitive-name
  (lambda (id_0)
    (if (parsed-id? id_0)
      (let ((b_0 (parsed-id-binding id_0)))
        (if (module-binding? b_0)
          (if (eq?
               runtime-module-name
               (1/module-path-index-resolve (module-binding-module b_0)))
            (module-binding-sym b_0)
            #f)
          #f))
      #f)))
(define disallow
  (lambda (body_0)
    (raise-syntax-error$1
     'module
     "not allowed in a cross-phase persistent module"
     (if (parsed? body_0)
       (datum->syntax$1 #f body_0 (parsed-s body_0))
       body_0))))
(define 1/call-with-module-prompt
  (|#%name|
   call-with-module-prompt
   (lambda (thunk_0)
     (begin
       (call-with-continuation-prompt
        thunk_0
        (default-continuation-prompt-tag)
        module-prompt-handler)))))
(define call-with-module-prompt/value-list
  (lambda (who_0 thunk_0 ids_0 handler_0)
    (1/call-with-module-prompt
     (lambda ()
       (|#%call-with-values|
        thunk_0
        (lambda vals_0
          (begin
            (if (let ((app_0 (length vals_0))) (= app_0 (length ids_0)))
              (void)
              (raise-bindings-arity-error who_0 ids_0 vals_0))
            (|#%app| handler_0 vals_0)
            (apply values vals_0))))))))
(define module-prompt-handler
  (lambda args_0
    (apply
     abort-current-continuation
     (default-continuation-prompt-tag)
     args_0)))
(define effect_2132
  (begin
    (void
     (add-core-form!*
      'module
      (lambda (s_0 ctx_0)
        (begin
          (if (eq?
               (begin-unsafe (expand-context/outer-context ctx_0))
               'top-level)
            (void)
            (begin
              (let ((obs_0
                     (begin-unsafe
                      (expand-context/inner-observer
                       (root-expand-context/outer-inner ctx_0)))))
                (if obs_0 (call-expand-observe obs_0 'prim-module #f) (void)))
              (raise-syntax-error$1
               #f
               "allowed only at the top level or in a module top-level"
               s_0)))
          (if log-performance?
            (start-performance-region 'expand 'module)
            (void))
          (begin0
            (expand-module.1 #f #f #f #f unsafe-undefined #f s_0 ctx_0 #f)
            (if log-performance? (end-performance-region) (void)))))))
    (void)))
(define effect_2067
  (begin
    (void
     (add-core-form!*
      'module*
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (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)))
(define effect_2065
  (begin
    (void
     (add-core-form!*
      '|#%module-begin|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-module-begin #f)
              (void)))
          (if (eq?
               (begin-unsafe (expand-context/outer-context ctx_0))
               'module-begin)
            (void)
            (raise-syntax-error$1 #f "not in a module-definition context" s_0))
          (if (begin-unsafe
               (expand-context/inner-module-begin-k
                (root-expand-context/outer-inner ctx_0)))
            (void)
            (raise-syntax-error$1
             #f
             "not currently transforming a module"
             s_0))
          (|#%app|
           (begin-unsafe
            (expand-context/inner-module-begin-k
             (root-expand-context/outer-inner ctx_0)))
           s_0
           (if (expand-context/outer? ctx_0)
             (let ((inner208_0
                    (let ((the-struct_0
                           (root-expand-context/outer-inner ctx_0)))
                      (if (expand-context/inner? the-struct_0)
                        (expand-context/inner2.1
                         (root-expand-context/inner-self-mpi the-struct_0)
                         (root-expand-context/inner-module-scopes the-struct_0)
                         (root-expand-context/inner-top-level-bind-scope
                          the-struct_0)
                         (root-expand-context/inner-all-scopes-stx
                          the-struct_0)
                         (root-expand-context/inner-defined-syms the-struct_0)
                         (root-expand-context/inner-counter the-struct_0)
                         (root-expand-context/inner-lift-key the-struct_0)
                         (expand-context/inner-to-parsed? the-struct_0)
                         (expand-context/inner-phase the-struct_0)
                         (expand-context/inner-namespace the-struct_0)
                         (expand-context/inner-just-once? the-struct_0)
                         #f
                         (expand-context/inner-allow-unbound? the-struct_0)
                         (expand-context/inner-in-local-expand? the-struct_0)
                         (|expand-context/inner-keep-#%expression?|
                          the-struct_0)
                         (expand-context/inner-stops the-struct_0)
                         (expand-context/inner-declared-submodule-names
                          the-struct_0)
                         (expand-context/inner-lifts the-struct_0)
                         (expand-context/inner-lift-envs the-struct_0)
                         (expand-context/inner-module-lifts the-struct_0)
                         (expand-context/inner-require-lifts the-struct_0)
                         (expand-context/inner-to-module-lifts the-struct_0)
                         (expand-context/inner-requires+provides the-struct_0)
                         (expand-context/inner-observer the-struct_0)
                         (expand-context/inner-for-serializable? the-struct_0)
                         (expand-context/inner-to-correlated-linklet?
                          the-struct_0)
                         (expand-context/inner-normalize-locals? the-struct_0)
                         (expand-context/inner-parsing-expanded? the-struct_0)
                         (expand-context/inner-skip-visit-available?
                          the-struct_0))
                        (raise-argument-error
                         'struct-copy
                         "expand-context/inner?"
                         the-struct_0)))))
               (expand-context/outer1.1
                inner208_0
                (root-expand-context/outer-post-expansion ctx_0)
                (root-expand-context/outer-use-site-scopes ctx_0)
                (root-expand-context/outer-frame-id ctx_0)
                (expand-context/outer-context ctx_0)
                (expand-context/outer-env ctx_0)
                (expand-context/outer-scopes ctx_0)
                (expand-context/outer-def-ctx-scopes ctx_0)
                (expand-context/outer-binding-layer ctx_0)
                (expand-context/outer-reference-records ctx_0)
                (expand-context/outer-only-immediate? ctx_0)
                (expand-context/outer-need-eventually-defined ctx_0)
                (expand-context/outer-current-introduction-scopes ctx_0)
                (expand-context/outer-current-use-scopes ctx_0)
                (expand-context/outer-name ctx_0)))
             (raise-argument-error
              'struct-copy
              "expand-context/outer?"
              ctx_0)))))))
    (void)))
(define effect_2597
  (begin
    (void
     (add-core-form!*
      '|#%declare|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-declare #f) (void)))
          (raise-syntax-error$1
           #f
           "not allowed outside of a module top-level"
           s_0)))))
    (void)))
(define expand-module.1
  (|#%name|
   expand-module
   (lambda (always-produce-compiled?1_0
            enclosing-is-cross-phase-persistent?3_0
            enclosing-requires+provides4_0
            keep-enclosing-scope-at-phase2_0
            modules-being-compiled6_0
            mpis-for-enclosing-reset5_0
            s13_0
            init-ctx14_0
            enclosing-self15_0)
     (begin
       (let ((modules-being-compiled_0
              (if (eq? modules-being-compiled6_0 unsafe-undefined)
                (make-hasheq)
                modules-being-compiled6_0)))
         (begin
           (let ((obs_0
                  (begin-unsafe
                   (expand-context/inner-observer
                    (root-expand-context/outer-inner init-ctx14_0)))))
             (if obs_0 (call-expand-observe obs_0 'prim-module s13_0) (void)))
           (call-with-values
            (lambda ()
              (call-with-values
               (lambda ()
                 (let ((s_0 (if (syntax?$1 s13_0) (syntax-e$1 s13_0) s13_0)))
                   (if (pair? s_0)
                     (let ((module214_0 (let ((s_1 (car s_0))) s_1)))
                       (call-with-values
                        (lambda ()
                          (let ((s_1 (cdr s_0)))
                            (let ((s_2
                                   (if (syntax?$1 s_1) (syntax-e$1 s_1) s_1)))
                              (if (pair? s_2)
                                (let ((id:module-name218_0
                                       (let ((s_3 (car s_2)))
                                         (if (let ((or-part_0
                                                    (if (syntax?$1 s_3)
                                                      (symbol?
                                                       (syntax-e$1 s_3))
                                                      #f)))
                                               (if or-part_0
                                                 or-part_0
                                                 (symbol? s_3)))
                                           s_3
                                           (raise-syntax-error$1
                                            #f
                                            "not an identifier"
                                            s13_0
                                            s_3)))))
                                  (call-with-values
                                   (lambda ()
                                     (let ((s_3 (cdr s_2)))
                                       (let ((s_4
                                              (if (syntax?$1 s_3)
                                                (syntax-e$1 s_3)
                                                s_3)))
                                         (if (pair? s_4)
                                           (let ((initial-require221_0
                                                  (let ((s_5 (car s_4))) s_5)))
                                             (let ((body222_0
                                                    (let ((s_5 (cdr s_4)))
                                                      (let ((s_6
                                                             (if (syntax?$1
                                                                  s_5)
                                                               (syntax-e$1 s_5)
                                                               s_5)))
                                                        (let ((flat-s_0
                                                               (to-syntax-list.1
                                                                s_6)))
                                                          (if (not flat-s_0)
                                                            (raise-syntax-error$1
                                                             #f
                                                             "bad syntax"
                                                             s13_0)
                                                            flat-s_0))))))
                                               (let ((initial-require221_1
                                                      initial-require221_0))
                                                 (values
                                                  initial-require221_1
                                                  body222_0))))
                                           (raise-syntax-error$1
                                            #f
                                            "bad syntax"
                                            s13_0)))))
                                   (case-lambda
                                    ((initial-require219_0 body220_0)
                                     (let ((id:module-name218_1
                                            id:module-name218_0))
                                       (values
                                        id:module-name218_1
                                        initial-require219_0
                                        body220_0)))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))
                                (raise-syntax-error$1
                                 #f
                                 "bad syntax"
                                 s13_0)))))
                        (case-lambda
                         ((id:module-name215_0 initial-require216_0 body217_0)
                          (let ((module214_1 module214_0))
                            (values
                             module214_1
                             id:module-name215_0
                             initial-require216_0
                             body217_0)))
                         (args (raise-binding-result-arity-error 3 args)))))
                     (raise-syntax-error$1 #f "bad syntax" s13_0))))
               (case-lambda
                ((module210_0
                  id:module-name211_0
                  initial-require212_0
                  body213_0)
                 (values
                  #t
                  module210_0
                  id:module-name211_0
                  initial-require212_0
                  body213_0))
                (args (raise-binding-result-arity-error 4 args)))))
            (case-lambda
             ((ok?_0
               module210_0
               id:module-name211_0
               initial-require212_0
               body213_0)
              (let ((rebuild-s_0
                     (keep-as-needed.1 #f #t #t init-ctx14_0 s13_0)))
                (let ((initial-require_0
                       (syntax->datum$1 initial-require212_0)))
                  (begin
                    (if (if keep-enclosing-scope-at-phase2_0
                          keep-enclosing-scope-at-phase2_0
                          (1/module-path? initial-require_0))
                      (void)
                      (raise-syntax-error$1
                       #f
                       "not a module path"
                       s13_0
                       initial-require212_0))
                    (let ((module-name-sym_0 (syntax-e$1 id:module-name211_0)))
                      (let ((outside-scope_0 (new-scope 'module)))
                        (let ((inside-scope_0
                               (new-multi-scope module-name-sym_0)))
                          (let ((self_0
                                 (make-self-module-path-index
                                  (if enclosing-self15_0
                                    module-name-sym_0
                                    (string->uninterned-symbol
                                     (symbol->string module-name-sym_0)))
                                  enclosing-self15_0)))
                            (let ((enclosing-mod_0
                                   (if enclosing-self15_0
                                     (1/module-path-index-join
                                      '(submod "..")
                                      self_0)
                                     #f)))
                              (begin
                                (if mpis-for-enclosing-reset5_0
                                  (set-box!
                                   mpis-for-enclosing-reset5_0
                                   (cons
                                    enclosing-mod_0
                                    (unbox mpis-for-enclosing-reset5_0)))
                                  (void))
                                (let ((apply-module-scopes_0
                                       (make-apply-module-scopes
                                        outside-scope_0
                                        inside-scope_0
                                        init-ctx14_0
                                        keep-enclosing-scope-at-phase2_0
                                        self_0
                                        enclosing-self15_0
                                        enclosing-mod_0)))
                                  (let ((initial-require-s_0
                                         (|#%app|
                                          apply-module-scopes_0
                                          initial-require212_0)))
                                    (let ((root-ctx_0
                                           (let ((temp235_0
                                                  (if keep-enclosing-scope-at-phase2_0
                                                    (begin-unsafe
                                                     (root-expand-context/inner-module-scopes
                                                      (root-expand-context/outer-inner
                                                       init-ctx14_0)))
                                                    null)))
                                             (make-root-expand-context.1
                                              initial-require-s_0
                                              temp235_0
                                              outside-scope_0
                                              inside-scope_0
                                              self_0))))
                                      (let ((new-module-scopes_0
                                             (begin-unsafe
                                              (root-expand-context/inner-module-scopes
                                               (root-expand-context/outer-inner
                                                root-ctx_0)))))
                                        (let ((frame-id_0
                                               (begin-unsafe
                                                (root-expand-context/outer-frame-id
                                                 root-ctx_0))))
                                          (let ((portal-syntaxes_0
                                                 (make-hasheqv)))
                                            (let ((make-m-ns_0
                                                   (|#%name|
                                                    make-m-ns
                                                    (lambda (for-submodule?223_0
                                                             ns225_0)
                                                      (begin
                                                        (let ((for-submodule?_0
                                                               (if (eq?
                                                                    for-submodule?223_0
                                                                    unsafe-undefined)
                                                                 (if enclosing-self15_0
                                                                   #t
                                                                   #f)
                                                                 for-submodule?223_0)))
                                                          (make-module-namespace.1
                                                           for-submodule?_0
                                                           self_0
                                                           portal-syntaxes_0
                                                           root-ctx_0
                                                           ns225_0)))))))
                                              (let ((m-ns_0
                                                     (let ((temp244_0
                                                            (begin-unsafe
                                                             (expand-context/inner-namespace
                                                              (root-expand-context/outer-inner
                                                               init-ctx14_0)))))
                                                       (make-m-ns_0
                                                        unsafe-undefined
                                                        temp244_0))))
                                                (let ((ctx_0
                                                       (let ((v_0
                                                              (copy-root-expand-context
                                                               init-ctx14_0
                                                               root-ctx_0)))
                                                         (if (expand-context/outer?
                                                              v_0)
                                                           (let ((post-expansion245_0
                                                                  (|#%name|
                                                                   post-expansion245
                                                                   (lambda (s_0)
                                                                     (begin
                                                                       (add-scope
                                                                        s_0
                                                                        inside-scope_0))))))
                                                             (let ((inner246_0
                                                                    (let ((the-struct_0
                                                                           (root-expand-context/outer-inner
                                                                            v_0)))
                                                                      (if (expand-context/inner?
                                                                           the-struct_0)
                                                                        (expand-context/inner2.1
                                                                         (root-expand-context/inner-self-mpi
                                                                          the-struct_0)
                                                                         (root-expand-context/inner-module-scopes
                                                                          the-struct_0)
                                                                         (root-expand-context/inner-top-level-bind-scope
                                                                          the-struct_0)
                                                                         (root-expand-context/inner-all-scopes-stx
                                                                          the-struct_0)
                                                                         (root-expand-context/inner-defined-syms
                                                                          the-struct_0)
                                                                         (root-expand-context/inner-counter
                                                                          the-struct_0)
                                                                         (root-expand-context/inner-lift-key
                                                                          the-struct_0)
                                                                         (expand-context/inner-to-parsed?
                                                                          the-struct_0)
                                                                         0
                                                                         m-ns_0
                                                                         #f
                                                                         (expand-context/inner-module-begin-k
                                                                          the-struct_0)
                                                                         #f
                                                                         (expand-context/inner-in-local-expand?
                                                                          the-struct_0)
                                                                         (|expand-context/inner-keep-#%expression?|
                                                                          the-struct_0)
                                                                         (expand-context/inner-stops
                                                                          the-struct_0)
                                                                         (expand-context/inner-declared-submodule-names
                                                                          the-struct_0)
                                                                         (expand-context/inner-lifts
                                                                          the-struct_0)
                                                                         (expand-context/inner-lift-envs
                                                                          the-struct_0)
                                                                         (expand-context/inner-module-lifts
                                                                          the-struct_0)
                                                                         (expand-context/inner-require-lifts
                                                                          the-struct_0)
                                                                         (expand-context/inner-to-module-lifts
                                                                          the-struct_0)
                                                                         (expand-context/inner-requires+provides
                                                                          the-struct_0)
                                                                         (expand-context/inner-observer
                                                                          the-struct_0)
                                                                         (expand-context/inner-for-serializable?
                                                                          the-struct_0)
                                                                         (expand-context/inner-to-correlated-linklet?
                                                                          the-struct_0)
                                                                         (expand-context/inner-normalize-locals?
                                                                          the-struct_0)
                                                                         (expand-context/inner-parsing-expanded?
                                                                          the-struct_0)
                                                                         (expand-context/inner-skip-visit-available?
                                                                          the-struct_0))
                                                                        (raise-argument-error
                                                                         'struct-copy
                                                                         "expand-context/inner?"
                                                                         the-struct_0)))))
                                                               (let ((post-expansion245_1
                                                                      post-expansion245_0))
                                                                 (expand-context/outer1.1
                                                                  inner246_0
                                                                  post-expansion245_1
                                                                  (root-expand-context/outer-use-site-scopes
                                                                   v_0)
                                                                  (root-expand-context/outer-frame-id
                                                                   v_0)
                                                                  (expand-context/outer-context
                                                                   v_0)
                                                                  (expand-context/outer-env
                                                                   v_0)
                                                                  (expand-context/outer-scopes
                                                                   v_0)
                                                                  (expand-context/outer-def-ctx-scopes
                                                                   v_0)
                                                                  (expand-context/outer-binding-layer
                                                                   v_0)
                                                                  (expand-context/outer-reference-records
                                                                   v_0)
                                                                  (expand-context/outer-only-immediate?
                                                                   v_0)
                                                                  (expand-context/outer-need-eventually-defined
                                                                   v_0)
                                                                  (expand-context/outer-current-introduction-scopes
                                                                   v_0)
                                                                  (expand-context/outer-current-use-scopes
                                                                   v_0)
                                                                  (expand-context/outer-name
                                                                   v_0)))))
                                                           (raise-argument-error
                                                            'struct-copy
                                                            "expand-context/outer?"
                                                            v_0)))))
                                                  (let ((bodys_0
                                                         (let ((scoped-s_0
                                                                (|#%app|
                                                                 apply-module-scopes_0
                                                                 s13_0)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             scoped-s_0)
                                                                          (syntax-e$1
                                                                           scoped-s_0)
                                                                          scoped-s_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((s_1
                                                                                 (cdr
                                                                                  s_0)))
                                                                            (let ((s_2
                                                                                   (if (syntax?$1
                                                                                        s_1)
                                                                                     (syntax-e$1
                                                                                      s_1)
                                                                                     s_1)))
                                                                              (if (pair?
                                                                                   s_2)
                                                                                (let ((_1
                                                                                       (let ((s_3
                                                                                              (car
                                                                                               s_2)))
                                                                                         s_3)))
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((s_3
                                                                                            (cdr
                                                                                             s_2)))
                                                                                       (let ((s_4
                                                                                              (if (syntax?$1
                                                                                                   s_3)
                                                                                                (syntax-e$1
                                                                                                 s_3)
                                                                                                s_3)))
                                                                                         (if (pair?
                                                                                              s_4)
                                                                                           (let ((_2
                                                                                                  (let ((s_5
                                                                                                         (car
                                                                                                          s_4)))
                                                                                                    s_5)))
                                                                                             (let ((body263_0
                                                                                                    (let ((s_5
                                                                                                           (cdr
                                                                                                            s_4)))
                                                                                                      (let ((s_6
                                                                                                             (if (syntax?$1
                                                                                                                  s_5)
                                                                                                               (syntax-e$1
                                                                                                                s_5)
                                                                                                               s_5)))
                                                                                                        (let ((flat-s_0
                                                                                                               (to-syntax-list.1
                                                                                                                s_6)))
                                                                                                          (if (not
                                                                                                               flat-s_0)
                                                                                                            (raise-syntax-error$1
                                                                                                             #f
                                                                                                             "bad syntax"
                                                                                                             scoped-s_0)
                                                                                                            flat-s_0))))))
                                                                                               (let ((_3
                                                                                                      _2))
                                                                                                 (values
                                                                                                  _3
                                                                                                  body263_0))))
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "bad syntax"
                                                                                            scoped-s_0)))))
                                                                                   (case-lambda
                                                                                    ((_2
                                                                                      body261_0)
                                                                                     (let ((_3
                                                                                            _1))
                                                                                       (values
                                                                                        _3
                                                                                        _2
                                                                                        body261_0)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args)))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 scoped-s_0)))))
                                                                        (case-lambda
                                                                         ((_1
                                                                           _2
                                                                           body258_0)
                                                                          (let ((_3
                                                                                 _0))
                                                                            (values
                                                                             _3
                                                                             _1
                                                                             _2
                                                                             body258_0)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           3
                                                                           args)))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      scoped-s_0))))
                                                               (case-lambda
                                                                ((_0
                                                                  _1
                                                                  _2
                                                                  body254_0)
                                                                 (values
                                                                  #t
                                                                  _0
                                                                  _1
                                                                  _2
                                                                  body254_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  4
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_1
                                                               _0
                                                               _1
                                                               _2
                                                               body254_0)
                                                              body254_0)
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               5
                                                               args)))))))
                                                    (let ((requires+provides_0
                                                           (make-requires+provides.1
                                                            #f
                                                            portal-syntaxes_0
                                                            self_0)))
                                                      (let ((defined-syms_0
                                                             (begin-unsafe
                                                              (root-expand-context/inner-defined-syms
                                                               (root-expand-context/outer-inner
                                                                root-ctx_0)))))
                                                        (let ((compiled-submodules_0
                                                               (make-hasheq)))
                                                          (let ((compiled-module-box_0
                                                                 (box #f)))
                                                            (let ((mpis-to-reset_0
                                                                   (box null)))
                                                              (let ((add-defined-portal_0
                                                                     (let ((app_0
                                                                            requires+provides_0))
                                                                       (make-add-defined-portal
                                                                        self_0
                                                                        app_0
                                                                        portal-syntaxes_0
                                                                        defined-syms_0
                                                                        initial-require-s_0
                                                                        frame-id_0
                                                                        m-ns_0))))
                                                                (let ((initial-require!_0
                                                                       (|#%name|
                                                                        initial-require!
                                                                        (lambda (bind?227_0)
                                                                          (begin
                                                                            (if (not
                                                                                 keep-enclosing-scope-at-phase2_0)
                                                                              (let ((initial-mpi_0
                                                                                     (build-initial-require-mpi
                                                                                      initial-require_0
                                                                                      self_0)))
                                                                                (begin
                                                                                  (let ((requires+provides270_0
                                                                                         requires+provides_0))
                                                                                    (perform-initial-require!.1
                                                                                     bind?227_0
                                                                                     'module
                                                                                     initial-mpi_0
                                                                                     self_0
                                                                                     initial-require-s_0
                                                                                     m-ns_0
                                                                                     requires+provides270_0))
                                                                                  initial-mpi_0))
                                                                              (begin
                                                                                (add-required-module!
                                                                                 requires+provides_0
                                                                                 enclosing-mod_0
                                                                                 keep-enclosing-scope-at-phase2_0
                                                                                 enclosing-is-cross-phase-persistent?3_0)
                                                                                (let ((requires+provides273_0
                                                                                       requires+provides_0))
                                                                                  (add-enclosing-module-defined-and-required!.1
                                                                                   enclosing-requires+provides4_0
                                                                                   requires+provides273_0
                                                                                   enclosing-mod_0
                                                                                   keep-enclosing-scope-at-phase2_0))
                                                                                (namespace-module-visit!.1
                                                                                 #f
                                                                                 unsafe-undefined
                                                                                 m-ns_0
                                                                                 enclosing-mod_0
                                                                                 keep-enclosing-scope-at-phase2_0)
                                                                                #f)))))))
                                                                  (begin
                                                                    (let ((obs_0
                                                                           (begin-unsafe
                                                                            (expand-context/inner-observer
                                                                             (root-expand-context/outer-inner
                                                                              init-ctx14_0)))))
                                                                      (if obs_0
                                                                        (call-expand-observe
                                                                         obs_0
                                                                         'prepare-env)
                                                                        (void)))
                                                                    (let ((initial-mpi_0
                                                                           (initial-require!_0
                                                                            #t)))
                                                                      (begin
                                                                        (let ((obs_0
                                                                               (begin-unsafe
                                                                                (expand-context/inner-observer
                                                                                 (root-expand-context/outer-inner
                                                                                  init-ctx14_0)))))
                                                                          (if obs_0
                                                                            (call-expand-observe
                                                                             obs_0
                                                                             'rename-one
                                                                             bodys_0)
                                                                            (void)))
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (if initial-mpi_0
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (let ((app_0
                                                                                       load-configure-expand))
                                                                                  (|#%app|
                                                                                   app_0
                                                                                   initial-mpi_0
                                                                                   (namespace-root-namespace
                                                                                    m-ns_0))))
                                                                              (case-lambda
                                                                               ((enter_0
                                                                                 exit_0)
                                                                                (values
                                                                                 (enter-configure-parameterization
                                                                                  enter_0)
                                                                                 exit_0))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 2
                                                                                 args))))
                                                                             (values
                                                                              (current-parameterization)
                                                                              current-parameterization)))
                                                                         (case-lambda
                                                                          ((paramz_0
                                                                            exit-paramz_0)
                                                                           (let ((again?_0
                                                                                  #f))
                                                                             (letrec*
                                                                              ((module-begin-k_0
                                                                                (|#%name|
                                                                                 module-begin-k
                                                                                 (lambda (mb-s_0
                                                                                          mb-init-ctx_0)
                                                                                   (begin
                                                                                     (begin
                                                                                       (if again?_0
                                                                                         (begin
                                                                                           (requires+provides-reset!
                                                                                            requires+provides_0)
                                                                                           (initial-require!_0
                                                                                            #f)
                                                                                           (hash-clear!
                                                                                            compiled-submodules_0)
                                                                                           (set-box!
                                                                                            compiled-module-box_0
                                                                                            #f))
                                                                                         (void))
                                                                                       (begin
                                                                                         (set! again?_0
                                                                                           #t)
                                                                                         (let ((ctx_1
                                                                                                (if (expand-context/outer?
                                                                                                     mb-init-ctx_0)
                                                                                                  (let ((post-expansion286_0
                                                                                                         (|#%name|
                                                                                                          post-expansion286
                                                                                                          (lambda (s_0)
                                                                                                            (begin
                                                                                                              (add-scope
                                                                                                               s_0
                                                                                                               inside-scope_0))))))
                                                                                                    (let ((inner287_0
                                                                                                           (let ((the-struct_0
                                                                                                                  (root-expand-context/outer-inner
                                                                                                                   mb-init-ctx_0)))
                                                                                                             (if (expand-context/inner?
                                                                                                                  the-struct_0)
                                                                                                               (let ((module-begin-k288_0
                                                                                                                      (|#%name|
                                                                                                                       module-begin-k288
                                                                                                                       (lambda (s_0
                                                                                                                                ctx_1)
                                                                                                                         (begin
                                                                                                                           (let ((new-requires+provides_0
                                                                                                                                  (let ((requires+provides298_0
                                                                                                                                         requires+provides_0))
                                                                                                                                    (make-requires+provides.1
                                                                                                                                     requires+provides298_0
                                                                                                                                     unsafe-undefined
                                                                                                                                     self_0))))
                                                                                                                             (let ((requires+provides289_0
                                                                                                                                    requires+provides_0))
                                                                                                                               (let ((compiled-submodules290_0
                                                                                                                                      compiled-submodules_0))
                                                                                                                                 (let ((compiled-module-box291_0
                                                                                                                                        compiled-module-box_0))
                                                                                                                                   (let ((defined-syms292_0
                                                                                                                                          defined-syms_0))
                                                                                                                                     (let ((compiled-submodules294_0
                                                                                                                                            (make-hasheq)))
                                                                                                                                       (let ((compiled-module-box295_0
                                                                                                                                              (box
                                                                                                                                               #f)))
                                                                                                                                         (let ((defined-syms296_0
                                                                                                                                                (make-hasheq)))
                                                                                                                                           (let ((compiled-module-box295_1
                                                                                                                                                  compiled-module-box295_0)
                                                                                                                                                 (compiled-submodules294_1
                                                                                                                                                  compiled-submodules294_0)
                                                                                                                                                 (defined-syms292_1
                                                                                                                                                  defined-syms292_0)
                                                                                                                                                 (compiled-module-box291_1
                                                                                                                                                  compiled-module-box291_0)
                                                                                                                                                 (compiled-submodules290_1
                                                                                                                                                  compiled-submodules290_0)
                                                                                                                                                 (requires+provides289_1
                                                                                                                                                  requires+provides289_0))
                                                                                                                                             (dynamic-wind
                                                                                                                                              (lambda ()
                                                                                                                                                (begin
                                                                                                                                                  (set! requires+provides_0
                                                                                                                                                    new-requires+provides_0)
                                                                                                                                                  (set! compiled-submodules_0
                                                                                                                                                    compiled-submodules294_1)
                                                                                                                                                  (set! compiled-module-box_0
                                                                                                                                                    compiled-module-box295_1)
                                                                                                                                                  (set! defined-syms_0
                                                                                                                                                    defined-syms296_0)))
                                                                                                                                              (lambda ()
                                                                                                                                                (module-begin-k_0
                                                                                                                                                 s_0
                                                                                                                                                 ctx_1))
                                                                                                                                              (lambda ()
                                                                                                                                                (begin
                                                                                                                                                  (set! requires+provides_0
                                                                                                                                                    requires+provides289_1)
                                                                                                                                                  (set! compiled-submodules_0
                                                                                                                                                    compiled-submodules290_1)
                                                                                                                                                  (set! compiled-module-box_0
                                                                                                                                                    compiled-module-box291_1)
                                                                                                                                                  (set! defined-syms_0
                                                                                                                                                    defined-syms292_1))))))))))))))))))
                                                                                                                 (expand-context/inner2.1
                                                                                                                  (root-expand-context/inner-self-mpi
                                                                                                                   the-struct_0)
                                                                                                                  (root-expand-context/inner-module-scopes
                                                                                                                   the-struct_0)
                                                                                                                  (root-expand-context/inner-top-level-bind-scope
                                                                                                                   the-struct_0)
                                                                                                                  (root-expand-context/inner-all-scopes-stx
                                                                                                                   the-struct_0)
                                                                                                                  (root-expand-context/inner-defined-syms
                                                                                                                   the-struct_0)
                                                                                                                  (root-expand-context/inner-counter
                                                                                                                   the-struct_0)
                                                                                                                  (root-expand-context/inner-lift-key
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-to-parsed?
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-phase
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-namespace
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-just-once?
                                                                                                                   the-struct_0)
                                                                                                                  module-begin-k288_0
                                                                                                                  (expand-context/inner-allow-unbound?
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-in-local-expand?
                                                                                                                   the-struct_0)
                                                                                                                  (|expand-context/inner-keep-#%expression?|
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-stops
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-declared-submodule-names
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-lifts
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-lift-envs
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-module-lifts
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-require-lifts
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-to-module-lifts
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-requires+provides
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-observer
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-for-serializable?
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-to-correlated-linklet?
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-normalize-locals?
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-parsing-expanded?
                                                                                                                   the-struct_0)
                                                                                                                  (expand-context/inner-skip-visit-available?
                                                                                                                   the-struct_0)))
                                                                                                               (raise-argument-error
                                                                                                                'struct-copy
                                                                                                                "expand-context/inner?"
                                                                                                                the-struct_0)))))
                                                                                                      (let ((post-expansion286_1
                                                                                                             post-expansion286_0))
                                                                                                        (expand-context/outer1.1
                                                                                                         inner287_0
                                                                                                         post-expansion286_1
                                                                                                         (root-expand-context/outer-use-site-scopes
                                                                                                          mb-init-ctx_0)
                                                                                                         (root-expand-context/outer-frame-id
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-context
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-env
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-scopes
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-def-ctx-scopes
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-binding-layer
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-reference-records
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-only-immediate?
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-need-eventually-defined
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-current-introduction-scopes
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-current-use-scopes
                                                                                                          mb-init-ctx_0)
                                                                                                         (expand-context/outer-name
                                                                                                          mb-init-ctx_0)))))
                                                                                                  (raise-argument-error
                                                                                                   'struct-copy
                                                                                                   "expand-context/outer?"
                                                                                                   mb-init-ctx_0))))
                                                                                           (let ((added-s_0
                                                                                                  (add-scope
                                                                                                   mb-s_0
                                                                                                   inside-scope_0)))
                                                                                             (call-with-values
                                                                                              (lambda ()
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (let ((s_0
                                                                                                          (if (syntax?$1
                                                                                                               added-s_0)
                                                                                                            (syntax-e$1
                                                                                                             added-s_0)
                                                                                                            added-s_0)))
                                                                                                     (if (pair?
                                                                                                          s_0)
                                                                                                       (let ((|#%module-begin283_0|
                                                                                                              (let ((s_1
                                                                                                                     (car
                                                                                                                      s_0)))
                                                                                                                s_1)))
                                                                                                         (let ((body284_0
                                                                                                                (let ((s_1
                                                                                                                       (cdr
                                                                                                                        s_0)))
                                                                                                                  (let ((s_2
                                                                                                                         (if (syntax?$1
                                                                                                                              s_1)
                                                                                                                           (syntax-e$1
                                                                                                                            s_1)
                                                                                                                           s_1)))
                                                                                                                    (let ((flat-s_0
                                                                                                                           (to-syntax-list.1
                                                                                                                            s_2)))
                                                                                                                      (if (not
                                                                                                                           flat-s_0)
                                                                                                                        (raise-syntax-error$1
                                                                                                                         #f
                                                                                                                         "bad syntax"
                                                                                                                         added-s_0)
                                                                                                                        flat-s_0))))))
                                                                                                           (let ((|#%module-begin283_1|
                                                                                                                  |#%module-begin283_0|))
                                                                                                             (values
                                                                                                              |#%module-begin283_1|
                                                                                                              body284_0))))
                                                                                                       (raise-syntax-error$1
                                                                                                        #f
                                                                                                        "bad syntax"
                                                                                                        added-s_0))))
                                                                                                 (case-lambda
                                                                                                  ((|#%module-begin281_0|
                                                                                                    body282_0)
                                                                                                   (values
                                                                                                    #t
                                                                                                    |#%module-begin281_0|
                                                                                                    body282_0))
                                                                                                  (args
                                                                                                   (raise-binding-result-arity-error
                                                                                                    2
                                                                                                    args)))))
                                                                                              (case-lambda
                                                                                               ((ok?_1
                                                                                                 |#%module-begin281_0|
                                                                                                 body282_0)
                                                                                                (begin
                                                                                                  (let ((obs_0
                                                                                                         (begin-unsafe
                                                                                                          (expand-context/inner-observer
                                                                                                           (root-expand-context/outer-inner
                                                                                                            ctx_1)))))
                                                                                                    (if obs_0
                                                                                                      (call-expand-observe
                                                                                                       obs_0
                                                                                                       'rename-one
                                                                                                       added-s_0)
                                                                                                      (void)))
                                                                                                  (let ((rebuild-mb-s_0
                                                                                                         (keep-as-needed.1
                                                                                                          #f
                                                                                                          #f
                                                                                                          #f
                                                                                                          ctx_1
                                                                                                          mb-s_0)))
                                                                                                    (let ((need-eventually-defined_0
                                                                                                           (make-hasheqv)))
                                                                                                      (let ((module-ends_0
                                                                                                             (make-shared-module-ends)))
                                                                                                        (let ((declared-keywords_0
                                                                                                               (make-hasheq)))
                                                                                                          (let ((declared-submodule-names_0
                                                                                                                 (make-hasheq)))
                                                                                                            (let ((initial-lifted-requires_0
                                                                                                                   (let ((require-lifts_0
                                                                                                                          (begin-unsafe
                                                                                                                           (expand-context/inner-require-lifts
                                                                                                                            (root-expand-context/outer-inner
                                                                                                                             ctx_1)))))
                                                                                                                     (begin-unsafe
                                                                                                                      (unbox
                                                                                                                       (require-lift-context-requires
                                                                                                                        require-lifts_0))))))
                                                                                                              (let ((expression-expanded-bodys_0
                                                                                                                     (letrec*
                                                                                                                      ((pass-1-and-2-loop_0
                                                                                                                        (|#%name|
                                                                                                                         pass-1-and-2-loop
                                                                                                                         (lambda (bodys_1
                                                                                                                                  phase_0
                                                                                                                                  keep-stops?_0
                                                                                                                                  initial-lifted-requires_1)
                                                                                                                           (begin
                                                                                                                             (let ((def-ctx-scopes_0
                                                                                                                                    (box
                                                                                                                                     null)))
                                                                                                                               (let ((partial-body-ctx_0
                                                                                                                                      (if (expand-context/outer?
                                                                                                                                           ctx_1)
                                                                                                                                        (let ((inner312_0
                                                                                                                                               (let ((the-struct_0
                                                                                                                                                      (root-expand-context/outer-inner
                                                                                                                                                       ctx_1)))
                                                                                                                                                 (if (expand-context/inner?
                                                                                                                                                      the-struct_0)
                                                                                                                                                   (let ((namespace314_0
                                                                                                                                                          (namespace->namespace-at-phase
                                                                                                                                                           m-ns_0
                                                                                                                                                           phase_0)))
                                                                                                                                                     (let ((stops315_0
                                                                                                                                                            (free-id-set
                                                                                                                                                             phase_0
                                                                                                                                                             (module-expand-stop-ids
                                                                                                                                                              phase_0))))
                                                                                                                                                       (let ((lift-key317_0
                                                                                                                                                              (generate-lift-key)))
                                                                                                                                                         (let ((lifts318_0
                                                                                                                                                                (let ((temp322_0
                                                                                                                                                                       (let ((app_0
                                                                                                                                                                              defined-syms_0))
                                                                                                                                                                         (make-wrap-as-definition
                                                                                                                                                                          self_0
                                                                                                                                                                          frame-id_0
                                                                                                                                                                          inside-scope_0
                                                                                                                                                                          initial-require-s_0
                                                                                                                                                                          app_0
                                                                                                                                                                          requires+provides_0))))
                                                                                                                                                                  (make-lift-context.1
                                                                                                                                                                   #f
                                                                                                                                                                   temp322_0))))
                                                                                                                                                           (let ((module-lifts319_0
                                                                                                                                                                  (begin-unsafe
                                                                                                                                                                   (module-lift-context15.1
                                                                                                                                                                    phase_0
                                                                                                                                                                    (box
                                                                                                                                                                     null)
                                                                                                                                                                    #t))))
                                                                                                                                                             (let ((require-lifts320_0
                                                                                                                                                                    (make-require-lift-context
                                                                                                                                                                     phase_0
                                                                                                                                                                     (let ((requires+provides325_0
                                                                                                                                                                            requires+provides_0))
                                                                                                                                                                       (make-parse-lifted-require.1
                                                                                                                                                                        add-defined-portal_0
                                                                                                                                                                        declared-submodule-names_0
                                                                                                                                                                        m-ns_0
                                                                                                                                                                        self_0
                                                                                                                                                                        requires+provides325_0))
                                                                                                                                                                     initial-lifted-requires_1)))
                                                                                                                                                               (let ((to-module-lifts321_0
                                                                                                                                                                      (make-to-module-lift-context.1
                                                                                                                                                                       #f
                                                                                                                                                                       module-ends_0
                                                                                                                                                                       phase_0)))
                                                                                                                                                                 (let ((require-lifts320_1
                                                                                                                                                                        require-lifts320_0)
                                                                                                                                                                       (module-lifts319_1
                                                                                                                                                                        module-lifts319_0)
                                                                                                                                                                       (lifts318_1
                                                                                                                                                                        lifts318_0)
                                                                                                                                                                       (lift-key317_1
                                                                                                                                                                        lift-key317_0)
                                                                                                                                                                       (stops315_1
                                                                                                                                                                        stops315_0)
                                                                                                                                                                       (namespace314_1
                                                                                                                                                                        namespace314_0))
                                                                                                                                                                   (expand-context/inner2.1
                                                                                                                                                                    (root-expand-context/inner-self-mpi
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (root-expand-context/inner-module-scopes
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (root-expand-context/inner-top-level-bind-scope
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (root-expand-context/inner-all-scopes-stx
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (root-expand-context/inner-defined-syms
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (root-expand-context/inner-counter
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    lift-key317_1
                                                                                                                                                                    (expand-context/inner-to-parsed?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    phase_0
                                                                                                                                                                    namespace314_1
                                                                                                                                                                    (expand-context/inner-just-once?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-module-begin-k
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-allow-unbound?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-in-local-expand?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (|expand-context/inner-keep-#%expression?|
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    stops315_1
                                                                                                                                                                    declared-submodule-names_0
                                                                                                                                                                    lifts318_1
                                                                                                                                                                    (expand-context/inner-lift-envs
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    module-lifts319_1
                                                                                                                                                                    require-lifts320_1
                                                                                                                                                                    to-module-lifts321_0
                                                                                                                                                                    (expand-context/inner-requires+provides
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-observer
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-for-serializable?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-to-correlated-linklet?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-normalize-locals?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-parsing-expanded?
                                                                                                                                                                     the-struct_0)
                                                                                                                                                                    (expand-context/inner-skip-visit-available?
                                                                                                                                                                     the-struct_0))))))))))
                                                                                                                                                   (raise-argument-error
                                                                                                                                                    'struct-copy
                                                                                                                                                    "expand-context/inner?"
                                                                                                                                                    the-struct_0)))))
                                                                                                                                          (expand-context/outer1.1
                                                                                                                                           inner312_0
                                                                                                                                           (root-expand-context/outer-post-expansion
                                                                                                                                            ctx_1)
                                                                                                                                           (root-expand-context/outer-use-site-scopes
                                                                                                                                            ctx_1)
                                                                                                                                           (root-expand-context/outer-frame-id
                                                                                                                                            ctx_1)
                                                                                                                                           'module
                                                                                                                                           (expand-context/outer-env
                                                                                                                                            ctx_1)
                                                                                                                                           (expand-context/outer-scopes
                                                                                                                                            ctx_1)
                                                                                                                                           def-ctx-scopes_0
                                                                                                                                           (expand-context/outer-binding-layer
                                                                                                                                            ctx_1)
                                                                                                                                           (expand-context/outer-reference-records
                                                                                                                                            ctx_1)
                                                                                                                                           (expand-context/outer-only-immediate?
                                                                                                                                            ctx_1)
                                                                                                                                           need-eventually-defined_0
                                                                                                                                           (expand-context/outer-current-introduction-scopes
                                                                                                                                            ctx_1)
                                                                                                                                           (expand-context/outer-current-use-scopes
                                                                                                                                            ctx_1)
                                                                                                                                           (expand-context/outer-name
                                                                                                                                            ctx_1)))
                                                                                                                                        (raise-argument-error
                                                                                                                                         'struct-copy
                                                                                                                                         "expand-context/outer?"
                                                                                                                                         ctx_1))))
                                                                                                                                 (let ((partially-expanded-bodys_0
                                                                                                                                        (let ((requires+provides337_0
                                                                                                                                               requires+provides_0))
                                                                                                                                          (let ((defined-syms340_0
                                                                                                                                                 defined-syms_0))
                                                                                                                                            (let ((compiled-submodules343_0
                                                                                                                                                   compiled-submodules_0))
                                                                                                                                              (let ((defined-syms340_1
                                                                                                                                                     defined-syms340_0)
                                                                                                                                                    (requires+provides337_1
                                                                                                                                                     requires+provides337_0))
                                                                                                                                                (partially-expand-bodys.1
                                                                                                                                                 add-defined-portal_0
                                                                                                                                                 initial-require-s_0
                                                                                                                                                 compiled-submodules343_0
                                                                                                                                                 partial-body-ctx_0
                                                                                                                                                 declared-keywords_0
                                                                                                                                                 declared-submodule-names_0
                                                                                                                                                 defined-syms340_1
                                                                                                                                                 frame-id_0
                                                                                                                                                 pass-1-and-2-loop_0
                                                                                                                                                 modules-being-compiled_0
                                                                                                                                                 mpis-to-reset_0
                                                                                                                                                 m-ns_0
                                                                                                                                                 need-eventually-defined_0
                                                                                                                                                 phase_0
                                                                                                                                                 portal-syntaxes_0
                                                                                                                                                 requires+provides337_1
                                                                                                                                                 self_0
                                                                                                                                                 bodys_1)))))))
                                                                                                                                   (begin
                                                                                                                                     (let ((obs_0
                                                                                                                                            (begin-unsafe
                                                                                                                                             (expand-context/inner-observer
                                                                                                                                              (root-expand-context/outer-inner
                                                                                                                                               partial-body-ctx_0)))))
                                                                                                                                       (if obs_0
                                                                                                                                         (call-expand-observe
                                                                                                                                          obs_0
                                                                                                                                          'next-group)
                                                                                                                                         (void)))
                                                                                                                                     (let ((body-ctx_0
                                                                                                                                            (let ((v_0
                                                                                                                                                   (accumulate-def-ctx-scopes
                                                                                                                                                    partial-body-ctx_0
                                                                                                                                                    def-ctx-scopes_0)))
                                                                                                                                              (if (expand-context/outer?
                                                                                                                                                   v_0)
                                                                                                                                                (let ((inner351_0
                                                                                                                                                       (let ((the-struct_0
                                                                                                                                                              (root-expand-context/outer-inner
                                                                                                                                                               v_0)))
                                                                                                                                                         (if (expand-context/inner?
                                                                                                                                                              the-struct_0)
                                                                                                                                                           (let ((stops352_0
                                                                                                                                                                  (if keep-stops?_0
                                                                                                                                                                    (begin-unsafe
                                                                                                                                                                     (expand-context/inner-stops
                                                                                                                                                                      (root-expand-context/outer-inner
                                                                                                                                                                       ctx_1)))
                                                                                                                                                                    empty-free-id-set)))
                                                                                                                                                             (let ((to-module-lifts353_0
                                                                                                                                                                    (make-to-module-lift-context.1
                                                                                                                                                                     #t
                                                                                                                                                                     module-ends_0
                                                                                                                                                                     phase_0)))
                                                                                                                                                               (let ((stops352_1
                                                                                                                                                                      stops352_0))
                                                                                                                                                                 (expand-context/inner2.1
                                                                                                                                                                  (root-expand-context/inner-self-mpi
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (root-expand-context/inner-module-scopes
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (root-expand-context/inner-top-level-bind-scope
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (root-expand-context/inner-all-scopes-stx
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (root-expand-context/inner-defined-syms
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (root-expand-context/inner-counter
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (root-expand-context/inner-lift-key
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-to-parsed?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-phase
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-namespace
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-just-once?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-module-begin-k
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-allow-unbound?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-in-local-expand?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (|expand-context/inner-keep-#%expression?|
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  stops352_1
                                                                                                                                                                  (expand-context/inner-declared-submodule-names
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-lifts
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-lift-envs
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-module-lifts
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-require-lifts
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  to-module-lifts353_0
                                                                                                                                                                  (expand-context/inner-requires+provides
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-observer
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-for-serializable?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-to-correlated-linklet?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-normalize-locals?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-parsing-expanded?
                                                                                                                                                                   the-struct_0)
                                                                                                                                                                  (expand-context/inner-skip-visit-available?
                                                                                                                                                                   the-struct_0)))))
                                                                                                                                                           (raise-argument-error
                                                                                                                                                            'struct-copy
                                                                                                                                                            "expand-context/inner?"
                                                                                                                                                            the-struct_0)))))
                                                                                                                                                  (expand-context/outer1.1
                                                                                                                                                   inner351_0
                                                                                                                                                   #f
                                                                                                                                                   (root-expand-context/outer-use-site-scopes
                                                                                                                                                    v_0)
                                                                                                                                                   (root-expand-context/outer-frame-id
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-context
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-env
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-scopes
                                                                                                                                                    v_0)
                                                                                                                                                   #f
                                                                                                                                                   (expand-context/outer-binding-layer
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-reference-records
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-only-immediate?
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-need-eventually-defined
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-current-introduction-scopes
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-current-use-scopes
                                                                                                                                                    v_0)
                                                                                                                                                   (expand-context/outer-name
                                                                                                                                                    v_0)))
                                                                                                                                                (raise-argument-error
                                                                                                                                                 'struct-copy
                                                                                                                                                 "expand-context/outer?"
                                                                                                                                                 v_0)))))
                                                                                                                                       (let ((compiled-submodules306_0
                                                                                                                                              compiled-submodules_0))
                                                                                                                                         (finish-expanding-body-expressions.1
                                                                                                                                          compiled-submodules306_0
                                                                                                                                          body-ctx_0
                                                                                                                                          declared-submodule-names_0
                                                                                                                                          modules-being-compiled_0
                                                                                                                                          mpis-to-reset_0
                                                                                                                                          phase_0
                                                                                                                                          self_0
                                                                                                                                          partially-expanded-bodys_0))))))))))))
                                                                                                                      (pass-1-and-2-loop_0
                                                                                                                       body282_0
                                                                                                                       0
                                                                                                                       (stop-at-module*?
                                                                                                                        ctx_1)
                                                                                                                       initial-lifted-requires_0))))
                                                                                                                (begin
                                                                                                                  (let ((obs_0
                                                                                                                         (begin-unsafe
                                                                                                                          (expand-context/inner-observer
                                                                                                                           (root-expand-context/outer-inner
                                                                                                                            ctx_1)))))
                                                                                                                    (if obs_0
                                                                                                                      (call-expand-observe
                                                                                                                       obs_0
                                                                                                                       'next-group)
                                                                                                                      (void)))
                                                                                                                  (begin
                                                                                                                    (check-defined-by-now
                                                                                                                     need-eventually-defined_0
                                                                                                                     self_0
                                                                                                                     ctx_1
                                                                                                                     requires+provides_0)
                                                                                                                    (begin
                                                                                                                      (let ((obs_0
                                                                                                                             (begin-unsafe
                                                                                                                              (expand-context/inner-observer
                                                                                                                               (root-expand-context/outer-inner
                                                                                                                                ctx_1)))))
                                                                                                                        (if obs_0
                                                                                                                          (call-expand-observe
                                                                                                                           obs_0
                                                                                                                           'next-group)
                                                                                                                          (void)))
                                                                                                                      (let ((fully-expanded-bodys-except-post-submodules_0
                                                                                                                             (let ((requires+provides358_0
                                                                                                                                    requires+provides_0))
                                                                                                                               (resolve-provides.1
                                                                                                                                ctx_1
                                                                                                                                declared-submodule-names_0
                                                                                                                                m-ns_0
                                                                                                                                0
                                                                                                                                requires+provides358_0
                                                                                                                                self_0
                                                                                                                                expression-expanded-bodys_0))))
                                                                                                                        (let ((is-cross-phase-persistent?_0
                                                                                                                               (hash-ref
                                                                                                                                declared-keywords_0
                                                                                                                                kw2208
                                                                                                                                #f)))
                                                                                                                          (begin
                                                                                                                            (if is-cross-phase-persistent?_0
                                                                                                                              (begin
                                                                                                                                (if (requires+provides-can-cross-phase-persistent?
                                                                                                                                     requires+provides_0)
                                                                                                                                  (void)
                                                                                                                                  (raise-syntax-error$1
                                                                                                                                   #f
                                                                                                                                   "cannot be cross-phase persistent due to required modules"
                                                                                                                                   rebuild-s_0
                                                                                                                                   (hash-ref
                                                                                                                                    declared-keywords_0
                                                                                                                                    kw2208)))
                                                                                                                                (check-cross-phase-persistent-form
                                                                                                                                 fully-expanded-bodys-except-post-submodules_0
                                                                                                                                 self_0))
                                                                                                                              (void))
                                                                                                                            (let ((realm_0
                                                                                                                                   (let ((realm-stx_0
                                                                                                                                          (hash-ref
                                                                                                                                           declared-keywords_0
                                                                                                                                           kw1701
                                                                                                                                           #f)))
                                                                                                                                     (if realm-stx_0
                                                                                                                                       (syntax-e$1
                                                                                                                                        realm-stx_0)
                                                                                                                                       (current-compile-realm)))))
                                                                                                                              (begin
                                                                                                                                (let ((obs_0
                                                                                                                                       (begin-unsafe
                                                                                                                                        (expand-context/inner-observer
                                                                                                                                         (root-expand-context/outer-inner
                                                                                                                                          ctx_1)))))
                                                                                                                                  (if obs_0
                                                                                                                                    (call-expand-observe
                                                                                                                                     obs_0
                                                                                                                                     'next-group)
                                                                                                                                    (void)))
                                                                                                                                (let ((submod-m-ns_0
                                                                                                                                       (make-m-ns_0
                                                                                                                                        #t
                                                                                                                                        m-ns_0)))
                                                                                                                                  (let ((submod-ctx_0
                                                                                                                                         (if (expand-context/outer?
                                                                                                                                              ctx_1)
                                                                                                                                           (let ((inner368_0
                                                                                                                                                  (let ((the-struct_0
                                                                                                                                                         (root-expand-context/outer-inner
                                                                                                                                                          ctx_1)))
                                                                                                                                                    (if (expand-context/inner?
                                                                                                                                                         the-struct_0)
                                                                                                                                                      (expand-context/inner2.1
                                                                                                                                                       (root-expand-context/inner-self-mpi
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (root-expand-context/inner-module-scopes
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (root-expand-context/inner-top-level-bind-scope
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (root-expand-context/inner-all-scopes-stx
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (root-expand-context/inner-defined-syms
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (root-expand-context/inner-counter
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (root-expand-context/inner-lift-key
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-to-parsed?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-phase
                                                                                                                                                        the-struct_0)
                                                                                                                                                       submod-m-ns_0
                                                                                                                                                       (expand-context/inner-just-once?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-module-begin-k
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-allow-unbound?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-in-local-expand?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (|expand-context/inner-keep-#%expression?|
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-stops
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-declared-submodule-names
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-lifts
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-lift-envs
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-module-lifts
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-require-lifts
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-to-module-lifts
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-requires+provides
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-observer
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-for-serializable?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-to-correlated-linklet?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-normalize-locals?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-parsing-expanded?
                                                                                                                                                        the-struct_0)
                                                                                                                                                       (expand-context/inner-skip-visit-available?
                                                                                                                                                        the-struct_0))
                                                                                                                                                      (raise-argument-error
                                                                                                                                                       'struct-copy
                                                                                                                                                       "expand-context/inner?"
                                                                                                                                                       the-struct_0)))))
                                                                                                                                             (expand-context/outer1.1
                                                                                                                                              inner368_0
                                                                                                                                              #f
                                                                                                                                              (root-expand-context/outer-use-site-scopes
                                                                                                                                               ctx_1)
                                                                                                                                              #f
                                                                                                                                              (expand-context/outer-context
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-env
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-scopes
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-def-ctx-scopes
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-binding-layer
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-reference-records
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-only-immediate?
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-need-eventually-defined
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-current-introduction-scopes
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-current-use-scopes
                                                                                                                                               ctx_1)
                                                                                                                                              (expand-context/outer-name
                                                                                                                                               ctx_1)))
                                                                                                                                           (raise-argument-error
                                                                                                                                            'struct-copy
                                                                                                                                            "expand-context/outer?"
                                                                                                                                            ctx_1))))
                                                                                                                                    (let ((declare-enclosing-module_0
                                                                                                                                           (promise1.1
                                                                                                                                            (lambda ()
                                                                                                                                              (let ((requires+provides373_0
                                                                                                                                                     requires+provides_0))
                                                                                                                                                (let ((compiled-module-box382_0
                                                                                                                                                       compiled-module-box_0))
                                                                                                                                                  (let ((requires+provides373_1
                                                                                                                                                         requires+provides373_0))
                                                                                                                                                    (declare-module-for-expansion.1
                                                                                                                                                     submod-ctx_0
                                                                                                                                                     enclosing-self15_0
                                                                                                                                                     compiled-module-box382_0
                                                                                                                                                     id:module-name211_0
                                                                                                                                                     modules-being-compiled_0
                                                                                                                                                     submod-m-ns_0
                                                                                                                                                     portal-syntaxes_0
                                                                                                                                                     realm_0
                                                                                                                                                     rebuild-s_0
                                                                                                                                                     requires+provides373_1
                                                                                                                                                     root-ctx_0
                                                                                                                                                     self_0
                                                                                                                                                     fully-expanded-bodys-except-post-submodules_0)))))
                                                                                                                                            #f)))
                                                                                                                                      (let ((fully-expanded-bodys_0
                                                                                                                                             (if (stop-at-module*?
                                                                                                                                                  submod-ctx_0)
                                                                                                                                               fully-expanded-bodys-except-post-submodules_0
                                                                                                                                               (let ((requires+provides387_0
                                                                                                                                                      requires+provides_0))
                                                                                                                                                 (let ((compiled-submodules392_0
                                                                                                                                                        compiled-submodules_0))
                                                                                                                                                   (let ((requires+provides387_1
                                                                                                                                                          requires+provides387_0))
                                                                                                                                                     (expand-post-submodules.1
                                                                                                                                                      initial-require-s_0
                                                                                                                                                      compiled-submodules392_0
                                                                                                                                                      submod-ctx_0
                                                                                                                                                      declare-enclosing-module_0
                                                                                                                                                      declared-submodule-names_0
                                                                                                                                                      is-cross-phase-persistent?_0
                                                                                                                                                      modules-being-compiled_0
                                                                                                                                                      mpis-to-reset_0
                                                                                                                                                      0
                                                                                                                                                      requires+provides387_1
                                                                                                                                                      self_0
                                                                                                                                                      fully-expanded-bodys-except-post-submodules_0)))))))
                                                                                                                                        (if (begin-unsafe
                                                                                                                                             (expand-context/inner-to-parsed?
                                                                                                                                              (root-expand-context/outer-inner
                                                                                                                                               submod-ctx_0)))
                                                                                                                                          (|parsed-#%module-begin24.1|
                                                                                                                                           rebuild-mb-s_0
                                                                                                                                           (parsed-only
                                                                                                                                            fully-expanded-bodys_0)
                                                                                                                                           realm_0)
                                                                                                                                          (let ((mb-result-s_0
                                                                                                                                                 (let ((temp396_0
                                                                                                                                                        (list*
                                                                                                                                                         |#%module-begin281_0|
                                                                                                                                                         (syntax-only
                                                                                                                                                          fully-expanded-bodys_0))))
                                                                                                                                                   (rebuild.1
                                                                                                                                                    #t
                                                                                                                                                    rebuild-mb-s_0
                                                                                                                                                    temp396_0))))
                                                                                                                                            (if (not
                                                                                                                                                 (begin-unsafe
                                                                                                                                                  (expand-context/inner-in-local-expand?
                                                                                                                                                   (root-expand-context/outer-inner
                                                                                                                                                    submod-ctx_0))))
                                                                                                                                              (expanded+parsed1.1
                                                                                                                                               mb-result-s_0
                                                                                                                                               (|parsed-#%module-begin24.1|
                                                                                                                                                rebuild-mb-s_0
                                                                                                                                                (parsed-only
                                                                                                                                                 fully-expanded-bodys_0)
                                                                                                                                                realm_0))
                                                                                                                                              mb-result-s_0))))))))))))))))))))))))
                                                                                               (args
                                                                                                (raise-binding-result-arity-error
                                                                                                 3
                                                                                                 args)))))))))))))
                                                                              (let ((mb-ctx_0
                                                                                     (if (expand-context/outer?
                                                                                          ctx_0)
                                                                                       (let ((inner398_0
                                                                                              (let ((the-struct_0
                                                                                                     (root-expand-context/outer-inner
                                                                                                      ctx_0)))
                                                                                                (if (expand-context/inner?
                                                                                                     the-struct_0)
                                                                                                  (let ((require-lifts404_0
                                                                                                         (make-require-lift-context
                                                                                                          0
                                                                                                          (let ((requires+provides407_0
                                                                                                                 requires+provides_0))
                                                                                                            (let ((temp408_0
                                                                                                                   (make-hasheq)))
                                                                                                              (let ((requires+provides407_1
                                                                                                                     requires+provides407_0))
                                                                                                                (make-parse-lifted-require.1
                                                                                                                 add-defined-portal_0
                                                                                                                 temp408_0
                                                                                                                 m-ns_0
                                                                                                                 self_0
                                                                                                                 requires+provides407_1)))))))
                                                                                                    (expand-context/inner2.1
                                                                                                     (root-expand-context/inner-self-mpi
                                                                                                      the-struct_0)
                                                                                                     (root-expand-context/inner-module-scopes
                                                                                                      the-struct_0)
                                                                                                     (root-expand-context/inner-top-level-bind-scope
                                                                                                      the-struct_0)
                                                                                                     (root-expand-context/inner-all-scopes-stx
                                                                                                      the-struct_0)
                                                                                                     (root-expand-context/inner-defined-syms
                                                                                                      the-struct_0)
                                                                                                     (root-expand-context/inner-counter
                                                                                                      the-struct_0)
                                                                                                     (root-expand-context/inner-lift-key
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-to-parsed?
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-phase
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-namespace
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-just-once?
                                                                                                      the-struct_0)
                                                                                                     module-begin-k_0
                                                                                                     (expand-context/inner-allow-unbound?
                                                                                                      the-struct_0)
                                                                                                     #f
                                                                                                     (|expand-context/inner-keep-#%expression?|
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-stops
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-declared-submodule-names
                                                                                                      the-struct_0)
                                                                                                     #f
                                                                                                     (expand-context/inner-lift-envs
                                                                                                      the-struct_0)
                                                                                                     #f
                                                                                                     require-lifts404_0
                                                                                                     #f
                                                                                                     (expand-context/inner-requires+provides
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-observer
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-for-serializable?
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-to-correlated-linklet?
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-normalize-locals?
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-parsing-expanded?
                                                                                                      the-struct_0)
                                                                                                     (expand-context/inner-skip-visit-available?
                                                                                                      the-struct_0)))
                                                                                                  (raise-argument-error
                                                                                                   'struct-copy
                                                                                                   "expand-context/inner?"
                                                                                                   the-struct_0)))))
                                                                                         (expand-context/outer1.1
                                                                                          inner398_0
                                                                                          (root-expand-context/outer-post-expansion
                                                                                           ctx_0)
                                                                                          (root-expand-context/outer-use-site-scopes
                                                                                           ctx_0)
                                                                                          (root-expand-context/outer-frame-id
                                                                                           ctx_0)
                                                                                          'module-begin
                                                                                          (expand-context/outer-env
                                                                                           ctx_0)
                                                                                          (expand-context/outer-scopes
                                                                                           ctx_0)
                                                                                          (expand-context/outer-def-ctx-scopes
                                                                                           ctx_0)
                                                                                          (expand-context/outer-binding-layer
                                                                                           ctx_0)
                                                                                          (expand-context/outer-reference-records
                                                                                           ctx_0)
                                                                                          (expand-context/outer-only-immediate?
                                                                                           ctx_0)
                                                                                          (expand-context/outer-need-eventually-defined
                                                                                           ctx_0)
                                                                                          (expand-context/outer-current-introduction-scopes
                                                                                           ctx_0)
                                                                                          (expand-context/outer-current-use-scopes
                                                                                           ctx_0)
                                                                                          (expand-context/outer-name
                                                                                           ctx_0)))
                                                                                       (raise-argument-error
                                                                                        'struct-copy
                                                                                        "expand-context/outer?"
                                                                                        ctx_0))))
                                                                                (let ((mb-scopes-s_0
                                                                                       (if keep-enclosing-scope-at-phase2_0
                                                                                         (|#%app|
                                                                                          apply-module-scopes_0
                                                                                          s13_0)
                                                                                         initial-require-s_0)))
                                                                                  (let ((mb-def-ctx-scopes_0
                                                                                         (box
                                                                                          null)))
                                                                                    (let ((mb_0
                                                                                           (ensure-module-begin.1
                                                                                            mb-ctx_0
                                                                                            mb-def-ctx-scopes_0
                                                                                            m-ns_0
                                                                                            module-name-sym_0
                                                                                            0
                                                                                            s13_0
                                                                                            mb-scopes-s_0
                                                                                            bodys_0)))
                                                                                      (begin
                                                                                        (let ((obs_0
                                                                                               (begin-unsafe
                                                                                                (expand-context/inner-observer
                                                                                                 (root-expand-context/outer-inner
                                                                                                  ctx_0)))))
                                                                                          (if obs_0
                                                                                            (call-expand-observe
                                                                                             obs_0
                                                                                             'next)
                                                                                            (void)))
                                                                                        (let ((expanded-mb_0
                                                                                               (begin
                                                                                                 (if log-performance?
                                                                                                   (start-performance-region
                                                                                                    'expand
                                                                                                    'module-begin)
                                                                                                   (void))
                                                                                                 (begin0
                                                                                                   (let ((thunk_0
                                                                                                          (lambda ()
                                                                                                            (let ((temp419_0
                                                                                                                   (let ((v_0
                                                                                                                          (accumulate-def-ctx-scopes
                                                                                                                           mb-ctx_0
                                                                                                                           mb-def-ctx-scopes_0)))
                                                                                                                     (if (expand-context/outer?
                                                                                                                          v_0)
                                                                                                                       (let ((inner421_0
                                                                                                                              (root-expand-context/outer-inner
                                                                                                                               v_0)))
                                                                                                                         (expand-context/outer1.1
                                                                                                                          inner421_0
                                                                                                                          (root-expand-context/outer-post-expansion
                                                                                                                           v_0)
                                                                                                                          (root-expand-context/outer-use-site-scopes
                                                                                                                           v_0)
                                                                                                                          (root-expand-context/outer-frame-id
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-context
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-env
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-scopes
                                                                                                                           v_0)
                                                                                                                          #f
                                                                                                                          (expand-context/outer-binding-layer
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-reference-records
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-only-immediate?
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-need-eventually-defined
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-current-introduction-scopes
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-current-use-scopes
                                                                                                                           v_0)
                                                                                                                          (expand-context/outer-name
                                                                                                                           v_0)))
                                                                                                                       (raise-argument-error
                                                                                                                        'struct-copy
                                                                                                                        "expand-context/outer?"
                                                                                                                        v_0)))))
                                                                                                              (expand.1
                                                                                                               #f
                                                                                                               #f
                                                                                                               mb_0
                                                                                                               temp419_0)))))
                                                                                                     (begin-unsafe
                                                                                                      (with-continuation-mark*
                                                                                                       push
                                                                                                       exit-parameteterization-key
                                                                                                       exit-paramz_0
                                                                                                       (call-with-parameterization
                                                                                                        paramz_0
                                                                                                        thunk_0))))
                                                                                                   (if log-performance?
                                                                                                     (end-performance-region)
                                                                                                     (void))))))
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (extract-requires-and-provides
                                                                                              requires+provides_0
                                                                                              self_0
                                                                                              self_0))
                                                                                           (case-lambda
                                                                                            ((requires_0
                                                                                              recur-requires_0
                                                                                              provides_0)
                                                                                             (let ((parsed-mb_0
                                                                                                    (if (expanded+parsed?
                                                                                                         expanded-mb_0)
                                                                                                      (expanded+parsed-parsed
                                                                                                       expanded-mb_0)
                                                                                                      expanded-mb_0)))
                                                                                               (let ((result-form_0
                                                                                                      (if (let ((or-part_0
                                                                                                                 (begin-unsafe
                                                                                                                  (expand-context/inner-to-parsed?
                                                                                                                   (root-expand-context/outer-inner
                                                                                                                    init-ctx14_0)))))
                                                                                                            (if or-part_0
                                                                                                              or-part_0
                                                                                                              always-produce-compiled?1_0))
                                                                                                        (let ((app_0
                                                                                                               (requires+provides-all-bindings-simple?
                                                                                                                requires+provides_0)))
                                                                                                          (let ((app_1
                                                                                                                 (root-expand-context-encode-for-module
                                                                                                                  root-ctx_0
                                                                                                                  self_0
                                                                                                                  self_0)))
                                                                                                            (let ((app_2
                                                                                                                   (|parsed-#%module-begin-body|
                                                                                                                    parsed-mb_0)))
                                                                                                              (let ((app_3
                                                                                                                     (|parsed-#%module-begin-realm|
                                                                                                                      parsed-mb_0)))
                                                                                                                (let ((app_4
                                                                                                                       (unbox
                                                                                                                        compiled-module-box_0)))
                                                                                                                  (parsed-module25.1
                                                                                                                   rebuild-s_0
                                                                                                                   #f
                                                                                                                   id:module-name211_0
                                                                                                                   self_0
                                                                                                                   requires_0
                                                                                                                   recur-requires_0
                                                                                                                   provides_0
                                                                                                                   app_0
                                                                                                                   app_1
                                                                                                                   app_2
                                                                                                                   app_3
                                                                                                                   portal-syntaxes_0
                                                                                                                   app_4
                                                                                                                   compiled-submodules_0))))))
                                                                                                        #f)))
                                                                                                 (let ((result-s_0
                                                                                                        (if (not
                                                                                                             (begin-unsafe
                                                                                                              (expand-context/inner-to-parsed?
                                                                                                               (root-expand-context/outer-inner
                                                                                                                init-ctx14_0))))
                                                                                                          (let ((generic-self_0
                                                                                                                 (make-generic-self-module-path-index
                                                                                                                  self_0)))
                                                                                                            (begin
                                                                                                              (imitate-generic-module-path-index!
                                                                                                               self_0)
                                                                                                              (let ((lst_0
                                                                                                                     (unbox
                                                                                                                      mpis-to-reset_0)))
                                                                                                                (begin
                                                                                                                  (letrec*
                                                                                                                   ((for-loop_0
                                                                                                                     (|#%name|
                                                                                                                      for-loop
                                                                                                                      (lambda (lst_1)
                                                                                                                        (begin
                                                                                                                          (if (pair?
                                                                                                                               lst_1)
                                                                                                                            (let ((mpi_0
                                                                                                                                   (unsafe-car
                                                                                                                                    lst_1)))
                                                                                                                              (let ((rest_0
                                                                                                                                     (unsafe-cdr
                                                                                                                                      lst_1)))
                                                                                                                                (begin
                                                                                                                                  (imitate-generic-module-path-index!
                                                                                                                                   mpi_0)
                                                                                                                                  (for-loop_0
                                                                                                                                   rest_0))))
                                                                                                                            (values)))))))
                                                                                                                   (for-loop_0
                                                                                                                    lst_0))))
                                                                                                              (void)
                                                                                                              (let ((result-s_0
                                                                                                                     (let ((temp423_0
                                                                                                                            (list
                                                                                                                             module210_0
                                                                                                                             id:module-name211_0
                                                                                                                             initial-require-s_0
                                                                                                                             (expanded+parsed-s
                                                                                                                              expanded-mb_0))))
                                                                                                                       (rebuild.1
                                                                                                                        #t
                                                                                                                        rebuild-s_0
                                                                                                                        temp423_0))))
                                                                                                                (let ((result-s_1
                                                                                                                       (syntax-module-path-index-shift.1
                                                                                                                        #f
                                                                                                                        result-s_0
                                                                                                                        self_0
                                                                                                                        generic-self_0
                                                                                                                        #f)))
                                                                                                                  (let ((result-s_2
                                                                                                                         (attach-root-expand-context-properties
                                                                                                                          result-s_1
                                                                                                                          root-ctx_0
                                                                                                                          self_0
                                                                                                                          generic-self_0)))
                                                                                                                    (let ((result-s_3
                                                                                                                           (if (requires+provides-all-bindings-simple?
                                                                                                                                requires+provides_0)
                                                                                                                             (syntax-property$1
                                                                                                                              result-s_2
                                                                                                                              'module-body-context-simple?
                                                                                                                              #t)
                                                                                                                             result-s_2)))
                                                                                                                      (begin
                                                                                                                        (let ((obs_0
                                                                                                                               (begin-unsafe
                                                                                                                                (expand-context/inner-observer
                                                                                                                                 (root-expand-context/outer-inner
                                                                                                                                  init-ctx14_0)))))
                                                                                                                          (if obs_0
                                                                                                                            (call-expand-observe
                                                                                                                             obs_0
                                                                                                                             'rename-one
                                                                                                                             result-s_3)
                                                                                                                            (void)))
                                                                                                                        result-s_3)))))))
                                                                                                          (void))))
                                                                                                   (if (begin-unsafe
                                                                                                        (expand-context/inner-to-parsed?
                                                                                                         (root-expand-context/outer-inner
                                                                                                          init-ctx14_0)))
                                                                                                     result-form_0
                                                                                                     (if always-produce-compiled?1_0
                                                                                                       (expanded+parsed1.1
                                                                                                        result-s_0
                                                                                                        result-form_0)
                                                                                                       result-s_0))))))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              3
                                                                                              args)))))))))))))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args))))))))))))))))))))))))))))))))))
             (args (raise-binding-result-arity-error 5 args))))))))))
(define ensure-module-begin.1
  (|#%name|
   ensure-module-begin
   (lambda (ctx20_0
            def-ctx-scopes21_0
            m-ns19_0
            module-name-sym17_0
            phase22_0
            s23_0
            scopes-s18_0
            bodys31_0)
     (begin
       (let ((make-mb-ctx_0
              (|#%name|
               make-mb-ctx
               (lambda ()
                 (begin
                   (if (expand-context/outer? ctx20_0)
                     (let ((inner430_0
                            (root-expand-context/outer-inner ctx20_0)))
                       (expand-context/outer1.1
                        inner430_0
                        (root-expand-context/outer-post-expansion ctx20_0)
                        (root-expand-context/outer-use-site-scopes ctx20_0)
                        (root-expand-context/outer-frame-id ctx20_0)
                        'module-begin
                        (expand-context/outer-env ctx20_0)
                        (expand-context/outer-scopes ctx20_0)
                        def-ctx-scopes21_0
                        (expand-context/outer-binding-layer ctx20_0)
                        (expand-context/outer-reference-records ctx20_0)
                        #t
                        (expand-context/outer-need-eventually-defined ctx20_0)
                        (expand-context/outer-current-introduction-scopes
                         ctx20_0)
                        (expand-context/outer-current-use-scopes ctx20_0)
                        (expand-context/outer-name ctx20_0)))
                     (raise-argument-error
                      'struct-copy
                      "expand-context/outer?"
                      ctx20_0)))))))
         (let ((mb_0
                (if (= 1 (length bodys31_0))
                  (if (eq?
                       '|#%module-begin|
                       (core-form-sym (car bodys31_0) phase22_0))
                    (car bodys31_0)
                    (let ((named-body-s_0
                           (let ((stx_0 (car bodys31_0)))
                             (begin-unsafe
                              (syntax-property$1
                               stx_0
                               'enclosing-module-name
                               module-name-sym17_0)))))
                      (begin
                        (let ((obs_0
                               (begin-unsafe
                                (expand-context/inner-observer
                                 (root-expand-context/outer-inner ctx20_0)))))
                          (if obs_0
                            (call-expand-observe
                             obs_0
                             'track-syntax
                             'property
                             named-body-s_0
                             (car bodys31_0))
                            (void)))
                        (let ((partly-expanded-body_0
                               (begin
                                 (if log-performance?
                                   (start-performance-region
                                    'expand
                                    'module-begin)
                                   (void))
                                 (begin0
                                   (let ((temp432_0 (make-mb-ctx_0)))
                                     (expand.1 #f #f named-body-s_0 temp432_0))
                                   (if log-performance?
                                     (end-performance-region)
                                     (void))))))
                          (if (eq?
                               '|#%module-begin|
                               (core-form-sym
                                partly-expanded-body_0
                                phase22_0))
                            partly-expanded-body_0
                            (let ((temp433_0 (list partly-expanded-body_0)))
                              (let ((temp438_0 (make-mb-ctx_0)))
                                (let ((temp433_1 temp433_0))
                                  (add-module-begin.1
                                   #f
                                   temp433_1
                                   s23_0
                                   scopes-s18_0
                                   phase22_0
                                   module-name-sym17_0
                                   temp438_0)))))))))
                  (let ((temp445_0 (make-mb-ctx_0)))
                    (add-module-begin.1
                     #t
                     bodys31_0
                     s23_0
                     scopes-s18_0
                     phase22_0
                     module-name-sym17_0
                     temp445_0)))))
           (let ((named-mb_0
                  (begin-unsafe
                   (syntax-property$1
                    mb_0
                    'enclosing-module-name
                    module-name-sym17_0))))
             (begin
               (let ((obs_0
                      (begin-unsafe
                       (expand-context/inner-observer
                        (root-expand-context/outer-inner ctx20_0)))))
                 (if obs_0
                   (call-expand-observe
                    obs_0
                    'track-syntax
                    'property
                    named-mb_0
                    mb_0)
                   (void)))
               named-mb_0))))))))
(define add-module-begin.1
  (|#%name|
   add-module-begin
   (lambda (log-rename-one?33_0
            bodys35_0
            s36_0
            scopes-s37_0
            phase38_0
            module-name-sym39_0
            mb-ctx40_0)
     (begin
       (let ((mb-id_0 (datum->syntax$1 scopes-s37_0 '|#%module-begin|)))
         (begin
           (if (resolve.1 #f #f null #f mb-id_0 phase38_0)
             (void)
             (raise-syntax-error$1
              #f
              "no #%module-begin binding in the module's language"
              s36_0))
           (let ((mb_0
                  (datum->syntax$1
                   scopes-s37_0
                   (list* mb-id_0 bodys35_0)
                   s36_0
                   s36_0)))
             (begin
               (let ((obs_0
                      (begin-unsafe
                       (expand-context/inner-observer
                        (root-expand-context/outer-inner mb-ctx40_0)))))
                 (if obs_0 (call-expand-observe obs_0 'tag mb_0) (void)))
               (let ((named-mb_0
                      (begin-unsafe
                       (syntax-property$1
                        mb_0
                        'enclosing-module-name
                        module-name-sym39_0))))
                 (begin
                   (let ((obs_0
                          (begin-unsafe
                           (expand-context/inner-observer
                            (root-expand-context/outer-inner mb-ctx40_0)))))
                     (if obs_0
                       (call-expand-observe
                        obs_0
                        'track-syntax
                        'property
                        named-mb_0
                        mb_0)
                       (void)))
                   (let ((partly-expanded-mb_0
                          (begin
                            (if log-performance?
                              (start-performance-region 'expand 'module-begin)
                              (void))
                            (begin0
                              (expand.1 #f #f named-mb_0 mb-ctx40_0)
                              (if log-performance?
                                (end-performance-region)
                                (void))))))
                     (begin
                       (if (eq?
                            '|#%module-begin|
                            (core-form-sym partly-expanded-mb_0 phase38_0))
                         (void)
                         (raise-syntax-error$1
                          #f
                          "expansion of #%module-begin is not a #%plain-module-begin form"
                          s36_0
                          partly-expanded-mb_0))
                       partly-expanded-mb_0))))))))))))
(define add-enclosing-name-property
  (lambda (stx_0 module-name-sym_0)
    (syntax-property$1 stx_0 'enclosing-module-name module-name-sym_0)))
(define make-apply-module-scopes
  (lambda (inside-scope_0
           outside-scope_0
           init-ctx_0
           keep-enclosing-scope-at-phase_0
           self_0
           enclosing-self_0
           enclosing-mod_0)
    (lambda (s_0)
      (begin
        (if log-performance?
          (start-performance-region 'expand 'module 'scopes)
          (void))
        (begin0
          (let ((s-without-enclosing_0
                 (if keep-enclosing-scope-at-phase_0
                   s_0
                   (remove-use-site-scopes
                    (remove-scopes
                     s_0
                     (begin-unsafe
                      (root-expand-context/inner-module-scopes
                       (root-expand-context/outer-inner init-ctx_0))))
                    init-ctx_0))))
            (let ((s-with-edges_0
                   (add-scope
                    (add-scope s-without-enclosing_0 outside-scope_0)
                    inside-scope_0)))
              (let ((s-with-suitable-enclosing_0
                     (if keep-enclosing-scope-at-phase_0
                       (syntax-module-path-index-shift.1
                        #f
                        s-with-edges_0
                        enclosing-self_0
                        enclosing-mod_0
                        #f)
                       s-with-edges_0)))
                (let ((temp451_0 (make-generic-self-module-path-index self_0)))
                  (let ((temp453_0 (current-code-inspector)))
                    (let ((temp451_1 temp451_0))
                      (syntax-module-path-index-shift.1
                       #f
                       s-with-suitable-enclosing_0
                       temp451_1
                       self_0
                       temp453_0)))))))
          (if log-performance? (end-performance-region) (void)))))))
(define partially-expand-bodys.1
  (|#%name|
   partially-expand-bodys
   (lambda (add-defined-portal57_0
            all-scopes-stx49_0
            compiled-submodules53_0
            ctx43_0
            declared-keywords51_0
            declared-submodule-names52_0
            defined-syms50_0
            frame-id46_0
            loop58_0
            modules-being-compiled54_0
            mpis-to-reset55_0
            namespace44_0
            need-eventually-defined48_0
            phase42_0
            portal-syntaxes56_0
            requires-and-provides47_0
            self45_0
            bodys76_0)
     (begin
       (begin
         (namespace-visit-available-modules! namespace44_0 phase42_0)
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (tail?_0 bodys_0)
               (begin
                 (if (null? bodys_0)
                   (if (if tail?_0 (not (zero? phase42_0)) #f)
                     null
                     (if tail?_0
                       (let ((bodys_1
                              (let ((app_0
                                     (let ((to-module-lifts_0
                                            (begin-unsafe
                                             (expand-context/inner-to-module-lifts
                                              (root-expand-context/outer-inner
                                               ctx43_0)))))
                                       (begin-unsafe
                                        (box-clear!
                                         (to-module-lift-context-ends
                                          to-module-lifts_0))))))
                                (append
                                 app_0
                                 (let ((to-module-lifts_0
                                        (begin-unsafe
                                         (expand-context/inner-to-module-lifts
                                          (root-expand-context/outer-inner
                                           ctx43_0)))))
                                   (begin-unsafe
                                    (box-clear!
                                     (to-module-lift-context-provides
                                      to-module-lifts_0))))))))
                         (if (null? bodys_1)
                           null
                           (let ((added-bodys_0
                                  (add-post-expansion-scope bodys_1 ctx43_0)))
                             (begin
                               (let ((obs_0
                                      (begin-unsafe
                                       (expand-context/inner-observer
                                        (root-expand-context/outer-inner
                                         ctx43_0)))))
                                 (if obs_0
                                   (call-expand-observe
                                    obs_0
                                    'module-end-lifts
                                    added-bodys_0)
                                   (void)))
                               (loop_0 #t added-bodys_0)))))
                       null))
                   (let ((rest-bodys_0 (cdr bodys_0)))
                     (begin
                       (let ((obs_0
                              (begin-unsafe
                               (expand-context/inner-observer
                                (root-expand-context/outer-inner ctx43_0)))))
                         (if obs_0 (call-expand-observe obs_0 'next) (void)))
                       (let ((exp-body_0
                              (begin
                                (if log-performance?
                                  (start-performance-region
                                   'expand
                                   'form-in-module/1)
                                  (void))
                                (begin0
                                  (let ((temp457_0 (car bodys_0)))
                                    (expand.1 #f #f temp457_0 ctx43_0))
                                  (if log-performance?
                                    (end-performance-region)
                                    (void))))))
                         (let ((lifted-defns_0
                                (let ((lifts_0
                                       (begin-unsafe
                                        (expand-context/inner-lifts
                                         (root-expand-context/outer-inner
                                          ctx43_0)))))
                                  (begin-unsafe
                                   (box-clear!
                                    (lift-context-lifts lifts_0))))))
                           (let ((lifted-reqs_0
                                  (let ((require-lifts_0
                                         (begin-unsafe
                                          (expand-context/inner-require-lifts
                                           (root-expand-context/outer-inner
                                            ctx43_0)))))
                                    (begin-unsafe
                                     (box-clear!
                                      (require-lift-context-requires
                                       require-lifts_0))))))
                             (let ((lifted-mods_0
                                    (let ((module-lifts_0
                                           (begin-unsafe
                                            (expand-context/inner-module-lifts
                                             (root-expand-context/outer-inner
                                              ctx43_0)))))
                                      (begin-unsafe
                                       (box-clear!
                                        (module-lift-context-lifts
                                         module-lifts_0))))))
                               (let ((added-lifted-mods_0
                                      (add-post-expansion-scope
                                       lifted-mods_0
                                       ctx43_0)))
                                 (begin
                                   (if (if (null? lifted-defns_0)
                                         (if (null? lifted-reqs_0)
                                           (null? lifted-mods_0)
                                           #f)
                                         #f)
                                     (void)
                                     (let ((obs_0
                                            (begin-unsafe
                                             (expand-context/inner-observer
                                              (root-expand-context/outer-inner
                                               ctx43_0)))))
                                       (if obs_0
                                         (call-expand-observe
                                          obs_0
                                          'module-pass1-lifts
                                          (lifted-defns-extract-syntax
                                           lifted-defns_0)
                                          lifted-reqs_0
                                          added-lifted-mods_0)
                                         (void))))
                                   (let ((exp-lifted-mods_0
                                          (loop_0 #f added-lifted-mods_0)))
                                     (begin
                                       (let ((obs_0
                                              (begin-unsafe
                                               (expand-context/inner-observer
                                                (root-expand-context/outer-inner
                                                 ctx43_0)))))
                                         (if obs_0
                                           (call-expand-observe
                                            obs_0
                                            'module-pass1-case
                                            exp-body_0)
                                           (void)))
                                       (let ((finish_0
                                              (|#%name|
                                               finish
                                               (lambda ()
                                                 (begin
                                                   (let ((tmp_0
                                                          (core-form-sym
                                                           exp-body_0
                                                           phase42_0)))
                                                     (if (eq? tmp_0 'begin)
                                                       (begin
                                                         (let ((obs_0
                                                                (begin-unsafe
                                                                 (expand-context/inner-observer
                                                                  (root-expand-context/outer-inner
                                                                   ctx43_0)))))
                                                           (if obs_0
                                                             (call-expand-observe
                                                              obs_0
                                                              'prim-begin
                                                              exp-body_0)
                                                             (void)))
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((s_0
                                                                      (if (syntax?$1
                                                                           exp-body_0)
                                                                        (syntax-e$1
                                                                         exp-body_0)
                                                                        exp-body_0)))
                                                                 (if (pair?
                                                                      s_0)
                                                                   (let ((begin461_0
                                                                          (let ((s_1
                                                                                 (car
                                                                                  s_0)))
                                                                            s_1)))
                                                                     (let ((e462_0
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (let ((flat-s_0
                                                                                       (to-syntax-list.1
                                                                                        s_2)))
                                                                                  (if (not
                                                                                       flat-s_0)
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     exp-body_0)
                                                                                    flat-s_0))))))
                                                                       (let ((begin461_1
                                                                              begin461_0))
                                                                         (values
                                                                          begin461_1
                                                                          e462_0))))
                                                                   (raise-syntax-error$1
                                                                    #f
                                                                    "bad syntax"
                                                                    exp-body_0))))
                                                             (case-lambda
                                                              ((begin459_0
                                                                e460_0)
                                                               (values
                                                                #t
                                                                begin459_0
                                                                e460_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (case-lambda
                                                           ((ok?_0
                                                             begin459_0
                                                             e460_0)
                                                            (let ((track_0
                                                                   (|#%name|
                                                                    track
                                                                    (lambda (e_0)
                                                                      (begin
                                                                        (syntax-track-origin$1
                                                                         e_0
                                                                         exp-body_0))))))
                                                              (let ((spliced-bodys_0
                                                                     (append
                                                                      (map_1346
                                                                       track_0
                                                                       e460_0)
                                                                      rest-bodys_0)))
                                                                (begin
                                                                  (let ((obs_0
                                                                         (begin-unsafe
                                                                          (expand-context/inner-observer
                                                                           (root-expand-context/outer-inner
                                                                            ctx43_0)))))
                                                                    (if obs_0
                                                                      (call-expand-observe
                                                                       obs_0
                                                                       'splice
                                                                       spliced-bodys_0)
                                                                      (void)))
                                                                  (loop_0
                                                                   tail?_0
                                                                   spliced-bodys_0)))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             3
                                                             args)))))
                                                       (if (eq?
                                                            tmp_0
                                                            'begin-for-syntax)
                                                         (begin
                                                           (let ((obs_0
                                                                  (begin-unsafe
                                                                   (expand-context/inner-observer
                                                                    (root-expand-context/outer-inner
                                                                     ctx43_0)))))
                                                             (if obs_0
                                                               (call-expand-observe
                                                                obs_0
                                                                'prim-begin-for-syntax
                                                                exp-body_0)
                                                               (void)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((s_0
                                                                        (if (syntax?$1
                                                                             exp-body_0)
                                                                          (syntax-e$1
                                                                           exp-body_0)
                                                                          exp-body_0)))
                                                                   (if (pair?
                                                                        s_0)
                                                                     (let ((begin-for-syntax465_0
                                                                            (let ((s_1
                                                                                   (car
                                                                                    s_0)))
                                                                              s_1)))
                                                                       (let ((e466_0
                                                                              (let ((s_1
                                                                                     (cdr
                                                                                      s_0)))
                                                                                (let ((s_2
                                                                                       (if (syntax?$1
                                                                                            s_1)
                                                                                         (syntax-e$1
                                                                                          s_1)
                                                                                         s_1)))
                                                                                  (let ((flat-s_0
                                                                                         (to-syntax-list.1
                                                                                          s_2)))
                                                                                    (if (not
                                                                                         flat-s_0)
                                                                                      (raise-syntax-error$1
                                                                                       #f
                                                                                       "bad syntax"
                                                                                       exp-body_0)
                                                                                      flat-s_0))))))
                                                                         (let ((begin-for-syntax465_1
                                                                                begin-for-syntax465_0))
                                                                           (values
                                                                            begin-for-syntax465_1
                                                                            e466_0))))
                                                                     (raise-syntax-error$1
                                                                      #f
                                                                      "bad syntax"
                                                                      exp-body_0))))
                                                               (case-lambda
                                                                ((begin-for-syntax463_0
                                                                  e464_0)
                                                                 (values
                                                                  #t
                                                                  begin-for-syntax463_0
                                                                  e464_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ok?_0
                                                               begin-for-syntax463_0
                                                               e464_0)
                                                              (begin
                                                                (let ((obs_0
                                                                       (begin-unsafe
                                                                        (expand-context/inner-observer
                                                                         (root-expand-context/outer-inner
                                                                          ctx43_0)))))
                                                                  (if obs_0
                                                                    (call-expand-observe
                                                                     obs_0
                                                                     'prepare-env)
                                                                    (void)))
                                                                (let ((ct-m-ns_0
                                                                       (namespace->namespace-at-phase
                                                                        namespace44_0
                                                                        (add1
                                                                         phase42_0))))
                                                                  (begin
                                                                    (prepare-next-phase-namespace
                                                                     ctx43_0)
                                                                    (begin
                                                                      (let ((obs_0
                                                                             (begin-unsafe
                                                                              (expand-context/inner-observer
                                                                               (root-expand-context/outer-inner
                                                                                ctx43_0)))))
                                                                        (if obs_0
                                                                          (call-expand-observe
                                                                           obs_0
                                                                           'phase-up)
                                                                          (void)))
                                                                      (let ((nested-bodys_0
                                                                             (|#%app|
                                                                              loop58_0
                                                                              e464_0
                                                                              (add1
                                                                               phase42_0)
                                                                              #f
                                                                              null)))
                                                                        (begin
                                                                          (let ((obs_0
                                                                                 (begin-unsafe
                                                                                  (expand-context/inner-observer
                                                                                   (root-expand-context/outer-inner
                                                                                    ctx43_0)))))
                                                                            (if obs_0
                                                                              (call-expand-observe
                                                                               obs_0
                                                                               'next-group)
                                                                              (void)))
                                                                          (namespace-run-available-modules!
                                                                           namespace44_0
                                                                           (add1
                                                                            phase42_0))
                                                                          (eval-nested-bodys
                                                                           nested-bodys_0
                                                                           (add1
                                                                            phase42_0)
                                                                           ct-m-ns_0
                                                                           self45_0
                                                                           ctx43_0)
                                                                          (namespace-visit-available-modules!
                                                                           namespace44_0
                                                                           phase42_0)
                                                                          (let ((obs_0
                                                                                 (begin-unsafe
                                                                                  (expand-context/inner-observer
                                                                                   (root-expand-context/outer-inner
                                                                                    ctx43_0)))))
                                                                            (if obs_0
                                                                              (call-expand-observe
                                                                               obs_0
                                                                               'exit-case
                                                                               (let ((s-nested-bodys_0
                                                                                      (reverse$1
                                                                                       (begin
                                                                                         (letrec*
                                                                                          ((for-loop_0
                                                                                            (|#%name|
                                                                                             for-loop
                                                                                             (lambda (fold-var_0
                                                                                                      lst_0)
                                                                                               (begin
                                                                                                 (if (pair?
                                                                                                      lst_0)
                                                                                                   (let ((nested-body_0
                                                                                                          (unsafe-car
                                                                                                           lst_0)))
                                                                                                     (let ((rest_0
                                                                                                            (unsafe-cdr
                                                                                                             lst_0)))
                                                                                                       (let ((fold-var_1
                                                                                                              (let ((fold-var_1
                                                                                                                     (cons
                                                                                                                      (extract-syntax
                                                                                                                       nested-body_0)
                                                                                                                      fold-var_0)))
                                                                                                                (values
                                                                                                                 fold-var_1))))
                                                                                                         (for-loop_0
                                                                                                          fold-var_1
                                                                                                          rest_0))))
                                                                                                   fold-var_0))))))
                                                                                          (for-loop_0
                                                                                           null
                                                                                           nested-bodys_0))))))
                                                                                 (cons
                                                                                  begin-for-syntax463_0
                                                                                  s-nested-bodys_0)))
                                                                              (void)))
                                                                          (let ((app_0
                                                                                 (semi-parsed-begin-for-syntax3.1
                                                                                  exp-body_0
                                                                                  nested-bodys_0)))
                                                                            (cons
                                                                             app_0
                                                                             (loop_0
                                                                              tail?_0
                                                                              rest-bodys_0))))))))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args)))))
                                                         (if (eq?
                                                              tmp_0
                                                              'define-values)
                                                           (begin
                                                             (let ((obs_0
                                                                    (begin-unsafe
                                                                     (expand-context/inner-observer
                                                                      (root-expand-context/outer-inner
                                                                       ctx43_0)))))
                                                               (if obs_0
                                                                 (call-expand-observe
                                                                  obs_0
                                                                  'prim-define-values
                                                                  exp-body_0)
                                                                 (void)))
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((s_0
                                                                          (if (syntax?$1
                                                                               exp-body_0)
                                                                            (syntax-e$1
                                                                             exp-body_0)
                                                                            exp-body_0)))
                                                                     (if (pair?
                                                                          s_0)
                                                                       (let ((define-values470_0
                                                                              (let ((s_1
                                                                                     (car
                                                                                      s_0)))
                                                                                s_1)))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((s_1
                                                                                   (cdr
                                                                                    s_0)))
                                                                              (let ((s_2
                                                                                     (if (syntax?$1
                                                                                          s_1)
                                                                                       (syntax-e$1
                                                                                        s_1)
                                                                                       s_1)))
                                                                                (if (pair?
                                                                                     s_2)
                                                                                  (let ((id473_0
                                                                                         (let ((s_3
                                                                                                (car
                                                                                                 s_2)))
                                                                                           (let ((s_4
                                                                                                  (if (syntax?$1
                                                                                                       s_3)
                                                                                                    (syntax-e$1
                                                                                                     s_3)
                                                                                                    s_3)))
                                                                                             (let ((flat-s_0
                                                                                                    (to-syntax-list.1
                                                                                                     s_4)))
                                                                                               (if (not
                                                                                                    flat-s_0)
                                                                                                 (raise-syntax-error$1
                                                                                                  #f
                                                                                                  "bad syntax"
                                                                                                  exp-body_0)
                                                                                                 (let ((id_0
                                                                                                        (begin
                                                                                                          (letrec*
                                                                                                           ((for-loop_0
                                                                                                             (|#%name|
                                                                                                              for-loop
                                                                                                              (lambda (id_0
                                                                                                                       lst_0)
                                                                                                                (begin
                                                                                                                  (if (pair?
                                                                                                                       lst_0)
                                                                                                                    (let ((s_5
                                                                                                                           (unsafe-car
                                                                                                                            lst_0)))
                                                                                                                      (let ((rest_0
                                                                                                                             (unsafe-cdr
                                                                                                                              lst_0)))
                                                                                                                        (let ((id_1
                                                                                                                               (let ((id_1
                                                                                                                                      (let ((id486_0
                                                                                                                                             (if (let ((or-part_0
                                                                                                                                                        (if (syntax?$1
                                                                                                                                                             s_5)
                                                                                                                                                          (symbol?
                                                                                                                                                           (syntax-e$1
                                                                                                                                                            s_5))
                                                                                                                                                          #f)))
                                                                                                                                                   (if or-part_0
                                                                                                                                                     or-part_0
                                                                                                                                                     (symbol?
                                                                                                                                                      s_5)))
                                                                                                                                               s_5
                                                                                                                                               (raise-syntax-error$1
                                                                                                                                                #f
                                                                                                                                                "not an identifier"
                                                                                                                                                exp-body_0
                                                                                                                                                s_5))))
                                                                                                                                        (cons
                                                                                                                                         id486_0
                                                                                                                                         id_0))))
                                                                                                                                 (values
                                                                                                                                  id_1))))
                                                                                                                          (for-loop_0
                                                                                                                           id_1
                                                                                                                           rest_0))))
                                                                                                                    id_0))))))
                                                                                                           (for-loop_0
                                                                                                            null
                                                                                                            flat-s_0)))))
                                                                                                   (reverse$1
                                                                                                    id_0))))))))
                                                                                    (let ((rhs474_0
                                                                                           (let ((s_3
                                                                                                  (cdr
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (if (pair?
                                                                                                    s_4)
                                                                                                 (let ((rhs475_0
                                                                                                        (let ((s_5
                                                                                                               (car
                                                                                                                s_4)))
                                                                                                          s_5)))
                                                                                                   (call-with-values
                                                                                                    (lambda ()
                                                                                                      (let ((s_5
                                                                                                             (cdr
                                                                                                              s_4)))
                                                                                                        (let ((s_6
                                                                                                               (if (syntax?$1
                                                                                                                    s_5)
                                                                                                                 (syntax-e$1
                                                                                                                  s_5)
                                                                                                                 s_5)))
                                                                                                          (if (null?
                                                                                                               s_6)
                                                                                                            (values)
                                                                                                            (raise-syntax-error$1
                                                                                                             #f
                                                                                                             "bad syntax"
                                                                                                             exp-body_0)))))
                                                                                                    (case-lambda
                                                                                                     (()
                                                                                                      (let ((rhs475_1
                                                                                                             rhs475_0))
                                                                                                        (values
                                                                                                         rhs475_1)))
                                                                                                     (args
                                                                                                      (raise-binding-result-arity-error
                                                                                                       0
                                                                                                       args)))))
                                                                                                 (raise-syntax-error$1
                                                                                                  #f
                                                                                                  "bad syntax"
                                                                                                  exp-body_0))))))
                                                                                      (let ((id473_1
                                                                                             id473_0))
                                                                                        (values
                                                                                         id473_1
                                                                                         rhs474_0))))
                                                                                  (raise-syntax-error$1
                                                                                   #f
                                                                                   "bad syntax"
                                                                                   exp-body_0)))))
                                                                          (case-lambda
                                                                           ((id471_0
                                                                             rhs472_0)
                                                                            (let ((define-values470_1
                                                                                   define-values470_0))
                                                                              (values
                                                                               define-values470_1
                                                                               id471_0
                                                                               rhs472_0)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args)))))
                                                                       (raise-syntax-error$1
                                                                        #f
                                                                        "bad syntax"
                                                                        exp-body_0))))
                                                                 (case-lambda
                                                                  ((define-values467_0
                                                                    id468_0
                                                                    rhs469_0)
                                                                   (values
                                                                    #t
                                                                    define-values467_0
                                                                    id468_0
                                                                    rhs469_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    3
                                                                    args)))))
                                                              (case-lambda
                                                               ((ok?_0
                                                                 define-values467_0
                                                                 id468_0
                                                                 rhs469_0)
                                                                (let ((ids_0
                                                                       (remove-use-site-scopes
                                                                        id468_0
                                                                        ctx43_0)))
                                                                  (begin
                                                                    (check-no-duplicate-ids.1
                                                                     unsafe-undefined
                                                                     ids_0
                                                                     phase42_0
                                                                     exp-body_0
                                                                     unsafe-undefined)
                                                                    (begin
                                                                      (check-ids-unbound.1
                                                                       exp-body_0
                                                                       ids_0
                                                                       phase42_0
                                                                       requires-and-provides47_0)
                                                                      (let ((syms_0
                                                                             (select-defined-syms-and-bind!.1
                                                                              #f
                                                                              frame-id46_0
                                                                              exp-body_0
                                                                              requires-and-provides47_0
                                                                              #f
                                                                              ids_0
                                                                              defined-syms50_0
                                                                              self45_0
                                                                              phase42_0
                                                                              all-scopes-stx49_0)))
                                                                        (begin
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_0
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (lst_0)
                                                                                  (begin
                                                                                    (if (pair?
                                                                                         lst_0)
                                                                                      (let ((sym_0
                                                                                             (unsafe-car
                                                                                              lst_0)))
                                                                                        (let ((rest_0
                                                                                               (unsafe-cdr
                                                                                                lst_0)))
                                                                                          (begin
                                                                                            (namespace-unset-transformer!
                                                                                             namespace44_0
                                                                                             phase42_0
                                                                                             sym_0)
                                                                                            (for-loop_0
                                                                                             rest_0))))
                                                                                      (values)))))))
                                                                             (for-loop_0
                                                                              syms_0)))
                                                                          (void)
                                                                          (add-defined-syms!.1
                                                                           #f
                                                                           requires-and-provides47_0
                                                                           syms_0
                                                                           phase42_0)
                                                                          (let ((obs_0
                                                                                 (begin-unsafe
                                                                                  (expand-context/inner-observer
                                                                                   (root-expand-context/outer-inner
                                                                                    ctx43_0)))))
                                                                            (if obs_0
                                                                              (call-expand-observe
                                                                               obs_0
                                                                               'exit-case
                                                                               (list
                                                                                define-values467_0
                                                                                ids_0
                                                                                rhs469_0))
                                                                              (void)))
                                                                          (let ((app_0
                                                                                 (semi-parsed-define-values2.1
                                                                                  exp-body_0
                                                                                  syms_0
                                                                                  ids_0
                                                                                  rhs469_0)))
                                                                            (cons
                                                                             app_0
                                                                             (loop_0
                                                                              tail?_0
                                                                              rest-bodys_0)))))))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 4
                                                                 args)))))
                                                           (if (eq?
                                                                tmp_0
                                                                'define-syntaxes)
                                                             (begin
                                                               (let ((obs_0
                                                                      (begin-unsafe
                                                                       (expand-context/inner-observer
                                                                        (root-expand-context/outer-inner
                                                                         ctx43_0)))))
                                                                 (if obs_0
                                                                   (call-expand-observe
                                                                    obs_0
                                                                    'prim-define-syntaxes
                                                                    exp-body_0)
                                                                   (void)))
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((s_0
                                                                            (if (syntax?$1
                                                                                 exp-body_0)
                                                                              (syntax-e$1
                                                                               exp-body_0)
                                                                              exp-body_0)))
                                                                       (if (pair?
                                                                            s_0)
                                                                         (let ((define-syntaxes498_0
                                                                                (let ((s_1
                                                                                       (car
                                                                                        s_0)))
                                                                                  s_1)))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((s_1
                                                                                     (cdr
                                                                                      s_0)))
                                                                                (let ((s_2
                                                                                       (if (syntax?$1
                                                                                            s_1)
                                                                                         (syntax-e$1
                                                                                          s_1)
                                                                                         s_1)))
                                                                                  (if (pair?
                                                                                       s_2)
                                                                                    (let ((id501_0
                                                                                           (let ((s_3
                                                                                                  (car
                                                                                                   s_2)))
                                                                                             (let ((s_4
                                                                                                    (if (syntax?$1
                                                                                                         s_3)
                                                                                                      (syntax-e$1
                                                                                                       s_3)
                                                                                                      s_3)))
                                                                                               (let ((flat-s_0
                                                                                                      (to-syntax-list.1
                                                                                                       s_4)))
                                                                                                 (if (not
                                                                                                      flat-s_0)
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    exp-body_0)
                                                                                                   (let ((id_0
                                                                                                          (begin
                                                                                                            (letrec*
                                                                                                             ((for-loop_0
                                                                                                               (|#%name|
                                                                                                                for-loop
                                                                                                                (lambda (id_0
                                                                                                                         lst_0)
                                                                                                                  (begin
                                                                                                                    (if (pair?
                                                                                                                         lst_0)
                                                                                                                      (let ((s_5
                                                                                                                             (unsafe-car
                                                                                                                              lst_0)))
                                                                                                                        (let ((rest_0
                                                                                                                               (unsafe-cdr
                                                                                                                                lst_0)))
                                                                                                                          (let ((id_1
                                                                                                                                 (let ((id_1
                                                                                                                                        (let ((id515_0
                                                                                                                                               (if (let ((or-part_0
                                                                                                                                                          (if (syntax?$1
                                                                                                                                                               s_5)
                                                                                                                                                            (symbol?
                                                                                                                                                             (syntax-e$1
                                                                                                                                                              s_5))
                                                                                                                                                            #f)))
                                                                                                                                                     (if or-part_0
                                                                                                                                                       or-part_0
                                                                                                                                                       (symbol?
                                                                                                                                                        s_5)))
                                                                                                                                                 s_5
                                                                                                                                                 (raise-syntax-error$1
                                                                                                                                                  #f
                                                                                                                                                  "not an identifier"
                                                                                                                                                  exp-body_0
                                                                                                                                                  s_5))))
                                                                                                                                          (cons
                                                                                                                                           id515_0
                                                                                                                                           id_0))))
                                                                                                                                   (values
                                                                                                                                    id_1))))
                                                                                                                            (for-loop_0
                                                                                                                             id_1
                                                                                                                             rest_0))))
                                                                                                                      id_0))))))
                                                                                                             (for-loop_0
                                                                                                              null
                                                                                                              flat-s_0)))))
                                                                                                     (reverse$1
                                                                                                      id_0))))))))
                                                                                      (let ((rhs502_0
                                                                                             (let ((s_3
                                                                                                    (cdr
                                                                                                     s_2)))
                                                                                               (let ((s_4
                                                                                                      (if (syntax?$1
                                                                                                           s_3)
                                                                                                        (syntax-e$1
                                                                                                         s_3)
                                                                                                        s_3)))
                                                                                                 (if (pair?
                                                                                                      s_4)
                                                                                                   (let ((rhs503_0
                                                                                                          (let ((s_5
                                                                                                                 (car
                                                                                                                  s_4)))
                                                                                                            s_5)))
                                                                                                     (call-with-values
                                                                                                      (lambda ()
                                                                                                        (let ((s_5
                                                                                                               (cdr
                                                                                                                s_4)))
                                                                                                          (let ((s_6
                                                                                                                 (if (syntax?$1
                                                                                                                      s_5)
                                                                                                                   (syntax-e$1
                                                                                                                    s_5)
                                                                                                                   s_5)))
                                                                                                            (if (null?
                                                                                                                 s_6)
                                                                                                              (values)
                                                                                                              (raise-syntax-error$1
                                                                                                               #f
                                                                                                               "bad syntax"
                                                                                                               exp-body_0)))))
                                                                                                      (case-lambda
                                                                                                       (()
                                                                                                        (let ((rhs503_1
                                                                                                               rhs503_0))
                                                                                                          (values
                                                                                                           rhs503_1)))
                                                                                                       (args
                                                                                                        (raise-binding-result-arity-error
                                                                                                         0
                                                                                                         args)))))
                                                                                                   (raise-syntax-error$1
                                                                                                    #f
                                                                                                    "bad syntax"
                                                                                                    exp-body_0))))))
                                                                                        (let ((id501_1
                                                                                               id501_0))
                                                                                          (values
                                                                                           id501_1
                                                                                           rhs502_0))))
                                                                                    (raise-syntax-error$1
                                                                                     #f
                                                                                     "bad syntax"
                                                                                     exp-body_0)))))
                                                                            (case-lambda
                                                                             ((id499_0
                                                                               rhs500_0)
                                                                              (let ((define-syntaxes498_1
                                                                                     define-syntaxes498_0))
                                                                                (values
                                                                                 define-syntaxes498_1
                                                                                 id499_0
                                                                                 rhs500_0)))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args)))))
                                                                         (raise-syntax-error$1
                                                                          #f
                                                                          "bad syntax"
                                                                          exp-body_0))))
                                                                   (case-lambda
                                                                    ((define-syntaxes495_0
                                                                      id496_0
                                                                      rhs497_0)
                                                                     (values
                                                                      #t
                                                                      define-syntaxes495_0
                                                                      id496_0
                                                                      rhs497_0))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      3
                                                                      args)))))
                                                                (case-lambda
                                                                 ((ok?_0
                                                                   define-syntaxes495_0
                                                                   id496_0
                                                                   rhs497_0)
                                                                  (begin
                                                                    (let ((obs_0
                                                                           (begin-unsafe
                                                                            (expand-context/inner-observer
                                                                             (root-expand-context/outer-inner
                                                                              ctx43_0)))))
                                                                      (if obs_0
                                                                        (call-expand-observe
                                                                         obs_0
                                                                         'prepare-env)
                                                                        (void)))
                                                                    (begin
                                                                      (prepare-next-phase-namespace
                                                                       ctx43_0)
                                                                      (begin
                                                                        (let ((obs_0
                                                                               (begin-unsafe
                                                                                (expand-context/inner-observer
                                                                                 (root-expand-context/outer-inner
                                                                                  ctx43_0)))))
                                                                          (if obs_0
                                                                            (call-expand-observe
                                                                             obs_0
                                                                             'phase-up)
                                                                            (void)))
                                                                        (let ((ids_0
                                                                               (remove-use-site-scopes
                                                                                id496_0
                                                                                ctx43_0)))
                                                                          (begin
                                                                            (check-no-duplicate-ids.1
                                                                             unsafe-undefined
                                                                             ids_0
                                                                             phase42_0
                                                                             exp-body_0
                                                                             unsafe-undefined)
                                                                            (begin
                                                                              (check-ids-unbound.1
                                                                               exp-body_0
                                                                               ids_0
                                                                               phase42_0
                                                                               requires-and-provides47_0)
                                                                              (let ((syms_0
                                                                                     (select-defined-syms-and-bind!.1
                                                                                      #t
                                                                                      frame-id46_0
                                                                                      exp-body_0
                                                                                      requires-and-provides47_0
                                                                                      #f
                                                                                      ids_0
                                                                                      defined-syms50_0
                                                                                      self45_0
                                                                                      phase42_0
                                                                                      all-scopes-stx49_0)))
                                                                                (begin
                                                                                  (add-defined-syms!.1
                                                                                   #t
                                                                                   requires-and-provides47_0
                                                                                   syms_0
                                                                                   phase42_0)
                                                                                  (let ((install-values_0
                                                                                         (|#%name|
                                                                                          install-values
                                                                                          (lambda (vals_0)
                                                                                            (begin
                                                                                              (begin
                                                                                                (begin
                                                                                                  (letrec*
                                                                                                   ((for-loop_0
                                                                                                     (|#%name|
                                                                                                      for-loop
                                                                                                      (lambda (lst_0
                                                                                                               lst_1
                                                                                                               lst_2)
                                                                                                        (begin
                                                                                                          (if (if (pair?
                                                                                                                   lst_0)
                                                                                                                (if (pair?
                                                                                                                     lst_1)
                                                                                                                  (pair?
                                                                                                                   lst_2)
                                                                                                                  #f)
                                                                                                                #f)
                                                                                                            (let ((sym_0
                                                                                                                   (unsafe-car
                                                                                                                    lst_0)))
                                                                                                              (let ((rest_0
                                                                                                                     (unsafe-cdr
                                                                                                                      lst_0)))
                                                                                                                (let ((val_0
                                                                                                                       (unsafe-car
                                                                                                                        lst_1)))
                                                                                                                  (let ((rest_1
                                                                                                                         (unsafe-cdr
                                                                                                                          lst_1)))
                                                                                                                    (let ((id_0
                                                                                                                           (unsafe-car
                                                                                                                            lst_2)))
                                                                                                                      (let ((rest_2
                                                                                                                             (unsafe-cdr
                                                                                                                              lst_2)))
                                                                                                                        (begin
                                                                                                                          (begin
                                                                                                                            (maybe-install-free=id-in-context!
                                                                                                                             val_0
                                                                                                                             id_0
                                                                                                                             phase42_0
                                                                                                                             ctx43_0)
                                                                                                                            (maybe-install-portal-syntax!
                                                                                                                             val_0
                                                                                                                             sym_0
                                                                                                                             phase42_0
                                                                                                                             portal-syntaxes56_0)
                                                                                                                            (namespace-set-transformer!
                                                                                                                             namespace44_0
                                                                                                                             phase42_0
                                                                                                                             sym_0
                                                                                                                             val_0))
                                                                                                                          (for-loop_0
                                                                                                                           rest_0
                                                                                                                           rest_1
                                                                                                                           rest_2))))))))
                                                                                                            (values)))))))
                                                                                                   (for-loop_0
                                                                                                    syms_0
                                                                                                    vals_0
                                                                                                    ids_0)))
                                                                                                (void)))))))
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (let ((temp528_0
                                                                                              (if (expand-context/outer?
                                                                                                   ctx43_0)
                                                                                                (let ((inner532_0
                                                                                                       (let ((the-struct_0
                                                                                                              (root-expand-context/outer-inner
                                                                                                               ctx43_0)))
                                                                                                         (if (expand-context/inner?
                                                                                                              the-struct_0)
                                                                                                           (expand-context/inner2.1
                                                                                                            (root-expand-context/inner-self-mpi
                                                                                                             the-struct_0)
                                                                                                            (root-expand-context/inner-module-scopes
                                                                                                             the-struct_0)
                                                                                                            (root-expand-context/inner-top-level-bind-scope
                                                                                                             the-struct_0)
                                                                                                            (root-expand-context/inner-all-scopes-stx
                                                                                                             the-struct_0)
                                                                                                            (root-expand-context/inner-defined-syms
                                                                                                             the-struct_0)
                                                                                                            (root-expand-context/inner-counter
                                                                                                             the-struct_0)
                                                                                                            (root-expand-context/inner-lift-key
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-to-parsed?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-phase
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-namespace
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-just-once?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-module-begin-k
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-allow-unbound?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-in-local-expand?
                                                                                                             the-struct_0)
                                                                                                            (|expand-context/inner-keep-#%expression?|
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-stops
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-declared-submodule-names
                                                                                                             the-struct_0)
                                                                                                            #f
                                                                                                            (expand-context/inner-lift-envs
                                                                                                             the-struct_0)
                                                                                                            #f
                                                                                                            (expand-context/inner-require-lifts
                                                                                                             the-struct_0)
                                                                                                            #f
                                                                                                            (expand-context/inner-requires+provides
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-observer
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-for-serializable?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-to-correlated-linklet?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-normalize-locals?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-parsing-expanded?
                                                                                                             the-struct_0)
                                                                                                            (expand-context/inner-skip-visit-available?
                                                                                                             the-struct_0))
                                                                                                           (raise-argument-error
                                                                                                            'struct-copy
                                                                                                            "expand-context/inner?"
                                                                                                            the-struct_0)))))
                                                                                                  (expand-context/outer1.1
                                                                                                   inner532_0
                                                                                                   (root-expand-context/outer-post-expansion
                                                                                                    ctx43_0)
                                                                                                   (root-expand-context/outer-use-site-scopes
                                                                                                    ctx43_0)
                                                                                                   (root-expand-context/outer-frame-id
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-context
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-env
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-scopes
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-def-ctx-scopes
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-binding-layer
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-reference-records
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-only-immediate?
                                                                                                    ctx43_0)
                                                                                                   need-eventually-defined48_0
                                                                                                   (expand-context/outer-current-introduction-scopes
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-current-use-scopes
                                                                                                    ctx43_0)
                                                                                                   (expand-context/outer-name
                                                                                                    ctx43_0)))
                                                                                                (raise-argument-error
                                                                                                 'struct-copy
                                                                                                 "expand-context/outer?"
                                                                                                 ctx43_0))))
                                                                                         (let ((temp530_0
                                                                                                (lambda (go_0)
                                                                                                  (call-with-module-prompt/value-list
                                                                                                   'define-syntaxes
                                                                                                   go_0
                                                                                                   ids_0
                                                                                                   install-values_0))))
                                                                                           (let ((temp528_1
                                                                                                  temp528_0))
                                                                                             (expand+eval-for-syntaxes-binding.1
                                                                                              #f
                                                                                              temp530_0
                                                                                              'define-syntaxes
                                                                                              rhs497_0
                                                                                              ids_0
                                                                                              temp528_1)))))
                                                                                     (case-lambda
                                                                                      ((exp-rhs_0
                                                                                        parsed-rhs_0
                                                                                        vals_0)
                                                                                       (begin
                                                                                         (let ((obs_0
                                                                                                (begin-unsafe
                                                                                                 (expand-context/inner-observer
                                                                                                  (root-expand-context/outer-inner
                                                                                                   ctx43_0)))))
                                                                                           (if obs_0
                                                                                             (call-expand-observe
                                                                                              obs_0
                                                                                              'exit-case
                                                                                              (list
                                                                                               define-syntaxes495_0
                                                                                               ids_0
                                                                                               exp-rhs_0))
                                                                                             (void)))
                                                                                         (let ((parsed-body_0
                                                                                                (parsed-define-syntaxes20.1
                                                                                                 (keep-properties-only
                                                                                                  exp-body_0)
                                                                                                 ids_0
                                                                                                 syms_0
                                                                                                 parsed-rhs_0)))
                                                                                           (let ((app_0
                                                                                                  (if (begin-unsafe
                                                                                                       (expand-context/inner-to-parsed?
                                                                                                        (root-expand-context/outer-inner
                                                                                                         ctx43_0)))
                                                                                                    parsed-body_0
                                                                                                    (expanded+parsed1.1
                                                                                                     (let ((temp537_0
                                                                                                            (list
                                                                                                             define-syntaxes495_0
                                                                                                             ids_0
                                                                                                             exp-rhs_0)))
                                                                                                       (rebuild.1
                                                                                                        #t
                                                                                                        exp-body_0
                                                                                                        temp537_0))
                                                                                                     parsed-body_0))))
                                                                                             (cons
                                                                                              app_0
                                                                                              (loop_0
                                                                                               tail?_0
                                                                                               rest-bodys_0))))))
                                                                                      (args
                                                                                       (raise-binding-result-arity-error
                                                                                        3
                                                                                        args))))))))))))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   4
                                                                   args)))))
                                                             (if (eq?
                                                                  tmp_0
                                                                  '|#%require|)
                                                               (begin
                                                                 (let ((obs_0
                                                                        (begin-unsafe
                                                                         (expand-context/inner-observer
                                                                          (root-expand-context/outer-inner
                                                                           ctx43_0)))))
                                                                   (if obs_0
                                                                     (call-expand-observe
                                                                      obs_0
                                                                      'prim-require
                                                                      exp-body_0)
                                                                     (void)))
                                                                 (let ((ready-body_0
                                                                        (remove-use-site-scopes
                                                                         exp-body_0
                                                                         ctx43_0)))
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((s_0
                                                                                (if (syntax?$1
                                                                                     ready-body_0)
                                                                                  (syntax-e$1
                                                                                   ready-body_0)
                                                                                  ready-body_0)))
                                                                           (if (pair?
                                                                                s_0)
                                                                             (let ((|#%require540_0|
                                                                                    (let ((s_1
                                                                                           (car
                                                                                            s_0)))
                                                                                      s_1)))
                                                                               (let ((req541_0
                                                                                      (let ((s_1
                                                                                             (cdr
                                                                                              s_0)))
                                                                                        (let ((s_2
                                                                                               (if (syntax?$1
                                                                                                    s_1)
                                                                                                 (syntax-e$1
                                                                                                  s_1)
                                                                                                 s_1)))
                                                                                          (let ((flat-s_0
                                                                                                 (to-syntax-list.1
                                                                                                  s_2)))
                                                                                            (if (not
                                                                                                 flat-s_0)
                                                                                              (raise-syntax-error$1
                                                                                               #f
                                                                                               "bad syntax"
                                                                                               ready-body_0)
                                                                                              flat-s_0))))))
                                                                                 (let ((|#%require540_1|
                                                                                        |#%require540_0|))
                                                                                   (values
                                                                                    |#%require540_1|
                                                                                    req541_0))))
                                                                             (raise-syntax-error$1
                                                                              #f
                                                                              "bad syntax"
                                                                              ready-body_0))))
                                                                       (case-lambda
                                                                        ((|#%require538_0|
                                                                          req539_0)
                                                                         (values
                                                                          #t
                                                                          |#%require538_0|
                                                                          req539_0))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args)))))
                                                                    (case-lambda
                                                                     ((ok?_0
                                                                       |#%require538_0|
                                                                       req539_0)
                                                                      (begin
                                                                        (parse-and-perform-requires!.1
                                                                         add-defined-portal57_0
                                                                         all-scopes-stx49_0
                                                                         #f
                                                                         #f
                                                                         declared-submodule-names52_0
                                                                         #f
                                                                         phase42_0
                                                                         #f
                                                                         self45_0
                                                                         #f
                                                                         #t
                                                                         'module
                                                                         req539_0
                                                                         exp-body_0
                                                                         namespace44_0
                                                                         phase42_0
                                                                         requires-and-provides47_0)
                                                                        (let ((obs_0
                                                                               (begin-unsafe
                                                                                (expand-context/inner-observer
                                                                                 (root-expand-context/outer-inner
                                                                                  ctx43_0)))))
                                                                          (if obs_0
                                                                            (call-expand-observe
                                                                             obs_0
                                                                             'exit-case
                                                                             ready-body_0)
                                                                            (void)))
                                                                        (cons
                                                                         ready-body_0
                                                                         (loop_0
                                                                          tail?_0
                                                                          rest-bodys_0))))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       3
                                                                       args))))))
                                                               (if (eq?
                                                                    tmp_0
                                                                    '|#%provide|)
                                                                 (begin
                                                                   (let ((obs_0
                                                                          (begin-unsafe
                                                                           (expand-context/inner-observer
                                                                            (root-expand-context/outer-inner
                                                                             ctx43_0)))))
                                                                     (if obs_0
                                                                       (call-expand-observe
                                                                        obs_0
                                                                        'prim-stop
                                                                        #f)
                                                                       (void)))
                                                                   (cons
                                                                    exp-body_0
                                                                    (loop_0
                                                                     tail?_0
                                                                     rest-bodys_0)))
                                                                 (if (eq?
                                                                      tmp_0
                                                                      'module)
                                                                   (begin
                                                                     (let ((obs_0
                                                                            (begin-unsafe
                                                                             (expand-context/inner-observer
                                                                              (root-expand-context/outer-inner
                                                                               ctx43_0)))))
                                                                       (if obs_0
                                                                         (call-expand-observe
                                                                          obs_0
                                                                          'prim-submodule
                                                                          #f)
                                                                         (void)))
                                                                     (let ((ready-body_0
                                                                            (remove-use-site-scopes
                                                                             exp-body_0
                                                                             ctx43_0)))
                                                                       (let ((submod_0
                                                                              (expand-submodule.1
                                                                               compiled-submodules53_0
                                                                               declared-submodule-names52_0
                                                                               #f
                                                                               #f
                                                                               #f
                                                                               #f
                                                                               modules-being-compiled54_0
                                                                               mpis-to-reset55_0
                                                                               ready-body_0
                                                                               self45_0
                                                                               ctx43_0)))
                                                                         (cons
                                                                          submod_0
                                                                          (loop_0
                                                                           tail?_0
                                                                           rest-bodys_0)))))
                                                                   (if (eq?
                                                                        tmp_0
                                                                        'module*)
                                                                     (begin
                                                                       (let ((obs_0
                                                                              (begin-unsafe
                                                                               (expand-context/inner-observer
                                                                                (root-expand-context/outer-inner
                                                                                 ctx43_0)))))
                                                                         (if obs_0
                                                                           (call-expand-observe
                                                                            obs_0
                                                                            'prim-stop
                                                                            #f)
                                                                           (void)))
                                                                       (cons
                                                                        exp-body_0
                                                                        (loop_0
                                                                         tail?_0
                                                                         rest-bodys_0)))
                                                                     (if (eq?
                                                                          tmp_0
                                                                          '|#%declare|)
                                                                       (begin
                                                                         (let ((obs_0
                                                                                (begin-unsafe
                                                                                 (expand-context/inner-observer
                                                                                  (root-expand-context/outer-inner
                                                                                   ctx43_0)))))
                                                                           (if obs_0
                                                                             (call-expand-observe
                                                                              obs_0
                                                                              'prim-declare
                                                                              exp-body_0)
                                                                             (void)))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (let ((s_0
                                                                                      (if (syntax?$1
                                                                                           exp-body_0)
                                                                                        (syntax-e$1
                                                                                         exp-body_0)
                                                                                        exp-body_0)))
                                                                                 (if (pair?
                                                                                      s_0)
                                                                                   (let ((|#%declare563_0|
                                                                                          (let ((s_1
                                                                                                 (car
                                                                                                  s_0)))
                                                                                            s_1)))
                                                                                     (let ((kw564_0
                                                                                            (let ((s_1
                                                                                                   (cdr
                                                                                                    s_0)))
                                                                                              (let ((s_2
                                                                                                     (if (syntax?$1
                                                                                                          s_1)
                                                                                                       (syntax-e$1
                                                                                                        s_1)
                                                                                                       s_1)))
                                                                                                (let ((flat-s_0
                                                                                                       (to-syntax-list.1
                                                                                                        s_2)))
                                                                                                  (if (not
                                                                                                       flat-s_0)
                                                                                                    (raise-syntax-error$1
                                                                                                     #f
                                                                                                     "bad syntax"
                                                                                                     exp-body_0)
                                                                                                    flat-s_0))))))
                                                                                       (let ((|#%declare563_1|
                                                                                              |#%declare563_0|))
                                                                                         (values
                                                                                          |#%declare563_1|
                                                                                          kw564_0))))
                                                                                   (raise-syntax-error$1
                                                                                    #f
                                                                                    "bad syntax"
                                                                                    exp-body_0))))
                                                                             (case-lambda
                                                                              ((|#%declare561_0|
                                                                                kw562_0)
                                                                               (values
                                                                                #t
                                                                                |#%declare561_0|
                                                                                kw562_0))
                                                                              (args
                                                                               (raise-binding-result-arity-error
                                                                                2
                                                                                args)))))
                                                                          (case-lambda
                                                                           ((ok?_0
                                                                             |#%declare561_0|
                                                                             kw562_0)
                                                                            (begin
                                                                              (letrec*
                                                                               ((loop_1
                                                                                 (|#%name|
                                                                                  loop
                                                                                  (lambda (kws_0)
                                                                                    (begin
                                                                                      (if (null?
                                                                                           kws_0)
                                                                                        (void)
                                                                                        (let ((kw_0
                                                                                               (car
                                                                                                kws_0)))
                                                                                          (begin
                                                                                            (if (keyword?
                                                                                                 (syntax-e$1
                                                                                                  kw_0))
                                                                                              (void)
                                                                                              (raise-syntax-error$1
                                                                                               #f
                                                                                               "expected a keyword"
                                                                                               exp-body_0
                                                                                               kw_0))
                                                                                            (begin
                                                                                              (if (memq
                                                                                                   (syntax-e$1
                                                                                                    kw_0)
                                                                                                   kws2603)
                                                                                                (void)
                                                                                                (raise-syntax-error$1
                                                                                                 #f
                                                                                                 "not an allowed declaration keyword"
                                                                                                 exp-body_0
                                                                                                 kw_0))
                                                                                              (let ((has-arg?_0
                                                                                                     (eq?
                                                                                                      (syntax-e$1
                                                                                                       kw_0)
                                                                                                      kw1701)))
                                                                                                (begin
                                                                                                  (if (hash-ref
                                                                                                       declared-keywords51_0
                                                                                                       (syntax-e$1
                                                                                                        kw_0)
                                                                                                       #f)
                                                                                                    (raise-syntax-error$1
                                                                                                     #f
                                                                                                     "keyword declared multiple times"
                                                                                                     exp-body_0
                                                                                                     kw_0)
                                                                                                    (void))
                                                                                                  (if (eq?
                                                                                                       (syntax-e$1
                                                                                                        kw_0)
                                                                                                       kw2838)
                                                                                                    (if (eq?
                                                                                                         (current-code-inspector)
                                                                                                         initial-code-inspector)
                                                                                                      (void)
                                                                                                      (raise-syntax-error$1
                                                                                                       #f
                                                                                                       "unsafe compilation disallowed by code inspector"
                                                                                                       exp-body_0
                                                                                                       kw_0))
                                                                                                    (void))
                                                                                                  (if (eq?
                                                                                                       (syntax-e$1
                                                                                                        kw_0)
                                                                                                       kw1701)
                                                                                                    (if (if (pair?
                                                                                                             (cdr
                                                                                                              kws_0))
                                                                                                          (identifier?
                                                                                                           (cadr
                                                                                                            kws_0))
                                                                                                          #f)
                                                                                                      (void)
                                                                                                      (raise-syntax-error$1
                                                                                                       #f
                                                                                                       "expected an identifier after keyword"
                                                                                                       exp-body_0
                                                                                                       kw_0))
                                                                                                    (void))
                                                                                                  (if (eq?
                                                                                                       (syntax-e$1
                                                                                                        kw_0)
                                                                                                       kw2362)
                                                                                                    (begin-unsafe
                                                                                                     (set-requires+provides-definitions-shadow-imports?!
                                                                                                      requires-and-provides47_0
                                                                                                      #f))
                                                                                                    (void))
                                                                                                  (let ((app_0
                                                                                                         (syntax-e$1
                                                                                                          kw_0)))
                                                                                                    (hash-set!
                                                                                                     declared-keywords51_0
                                                                                                     app_0
                                                                                                     (if has-arg?_0
                                                                                                       (cadr
                                                                                                        kws_0)
                                                                                                       kw_0)))
                                                                                                  (loop_1
                                                                                                   (if has-arg?_0
                                                                                                     (cddr
                                                                                                      kws_0)
                                                                                                     (cdr
                                                                                                      kws_0))))))))))))))
                                                                               (loop_1
                                                                                kw562_0))
                                                                              (let ((parsed-body_0
                                                                                     (|parsed-#%declare22.1|
                                                                                      exp-body_0)))
                                                                                (let ((app_0
                                                                                       (if (begin-unsafe
                                                                                            (expand-context/inner-to-parsed?
                                                                                             (root-expand-context/outer-inner
                                                                                              ctx43_0)))
                                                                                         parsed-body_0
                                                                                         (expanded+parsed1.1
                                                                                          exp-body_0
                                                                                          parsed-body_0))))
                                                                                  (cons
                                                                                   app_0
                                                                                   (loop_0
                                                                                    tail?_0
                                                                                    rest-bodys_0))))))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             3
                                                                             args)))))
                                                                       (begin
                                                                         (let ((obs_0
                                                                                (begin-unsafe
                                                                                 (expand-context/inner-observer
                                                                                  (root-expand-context/outer-inner
                                                                                   ctx43_0)))))
                                                                           (if obs_0
                                                                             (call-expand-observe
                                                                              obs_0
                                                                              'prim-stop
                                                                              #f)
                                                                             (void)))
                                                                         (cons
                                                                          exp-body_0
                                                                          (loop_0
                                                                           tail?_0
                                                                           rest-bodys_0))))))))))))))))))
                                         (let ((l_0
                                                (append
                                                 lifted-reqs_0
                                                 lifted-defns_0
                                                 exp-lifted-mods_0)))
                                           (if (null? l_0)
                                             (finish_0)
                                             (append
                                              l_0
                                              (finish_0)))))))))))))))))))))
          (loop_0 #t bodys76_0)))))))
(define make-wrap-as-definition
  (lambda (self_0
           frame-id_0
           inside-scope_0
           all-scopes-stx_0
           defined-syms_0
           requires+provides_0)
    (lambda (ids_0 rhs_0 phase_0)
      (let ((scoped-ids_0
             (reverse$1
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (fold-var_0 lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((id_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (let ((fold-var_1
                                     (let ((fold-var_1
                                            (cons
                                             (add-scope id_0 inside-scope_0)
                                             fold-var_0)))
                                       (values fold-var_1))))
                                (for-loop_0 fold-var_1 rest_0))))
                          fold-var_0))))))
                 (for-loop_0 null ids_0))))))
        (let ((syms_0
               (select-defined-syms-and-bind!.1
                #f
                frame-id_0
                #f
                requires+provides_0
                #f
                scoped-ids_0
                defined-syms_0
                self_0
                phase_0
                all-scopes-stx_0)))
          (let ((s_0
                 (add-scope
                  (datum->syntax$1
                   #f
                   (list
                    (datum->syntax$1
                     (syntax-shift-phase-level$1 core-stx phase_0)
                     'define-values)
                    scoped-ids_0
                    rhs_0))
                  inside-scope_0)))
            (values
             scoped-ids_0
             (semi-parsed-define-values2.1
              s_0
              syms_0
              scoped-ids_0
              rhs_0))))))))
(define add-post-expansion-scope
  (lambda (bodys_0 ctx_0)
    (let ((pe_0
           (begin-unsafe (root-expand-context/outer-post-expansion ctx_0))))
      (if pe_0
        (reverse$1
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (fold-var_0 lst_0)
                 (begin
                   (if (pair? lst_0)
                     (let ((body_0 (unsafe-car lst_0)))
                       (let ((rest_0 (unsafe-cdr lst_0)))
                         (let ((fold-var_1
                                (let ((fold-var_1
                                       (cons
                                        (apply-post-expansion pe_0 body_0)
                                        fold-var_0)))
                                  (values fold-var_1))))
                           (for-loop_0 fold-var_1 rest_0))))
                     fold-var_0))))))
            (for-loop_0 null bodys_0))))
        bodys_0))))
(define finish-expanding-body-expressions.1
  (|#%name|
   finish-expanding-body-expressions
   (lambda (compiled-submodules82_0
            ctx79_0
            declared-submodule-names81_0
            modules-being-compiled83_0
            mpis-to-reset84_0
            phase78_0
            self80_0
            partially-expanded-bodys92_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (tail?_0 bodys_0)
             (begin
               (if (null? bodys_0)
                 (if (if tail?_0 (not (zero? phase78_0)) #f)
                   null
                   (if tail?_0
                     (let ((bodys_1
                            (let ((app_0
                                   (let ((to-module-lifts_0
                                          (begin-unsafe
                                           (expand-context/inner-to-module-lifts
                                            (root-expand-context/outer-inner
                                             ctx79_0)))))
                                     (begin-unsafe
                                      (box-clear!
                                       (to-module-lift-context-ends
                                        to-module-lifts_0))))))
                              (append
                               app_0
                               (let ((to-module-lifts_0
                                      (begin-unsafe
                                       (expand-context/inner-to-module-lifts
                                        (root-expand-context/outer-inner
                                         ctx79_0)))))
                                 (begin-unsafe
                                  (box-clear!
                                   (to-module-lift-context-provides
                                    to-module-lifts_0))))))))
                       (if (null? bodys_1)
                         null
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     ctx79_0)))))
                             (if obs_0
                               (call-expand-observe
                                obs_0
                                'module-end-lifts
                                bodys_1)
                               (void)))
                           (loop_0
                            #t
                            (add-post-expansion-scope bodys_1 ctx79_0)))))
                     null))
                 (begin
                   (let ((obs_0
                          (begin-unsafe
                           (expand-context/inner-observer
                            (root-expand-context/outer-inner ctx79_0)))))
                     (if obs_0 (call-expand-observe obs_0 'next) (void)))
                   (let ((body_0 (car bodys_0)))
                     (let ((rest-bodys_0 (cdr bodys_0)))
                       (let ((exp-body_0
                              (if (let ((or-part_0 (parsed? body_0)))
                                    (if or-part_0
                                      or-part_0
                                      (let ((or-part_1
                                             (expanded+parsed? body_0)))
                                        (if or-part_1
                                          or-part_1
                                          (semi-parsed-begin-for-syntax?
                                           body_0)))))
                                body_0
                                (if (semi-parsed-define-values? body_0)
                                  (let ((ids_0
                                         (semi-parsed-define-values-ids
                                          body_0)))
                                    (let ((rhs-ctx_0
                                           (as-named-context
                                            (as-expression-context ctx79_0)
                                            ids_0)))
                                      (let ((syms_0
                                             (semi-parsed-define-values-syms
                                              body_0)))
                                        (let ((s_0
                                               (semi-parsed-define-values-s
                                                body_0)))
                                          (call-with-values
                                           (lambda ()
                                             (if (if (not
                                                      (begin-unsafe
                                                       (expand-context/inner-to-parsed?
                                                        (root-expand-context/outer-inner
                                                         rhs-ctx_0))))
                                                   #t
                                                   #f)
                                               (call-with-values
                                                (lambda ()
                                                  (let ((s_1
                                                         (if (syntax?$1 s_0)
                                                           (syntax-e$1 s_0)
                                                           s_0)))
                                                    (if (pair? s_1)
                                                      (let ((define-values575_0
                                                             (let ((s_2
                                                                    (car s_1)))
                                                               s_2)))
                                                        (call-with-values
                                                         (lambda ()
                                                           (let ((s_2
                                                                  (cdr s_1)))
                                                             (let ((s_3
                                                                    (if (syntax?$1
                                                                         s_2)
                                                                      (syntax-e$1
                                                                       s_2)
                                                                      s_2)))
                                                               (if (pair? s_3)
                                                                 (let ((_0
                                                                        (let ((s_4
                                                                               (car
                                                                                s_3)))
                                                                          s_4)))
                                                                   (let ((_1
                                                                          (let ((s_4
                                                                                 (cdr
                                                                                  s_3)))
                                                                            (let ((s_5
                                                                                   (if (syntax?$1
                                                                                        s_4)
                                                                                     (syntax-e$1
                                                                                      s_4)
                                                                                     s_4)))
                                                                              (if (pair?
                                                                                   s_5)
                                                                                (let ((_1
                                                                                       (let ((s_6
                                                                                              (car
                                                                                               s_5)))
                                                                                         s_6)))
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((s_6
                                                                                            (cdr
                                                                                             s_5)))
                                                                                       (let ((s_7
                                                                                              (if (syntax?$1
                                                                                                   s_6)
                                                                                                (syntax-e$1
                                                                                                 s_6)
                                                                                                s_6)))
                                                                                         (if (null?
                                                                                              s_7)
                                                                                           (values)
                                                                                           (raise-syntax-error$1
                                                                                            #f
                                                                                            "bad syntax"
                                                                                            s_0)))))
                                                                                   (case-lambda
                                                                                    (()
                                                                                     (let ((_2
                                                                                            _1))
                                                                                       (values
                                                                                        _2)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      0
                                                                                      args)))))
                                                                                (raise-syntax-error$1
                                                                                 #f
                                                                                 "bad syntax"
                                                                                 s_0))))))
                                                                     (let ((_2
                                                                            _0))
                                                                       (values
                                                                        _2
                                                                        _1))))
                                                                 (raise-syntax-error$1
                                                                  #f
                                                                  "bad syntax"
                                                                  s_0)))))
                                                         (case-lambda
                                                          ((_0 _1)
                                                           (let ((define-values575_1
                                                                  define-values575_0))
                                                             (values
                                                              define-values575_1
                                                              _0
                                                              _1)))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args)))))
                                                      (raise-syntax-error$1
                                                       #f
                                                       "bad syntax"
                                                       s_0))))
                                                (case-lambda
                                                 ((define-values572_0 _0 _1)
                                                  (values
                                                   #t
                                                   define-values572_0
                                                   _0
                                                   _1))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   3
                                                   args))))
                                               (values #f #f #f #f)))
                                           (case-lambda
                                            ((ok?_0 define-values572_0 _0 _1)
                                             (let ((rebuild-s_0
                                                    (keep-as-needed.1
                                                     #f
                                                     #f
                                                     #t
                                                     rhs-ctx_0
                                                     s_0)))
                                               (begin
                                                 (let ((obs_0
                                                        (begin-unsafe
                                                         (expand-context/inner-observer
                                                          (root-expand-context/outer-inner
                                                           ctx79_0)))))
                                                   (if obs_0
                                                     (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)))
                                                 (let ((exp-rhs_0
                                                        (begin
                                                          (if log-performance?
                                                            (start-performance-region
                                                             'expand
                                                             'form-in-module/2)
                                                            (void))
                                                          (begin0
                                                            (let ((temp584_0
                                                                   (semi-parsed-define-values-rhs
                                                                    body_0)))
                                                              (expand.1
                                                               #f
                                                               #f
                                                               temp584_0
                                                               rhs-ctx_0))
                                                            (if log-performance?
                                                              (end-performance-region)
                                                              (void))))))
                                                   (begin
                                                     (let ((obs_0
                                                            (begin-unsafe
                                                             (expand-context/inner-observer
                                                              (root-expand-context/outer-inner
                                                               ctx79_0)))))
                                                       (if obs_0
                                                         (call-expand-observe
                                                          obs_0
                                                          'exit-prim/return
                                                          #f)
                                                         (void)))
                                                     (let ((comp-form_0
                                                            (parsed-define-values19.1
                                                             rebuild-s_0
                                                             ids_0
                                                             syms_0
                                                             (if (begin-unsafe
                                                                  (expand-context/inner-to-parsed?
                                                                   (root-expand-context/outer-inner
                                                                    rhs-ctx_0)))
                                                               exp-rhs_0
                                                               (let ((temp587_0
                                                                      (as-to-parsed-context
                                                                       rhs-ctx_0)))
                                                                 (expand.1
                                                                  #f
                                                                  #f
                                                                  exp-rhs_0
                                                                  temp587_0))))))
                                                       (if (begin-unsafe
                                                            (expand-context/inner-to-parsed?
                                                             (root-expand-context/outer-inner
                                                              rhs-ctx_0)))
                                                         comp-form_0
                                                         (expanded+parsed1.1
                                                          (let ((temp589_0
                                                                 (list
                                                                  define-values572_0
                                                                  ids_0
                                                                  exp-rhs_0)))
                                                            (rebuild.1
                                                             #t
                                                             rebuild-s_0
                                                             temp589_0))
                                                          comp-form_0))))))))
                                            (args
                                             (raise-binding-result-arity-error
                                              4
                                              args))))))))
                                  (let ((tmp_0
                                         (core-form-sym body_0 phase78_0)))
                                    (if (if (eq? tmp_0 '|#%require|)
                                          #t
                                          (if (eq? tmp_0 '|#%provide|)
                                            #t
                                            (eq? tmp_0 'module*)))
                                      body_0
                                      (begin
                                        (if log-performance?
                                          (start-performance-region
                                           'expand
                                           'form-in-module/2)
                                          (void))
                                        (begin0
                                          (let ((exp-body_0
                                                 (let ((temp591_0
                                                        (as-expression-context
                                                         ctx79_0)))
                                                   (expand.1
                                                    #f
                                                    #f
                                                    body_0
                                                    temp591_0))))
                                            (if (begin-unsafe
                                                 (expand-context/inner-to-parsed?
                                                  (root-expand-context/outer-inner
                                                   ctx79_0)))
                                              exp-body_0
                                              (expanded+parsed1.1
                                               exp-body_0
                                               (let ((temp593_0
                                                      (as-to-parsed-context
                                                       ctx79_0)))
                                                 (expand.1
                                                  #f
                                                  #f
                                                  exp-body_0
                                                  temp593_0)))))
                                          (if log-performance?
                                            (end-performance-region)
                                            (void))))))))))
                         (let ((lifted-defns_0
                                (let ((lifts_0
                                       (begin-unsafe
                                        (expand-context/inner-lifts
                                         (root-expand-context/outer-inner
                                          ctx79_0)))))
                                  (begin-unsafe
                                   (box-clear!
                                    (lift-context-lifts lifts_0))))))
                           (let ((lifted-requires_0
                                  (let ((require-lifts_0
                                         (begin-unsafe
                                          (expand-context/inner-require-lifts
                                           (root-expand-context/outer-inner
                                            ctx79_0)))))
                                    (begin-unsafe
                                     (box-clear!
                                      (require-lift-context-requires
                                       require-lifts_0))))))
                             (let ((lifted-modules_0
                                    (let ((module-lifts_0
                                           (begin-unsafe
                                            (expand-context/inner-module-lifts
                                             (root-expand-context/outer-inner
                                              ctx79_0)))))
                                      (begin-unsafe
                                       (box-clear!
                                        (module-lift-context-lifts
                                         module-lifts_0))))))
                               (let ((no-lifts?_0
                                      (if (null? lifted-defns_0)
                                        (if (null? lifted-modules_0)
                                          (null? lifted-requires_0)
                                          #f)
                                        #f)))
                                 (begin
                                   (if no-lifts?_0
                                     (void)
                                     (let ((obs_0
                                            (begin-unsafe
                                             (expand-context/inner-observer
                                              (root-expand-context/outer-inner
                                               ctx79_0)))))
                                       (if obs_0
                                         (let ((app_0
                                                (add-post-expansion-scope
                                                 lifted-modules_0
                                                 ctx79_0)))
                                           (call-expand-observe
                                            obs_0
                                            'module-pass2-lifts
                                            lifted-requires_0
                                            app_0
                                            (lifted-defns-extract-syntax
                                             lifted-defns_0)))
                                         (void))))
                                   (let ((exp-lifted-modules_0
                                          (expand-non-module*-submodules.1
                                           compiled-submodules82_0
                                           declared-submodule-names81_0
                                           modules-being-compiled83_0
                                           mpis-to-reset84_0
                                           lifted-modules_0
                                           phase78_0
                                           self80_0
                                           ctx79_0)))
                                     (begin
                                       (if no-lifts?_0
                                         (void)
                                         (let ((obs_0
                                                (begin-unsafe
                                                 (expand-context/inner-observer
                                                  (root-expand-context/outer-inner
                                                   ctx79_0)))))
                                           (if obs_0
                                             (call-expand-observe
                                              obs_0
                                              'next-group)
                                             (void))))
                                       (let ((exp-lifted-defns_0
                                              (loop_0 #f lifted-defns_0)))
                                         (begin
                                           (if no-lifts?_0
                                             (void)
                                             (let ((obs_0
                                                    (begin-unsafe
                                                     (expand-context/inner-observer
                                                      (root-expand-context/outer-inner
                                                       ctx79_0)))))
                                               (if obs_0
                                                 (call-expand-observe
                                                  obs_0
                                                  'next-group)
                                                 (void))))
                                           (append
                                            lifted-requires_0
                                            exp-lifted-modules_0
                                            exp-lifted-defns_0
                                            (cons
                                             exp-body_0
                                             (loop_0
                                              tail?_0
                                              rest-bodys_0))))))))))))))))))))))
        (loop_0 #t partially-expanded-bodys92_0))))))
(define check-defined-by-now
  (lambda (need-eventually-defined_0 self_0 ctx_0 requires+provides_0)
    (begin
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (i_0)
              (begin
                (if i_0
                  (call-with-values
                   (lambda ()
                     (hash-iterate-key+value need-eventually-defined_0 i_0))
                   (case-lambda
                    ((phase_0 l_0)
                     (begin
                       (begin
                         (let ((lst_0 (reverse$1 l_0)))
                           (begin
                             (letrec*
                              ((for-loop_1
                                (|#%name|
                                 for-loop
                                 (lambda (lst_1)
                                   (begin
                                     (if (pair? lst_1)
                                       (let ((id_0 (unsafe-car lst_1)))
                                         (let ((rest_0 (unsafe-cdr lst_1)))
                                           (begin
                                             (let ((b_0
                                                    (resolve+shift.1
                                                     #f
                                                     #f
                                                     null
                                                     unsafe-undefined
                                                     #f
                                                     id_0
                                                     phase_0)))
                                               (let ((bound-here?_0
                                                      (if b_0
                                                        (if (module-binding?
                                                             b_0)
                                                          (if (let ((app_0
                                                                     (module-binding-sym
                                                                      b_0)))
                                                                (eq?
                                                                 app_0
                                                                 (syntax-e$1
                                                                  id_0)))
                                                            (eq?
                                                             (module-binding-module
                                                              b_0)
                                                             self_0)
                                                            #f)
                                                          #f)
                                                        #f)))
                                                 (let ((bound-kind_0
                                                        (if bound-here?_0
                                                          (defined-sym-kind
                                                           requires+provides_0
                                                           (module-binding-sym
                                                            b_0)
                                                           phase_0)
                                                          #f)))
                                                   (if (eq?
                                                        bound-kind_0
                                                        'variable)
                                                     (void)
                                                     (let ((app_0
                                                            (string-append
                                                             (if (not b_0)
                                                               "reference to an unbound identifier"
                                                               (if (eq?
                                                                    bound-kind_0
                                                                    'transformer)
                                                                 "identifier treated as a variable, but later defined as syntax"
                                                                 "identifier treated as a variable, but later bound differently"))
                                                             (format
                                                              "\n  at phase: ~a"
                                                              (if (eq?
                                                                   phase_0
                                                                   1)
                                                                "1; the transformer environment"
                                                                phase_0)))))
                                                       (raise-syntax-error$1
                                                        #f
                                                        app_0
                                                        id_0
                                                        #f
                                                        null
                                                        (syntax-debug-info-string
                                                         id_0
                                                         ctx_0)))))))
                                             (for-loop_1 rest_0))))
                                       (values)))))))
                              (for-loop_1 lst_0))))
                         (void))
                       (for-loop_0
                        (hash-iterate-next need-eventually-defined_0 i_0))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (values)))))))
         (for-loop_0 (hash-iterate-first need-eventually-defined_0))))
      (void))))
(define resolve-provides.1
  (|#%name|
   resolve-provides
   (lambda (ctx99_0
            declared-submodule-names95_0
            namespace96_0
            phase97_0
            requires-and-provides94_0
            self98_0
            expression-expanded-bodys106_0)
     (begin
       (begin
         (if log-performance?
           (start-performance-region 'expand 'provide)
           (void))
         (begin0
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (bodys_0 phase_0)
                 (begin
                   (if (null? bodys_0)
                     null
                     (if (let ((or-part_0 (parsed? (car bodys_0))))
                           (if or-part_0
                             or-part_0
                             (expanded+parsed? (car bodys_0))))
                       (begin
                         (let ((obs_0
                                (begin-unsafe
                                 (expand-context/inner-observer
                                  (root-expand-context/outer-inner ctx99_0)))))
                           (if obs_0 (call-expand-observe obs_0 'next) (void)))
                         (let ((app_0 (car bodys_0)))
                           (cons app_0 (loop_0 (cdr bodys_0) phase_0))))
                       (if (semi-parsed-begin-for-syntax? (car bodys_0))
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     ctx99_0)))))
                             (if obs_0
                               (call-expand-observe
                                obs_0
                                'enter-begin-for-syntax)
                               (void)))
                           (let ((nested-bodys_0
                                  (let ((app_0
                                         (semi-parsed-begin-for-syntax-body
                                          (car bodys_0))))
                                    (loop_0 app_0 (add1 phase_0)))))
                             (begin
                               (let ((obs_0
                                      (begin-unsafe
                                       (expand-context/inner-observer
                                        (root-expand-context/outer-inner
                                         ctx99_0)))))
                                 (if obs_0
                                   (call-expand-observe
                                    obs_0
                                    'exit-begin-for-syntax)
                                   (void)))
                               (let ((app_0
                                      (let ((the-struct_0 (car bodys_0)))
                                        (if (semi-parsed-begin-for-syntax?
                                             the-struct_0)
                                          (semi-parsed-begin-for-syntax3.1
                                           (semi-parsed-begin-for-syntax-s
                                            the-struct_0)
                                           nested-bodys_0)
                                          (raise-argument-error
                                           'struct-copy
                                           "semi-parsed-begin-for-syntax?"
                                           the-struct_0)))))
                                 (cons
                                  app_0
                                  (loop_0 (cdr bodys_0) phase_0))))))
                         (let ((body_0 (car bodys_0)))
                           (let ((tmp_0 (core-form-sym body_0 phase_0)))
                             (if (eq? tmp_0 '|#%provide|)
                               (begin
                                 (let ((obs_0
                                        (begin-unsafe
                                         (expand-context/inner-observer
                                          (root-expand-context/outer-inner
                                           ctx99_0)))))
                                   (if obs_0
                                     (begin
                                       (call-expand-observe
                                        obs_0
                                        'enter-prim
                                        body_0)
                                       (call-expand-observe
                                        obs_0
                                        'prim-provide
                                        body_0))
                                     (void)))
                                 (call-with-values
                                  (lambda ()
                                    (call-with-values
                                     (lambda ()
                                       (let ((s_0
                                              (if (syntax?$1 body_0)
                                                (syntax-e$1 body_0)
                                                body_0)))
                                         (if (pair? s_0)
                                           (let ((|#%provide607_0|
                                                  (let ((s_1 (car s_0))) s_1)))
                                             (let ((spec608_0
                                                    (let ((s_1 (cdr s_0)))
                                                      (let ((s_2
                                                             (if (syntax?$1
                                                                  s_1)
                                                               (syntax-e$1 s_1)
                                                               s_1)))
                                                        (let ((flat-s_0
                                                               (to-syntax-list.1
                                                                s_2)))
                                                          (if (not flat-s_0)
                                                            (raise-syntax-error$1
                                                             #f
                                                             "bad syntax"
                                                             body_0)
                                                            flat-s_0))))))
                                               (let ((|#%provide607_1|
                                                      |#%provide607_0|))
                                                 (values
                                                  |#%provide607_1|
                                                  spec608_0))))
                                           (raise-syntax-error$1
                                            #f
                                            "bad syntax"
                                            body_0))))
                                     (case-lambda
                                      ((|#%provide605_0| spec606_0)
                                       (values #t |#%provide605_0| spec606_0))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))
                                  (case-lambda
                                   ((ok?_0 |#%provide605_0| spec606_0)
                                    (call-with-values
                                     (lambda ()
                                       (parse-and-expand-provides!
                                        spec606_0
                                        body_0
                                        requires-and-provides94_0
                                        self98_0
                                        phase_0
                                        (if (expand-context/outer? ctx99_0)
                                          (let ((inner610_0
                                                 (let ((the-struct_0
                                                        (root-expand-context/outer-inner
                                                         ctx99_0)))
                                                   (if (expand-context/inner?
                                                        the-struct_0)
                                                     (let ((namespace612_0
                                                            (namespace->namespace-at-phase
                                                             namespace96_0
                                                             phase_0)))
                                                       (expand-context/inner2.1
                                                        (root-expand-context/inner-self-mpi
                                                         the-struct_0)
                                                        (root-expand-context/inner-module-scopes
                                                         the-struct_0)
                                                        (root-expand-context/inner-top-level-bind-scope
                                                         the-struct_0)
                                                        (root-expand-context/inner-all-scopes-stx
                                                         the-struct_0)
                                                        (root-expand-context/inner-defined-syms
                                                         the-struct_0)
                                                        (root-expand-context/inner-counter
                                                         the-struct_0)
                                                        (root-expand-context/inner-lift-key
                                                         the-struct_0)
                                                        (expand-context/inner-to-parsed?
                                                         the-struct_0)
                                                        phase_0
                                                        namespace612_0
                                                        (expand-context/inner-just-once?
                                                         the-struct_0)
                                                        (expand-context/inner-module-begin-k
                                                         the-struct_0)
                                                        (expand-context/inner-allow-unbound?
                                                         the-struct_0)
                                                        (expand-context/inner-in-local-expand?
                                                         the-struct_0)
                                                        (|expand-context/inner-keep-#%expression?|
                                                         the-struct_0)
                                                        (expand-context/inner-stops
                                                         the-struct_0)
                                                        declared-submodule-names95_0
                                                        (expand-context/inner-lifts
                                                         the-struct_0)
                                                        (expand-context/inner-lift-envs
                                                         the-struct_0)
                                                        (expand-context/inner-module-lifts
                                                         the-struct_0)
                                                        (expand-context/inner-require-lifts
                                                         the-struct_0)
                                                        (expand-context/inner-to-module-lifts
                                                         the-struct_0)
                                                        requires-and-provides94_0
                                                        (expand-context/inner-observer
                                                         the-struct_0)
                                                        (expand-context/inner-for-serializable?
                                                         the-struct_0)
                                                        (expand-context/inner-to-correlated-linklet?
                                                         the-struct_0)
                                                        (expand-context/inner-normalize-locals?
                                                         the-struct_0)
                                                        (expand-context/inner-parsing-expanded?
                                                         the-struct_0)
                                                        (expand-context/inner-skip-visit-available?
                                                         the-struct_0)))
                                                     (raise-argument-error
                                                      'struct-copy
                                                      "expand-context/inner?"
                                                      the-struct_0)))))
                                            (expand-context/outer1.1
                                             inner610_0
                                             (root-expand-context/outer-post-expansion
                                              ctx99_0)
                                             (root-expand-context/outer-use-site-scopes
                                              ctx99_0)
                                             (root-expand-context/outer-frame-id
                                              ctx99_0)
                                             'top-level
                                             (expand-context/outer-env ctx99_0)
                                             (expand-context/outer-scopes
                                              ctx99_0)
                                             (expand-context/outer-def-ctx-scopes
                                              ctx99_0)
                                             (expand-context/outer-binding-layer
                                              ctx99_0)
                                             (expand-context/outer-reference-records
                                              ctx99_0)
                                             (expand-context/outer-only-immediate?
                                              ctx99_0)
                                             (expand-context/outer-need-eventually-defined
                                              ctx99_0)
                                             (expand-context/outer-current-introduction-scopes
                                              ctx99_0)
                                             (expand-context/outer-current-use-scopes
                                              ctx99_0)
                                             (expand-context/outer-name
                                              ctx99_0)))
                                          (raise-argument-error
                                           'struct-copy
                                           "expand-context/outer?"
                                           ctx99_0))))
                                     (case-lambda
                                      ((track-stxes_0 specs_0)
                                       (if (begin-unsafe
                                            (expand-context/inner-to-parsed?
                                             (root-expand-context/outer-inner
                                              ctx99_0)))
                                         (loop_0 (cdr bodys_0) phase_0)
                                         (let ((new-s_0
                                                (syntax-track-origin*
                                                 track-stxes_0
                                                 (let ((temp616_0
                                                        (list*
                                                         |#%provide605_0|
                                                         specs_0)))
                                                   (rebuild.1
                                                    #t
                                                    body_0
                                                    temp616_0)))))
                                           (begin
                                             (let ((obs_0
                                                    (begin-unsafe
                                                     (expand-context/inner-observer
                                                      (root-expand-context/outer-inner
                                                       ctx99_0)))))
                                               (if obs_0
                                                 (call-expand-observe
                                                  obs_0
                                                  'exit-prim
                                                  new-s_0)
                                                 (void)))
                                             (cons
                                              new-s_0
                                              (loop_0
                                               (cdr bodys_0)
                                               phase_0))))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args)))))
                               (begin
                                 (let ((obs_0
                                        (begin-unsafe
                                         (expand-context/inner-observer
                                          (root-expand-context/outer-inner
                                           ctx99_0)))))
                                   (if obs_0
                                     (call-expand-observe obs_0 'next)
                                     (void)))
                                 (cons
                                  body_0
                                  (loop_0 (cdr bodys_0) phase_0))))))))))))))
            (loop_0 expression-expanded-bodys106_0 phase97_0))
           (if log-performance? (end-performance-region) (void))))))))
(define declare-module-for-expansion.1
  (|#%name|
   declare-module-for-expansion
   (lambda (ctx115_0
            enclosing113_0
            fill119_0
            module-name-id108_0
            modules-being-compiled116_0
            namespace111_0
            portal-syntaxes118_0
            realm117_0
            rebuild-s109_0
            requires-and-provides110_0
            root-ctx114_0
            self112_0
            fully-expanded-bodys-except-post-submodules132_0)
     (begin
       (call-with-values
        (lambda ()
          (extract-requires-and-provides
           requires-and-provides110_0
           self112_0
           self112_0))
        (case-lambda
         ((requires_0 recur-requires_0 provides_0)
          (let ((parsed-mod_0
                 (let ((app_0
                        (requires+provides-all-bindings-simple?
                         requires-and-provides110_0)))
                   (let ((app_1
                          (root-expand-context-encode-for-module
                           root-ctx114_0
                           self112_0
                           self112_0)))
                     (let ((app_2
                            (parsed-only
                             fully-expanded-bodys-except-post-submodules132_0)))
                       (parsed-module25.1
                        rebuild-s109_0
                        #f
                        module-name-id108_0
                        self112_0
                        requires_0
                        recur-requires_0
                        provides_0
                        app_0
                        app_1
                        app_2
                        realm117_0
                        portal-syntaxes118_0
                        #f
                        (hasheq)))))))
            (let ((module-name_0
                   (1/module-path-index-resolve
                    (if enclosing113_0 enclosing113_0 self112_0))))
              (let ((compiled-module_0
                     (let ((temp618_0
                            (let ((temp625_0
                                   (if enclosing113_0
                                     (1/resolved-module-path-name
                                      module-name_0)
                                     #f)))
                              (make-compile-context.1
                               temp625_0
                               unsafe-undefined
                               enclosing113_0
                               namespace111_0
                               unsafe-undefined
                               unsafe-undefined))))
                       (let ((temp619_0
                              (begin-unsafe
                               (expand-context/inner-for-serializable?
                                (root-expand-context/outer-inner ctx115_0)))))
                         (let ((temp620_0
                                (begin-unsafe
                                 (expand-context/inner-to-correlated-linklet?
                                  (root-expand-context/outer-inner
                                   ctx115_0)))))
                           (let ((temp619_1 temp619_0) (temp618_1 temp618_0))
                             (compile-module.1
                              #f
                              modules-being-compiled116_0
                              #f
                              temp619_1
                              temp620_0
                              parsed-mod_0
                              temp618_1)))))))
                (begin
                  (set-box! fill119_0 compiled-module_0)
                  (let ((root-module-name_0
                         (resolved-module-path-root-name module-name_0)))
                    (with-continuation-mark*
                     authentic
                     parameterization-key
                     (let ((app_0
                            (continuation-mark-set-first
                             #f
                             parameterization-key)))
                       (extend-parameterization
                        app_0
                        1/current-namespace
                        namespace111_0
                        1/current-module-declare-name
                        (1/make-resolved-module-path root-module-name_0)))
                     (eval-module.1
                      unsafe-undefined
                      #f
                      #f
                      compiled-module_0))))))))
         (args (raise-binding-result-arity-error 3 args))))))))
(define attach-root-expand-context-properties
  (lambda (s_0 root-ctx_0 orig-self_0 new-self_0)
    (let ((s_1
           (syntax-property$1
            s_0
            'module-body-context
            (begin-unsafe
             (root-expand-context/inner-all-scopes-stx
              (root-expand-context/outer-inner root-ctx_0))))))
      (let ((s_2
             (syntax-property$1
              s_1
              'module-body-inside-context
              (apply-post-expansion
               (begin-unsafe
                (root-expand-context/outer-post-expansion root-ctx_0))
               empty-syntax))))
        s_2))))
(define expand-post-submodules.1
  (|#%name|
   expand-post-submodules
   (lambda (all-scopes-s139_0
            compiled-submodules142_0
            ctx144_0
            declare-enclosing134_0
            declared-submodule-names141_0
            enclosing-is-cross-phase-persistent?138_0
            modules-being-compiled143_0
            mpis-to-reset140_0
            phase135_0
            requires-and-provides137_0
            self136_0
            fully-expanded-bodys-except-post-submodules156_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (bodys_0 phase_0)
             (begin
               (if (null? bodys_0)
                 null
                 (let ((body_0 (car bodys_0)))
                   (let ((rest-bodys_0 (cdr bodys_0)))
                     (if (semi-parsed-begin-for-syntax? body_0)
                       (let ((body-s_0
                              (semi-parsed-begin-for-syntax-s body_0)))
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     ctx144_0)))))
                             (if obs_0
                               (call-expand-observe
                                obs_0
                                'enter-begin-for-syntax)
                               (void)))
                           (call-with-values
                            (lambda ()
                              (call-with-values
                               (lambda ()
                                 (let ((s_0
                                        (if (syntax?$1 body-s_0)
                                          (syntax-e$1 body-s_0)
                                          body-s_0)))
                                   (if (pair? s_0)
                                     (let ((begin-for-syntax630_0
                                            (let ((s_1 (car s_0))) s_1)))
                                       (let ((_0
                                              (let ((s_1 (cdr s_0)))
                                                (let ((s_2
                                                       (if (syntax?$1 s_1)
                                                         (syntax-e$1 s_1)
                                                         s_1)))
                                                  (let ((flat-s_0
                                                         (to-syntax-list.1
                                                          s_2)))
                                                    (if (not flat-s_0)
                                                      (raise-syntax-error$1
                                                       #f
                                                       "bad syntax"
                                                       body-s_0)
                                                      flat-s_0))))))
                                         (let ((begin-for-syntax630_1
                                                begin-for-syntax630_0))
                                           (values begin-for-syntax630_1 _0))))
                                     (raise-syntax-error$1
                                      #f
                                      "bad syntax"
                                      body-s_0))))
                               (case-lambda
                                ((begin-for-syntax628_0 _0)
                                 (values #t begin-for-syntax628_0 _0))
                                (args
                                 (raise-binding-result-arity-error 2 args)))))
                            (case-lambda
                             ((ok?_0 begin-for-syntax628_0 _0)
                              (let ((rebuild-body-s_0
                                     (keep-as-needed.1
                                      #f
                                      #f
                                      #f
                                      ctx144_0
                                      body-s_0)))
                                (let ((nested-bodys_0
                                       (loop_0
                                        (semi-parsed-begin-for-syntax-body
                                         body_0)
                                        (add1 phase_0))))
                                  (let ((parsed-bfs_0
                                         (parsed-begin-for-syntax21.1
                                          rebuild-body-s_0
                                          (parsed-only nested-bodys_0))))
                                    (begin
                                      (let ((obs_0
                                             (begin-unsafe
                                              (expand-context/inner-observer
                                               (root-expand-context/outer-inner
                                                ctx144_0)))))
                                        (if obs_0
                                          (call-expand-observe
                                           obs_0
                                           'exit-begin-for-syntax)
                                          (void)))
                                      (let ((app_0
                                             (if (begin-unsafe
                                                  (expand-context/inner-to-parsed?
                                                   (root-expand-context/outer-inner
                                                    ctx144_0)))
                                               parsed-bfs_0
                                               (expanded+parsed1.1
                                                (let ((temp635_0
                                                       (list*
                                                        begin-for-syntax628_0
                                                        (syntax-only
                                                         nested-bodys_0))))
                                                  (rebuild.1
                                                   #t
                                                   rebuild-body-s_0
                                                   temp635_0))
                                                parsed-bfs_0))))
                                        (cons
                                         app_0
                                         (loop_0 rest-bodys_0 phase_0))))))))
                             (args
                              (raise-binding-result-arity-error 3 args))))))
                       (if (let ((or-part_0 (parsed? body_0)))
                             (if or-part_0
                               or-part_0
                               (expanded+parsed? body_0)))
                         (begin
                           (let ((obs_0
                                  (begin-unsafe
                                   (expand-context/inner-observer
                                    (root-expand-context/outer-inner
                                     ctx144_0)))))
                             (if obs_0
                               (call-expand-observe obs_0 'next)
                               (void)))
                           (cons body_0 (loop_0 rest-bodys_0 phase_0)))
                         (let ((tmp_0 (core-form-sym body_0 phase_0)))
                           (if (eq? tmp_0 'module*)
                             (begin
                               (force declare-enclosing134_0)
                               (let ((ready-body_0
                                      (remove-use-site-scopes
                                       body_0
                                       ctx144_0)))
                                 (call-with-values
                                  (lambda ()
                                    (if (let ((s_0
                                               (if (syntax?$1 body_0)
                                                 (syntax-e$1 body_0)
                                                 body_0)))
                                          (if (pair? s_0)
                                            (if (let ((s_1 (car s_0))) #t)
                                              (let ((s_1 (cdr s_0)))
                                                (let ((s_2
                                                       (if (syntax?$1 s_1)
                                                         (syntax-e$1 s_1)
                                                         s_1)))
                                                  (if (pair? s_2)
                                                    (if (let ((s_3 (car s_2)))
                                                          #t)
                                                      (let ((s_3 (cdr s_2)))
                                                        (let ((s_4
                                                               (if (syntax?$1
                                                                    s_3)
                                                                 (syntax-e$1
                                                                  s_3)
                                                                 s_3)))
                                                          (if (pair? s_4)
                                                            (if (let ((s_5
                                                                       (car
                                                                        s_4)))
                                                                  (let ((s_6
                                                                         (if (syntax?$1
                                                                              s_5)
                                                                           (syntax-e$1
                                                                            s_5)
                                                                           s_5)))
                                                                    (eq?
                                                                     #f
                                                                     s_6)))
                                                              (let ((s_5
                                                                     (cdr
                                                                      s_4)))
                                                                #t)
                                                              #f)
                                                            #f)))
                                                      #f)
                                                    #f)))
                                              #f)
                                            #f))
                                      (call-with-values
                                       (lambda ()
                                         (let ((s_0
                                                (if (syntax?$1 body_0)
                                                  (syntax-e$1 body_0)
                                                  body_0)))
                                           (let ((module*639_0
                                                  (let ((s_1 (car s_0))) s_1)))
                                             (call-with-values
                                              (lambda ()
                                                (let ((s_1 (cdr s_0)))
                                                  (let ((s_2
                                                         (if (syntax?$1 s_1)
                                                           (syntax-e$1 s_1)
                                                           s_1)))
                                                    (let ((name642_0
                                                           (let ((s_3
                                                                  (car s_2)))
                                                             s_3)))
                                                      (let ((_0
                                                             (let ((s_3
                                                                    (cdr s_2)))
                                                               (let ((s_4
                                                                      (if (syntax?$1
                                                                           s_3)
                                                                        (syntax-e$1
                                                                         s_3)
                                                                        s_3)))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((s_5
                                                                           (car
                                                                            s_4)))
                                                                      (let ((s_6
                                                                             (if (syntax?$1
                                                                                  s_5)
                                                                               (syntax-e$1
                                                                                s_5)
                                                                               s_5)))
                                                                        (values))))
                                                                  (case-lambda
                                                                   (()
                                                                    (let ((_0
                                                                           (let ((s_5
                                                                                  (cdr
                                                                                   s_4)))
                                                                             s_5)))
                                                                      (let ()
                                                                        (values
                                                                         _0))))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     0
                                                                     args))))))))
                                                        (let ((name642_1
                                                               name642_0))
                                                          (values
                                                           name642_1
                                                           _0)))))))
                                              (case-lambda
                                               ((name640_0 _0)
                                                (let ((module*639_1
                                                       module*639_0))
                                                  (values
                                                   module*639_1
                                                   name640_0
                                                   _0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))))
                                       (case-lambda
                                        ((module*636_0 name637_0 _0)
                                         (values #t module*636_0 name637_0 _0))
                                        (args
                                         (raise-binding-result-arity-error
                                          3
                                          args))))
                                      (values #f #f #f #f)))
                                  (case-lambda
                                   ((ok?_0 module*636_0 name637_0 _0)
                                    (let ((submod_0
                                           (if ok?_0
                                             (let ((neg-phase_0
                                                    (phase- 0 phase_0)))
                                               (let ((shifted-s_0
                                                      (syntax-shift-phase-level$1
                                                       ready-body_0
                                                       neg-phase_0)))
                                                 (let ((submod_0
                                                        (expand-submodule.1
                                                         compiled-submodules142_0
                                                         declared-submodule-names141_0
                                                         enclosing-is-cross-phase-persistent?138_0
                                                         requires-and-provides137_0
                                                         #t
                                                         neg-phase_0
                                                         modules-being-compiled143_0
                                                         mpis-to-reset140_0
                                                         shifted-s_0
                                                         self136_0
                                                         ctx144_0)))
                                                   (if (parsed? submod_0)
                                                     submod_0
                                                     (if (expanded+parsed?
                                                          submod_0)
                                                       (if (expanded+parsed?
                                                            submod_0)
                                                         (let ((s656_0
                                                                (syntax-shift-phase-level$1
                                                                 (expanded+parsed-s
                                                                  submod_0)
                                                                 phase_0)))
                                                           (expanded+parsed1.1
                                                            s656_0
                                                            (expanded+parsed-parsed
                                                             submod_0)))
                                                         (raise-argument-error
                                                          'struct-copy
                                                          "expanded+parsed?"
                                                          submod_0))
                                                       (syntax-shift-phase-level$1
                                                        submod_0
                                                        phase_0))))))
                                             (expand-submodule.1
                                              compiled-submodules142_0
                                              declared-submodule-names141_0
                                              #f
                                              #f
                                              #t
                                              #f
                                              modules-being-compiled143_0
                                              mpis-to-reset140_0
                                              ready-body_0
                                              self136_0
                                              ctx144_0))))
                                      (cons
                                       submod_0
                                       (loop_0 rest-bodys_0 phase_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     4
                                     args))))))
                             (begin
                               (let ((obs_0
                                      (begin-unsafe
                                       (expand-context/inner-observer
                                        (root-expand-context/outer-inner
                                         ctx144_0)))))
                                 (if obs_0
                                   (call-expand-observe obs_0 'next)
                                   (void)))
                               (cons
                                body_0
                                (loop_0 rest-bodys_0 phase_0)))))))))))))))
        (loop_0
         fully-expanded-bodys-except-post-submodules156_0
         phase135_0))))))
(define stop-at-module*?
  (lambda (ctx_0)
    (free-id-set-member?
     (begin-unsafe
      (expand-context/inner-stops (root-expand-context/outer-inner ctx_0)))
     (begin-unsafe
      (expand-context/inner-phase (root-expand-context/outer-inner ctx_0)))
     (let ((app_0 (datum->syntax$1 core-stx 'module*)))
       (syntax-shift-phase-level$1
        app_0
        (begin-unsafe
         (expand-context/inner-phase
          (root-expand-context/outer-inner ctx_0))))))))
(define check-ids-unbound.1
  (|#%name|
   check-ids-unbound
   (lambda (in158_0 ids160_0 phase161_0 requires+provides162_0)
     (begin
       (begin
         (begin
           (letrec*
            ((for-loop_0
              (|#%name|
               for-loop
               (lambda (lst_0)
                 (begin
                   (if (pair? lst_0)
                     (let ((id_0 (unsafe-car lst_0)))
                       (let ((rest_0 (unsafe-cdr lst_0)))
                         (begin
                           (check-not-defined.1
                            #f
                            #f
                            #f
                            in158_0
                            #f
                            #f
                            'module
                            requires+provides162_0
                            id_0
                            phase161_0
                            #f)
                           (for-loop_0 rest_0))))
                     (values)))))))
            (for-loop_0 ids160_0)))
         (void))))))
(define eval-nested-bodys
  (lambda (bodys_0 phase_0 m-ns_0 self_0 ctx_0)
    (begin
      (begin
        (letrec*
         ((for-loop_0
           (|#%name|
            for-loop
            (lambda (lst_0)
              (begin
                (if (pair? lst_0)
                  (let ((body_0 (unsafe-car lst_0)))
                    (let ((rest_0 (unsafe-cdr lst_0)))
                      (begin
                        (let ((p_0
                               (if (expanded+parsed? body_0)
                                 (expanded+parsed-parsed body_0)
                                 body_0)))
                          (if (parsed-define-values? p_0)
                            (let ((syms_0 (parsed-define-values-syms p_0)))
                              (let ((ids_0 (parsed-define-values-ids p_0)))
                                (begin
                                  (let ((temp673_0
                                         (parsed-define-values-rhs p_0)))
                                    (let ((temp677_0
                                           (lambda (go_0)
                                             (call-with-module-prompt/value-list
                                              'define
                                              go_0
                                              ids_0
                                              (lambda (vals_0)
                                                (begin
                                                  (begin
                                                    (letrec*
                                                     ((for-loop_1
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (lst_1 lst_2)
                                                          (begin
                                                            (if (if (pair?
                                                                     lst_1)
                                                                  (pair? lst_2)
                                                                  #f)
                                                              (let ((sym_0
                                                                     (unsafe-car
                                                                      lst_1)))
                                                                (let ((rest_1
                                                                       (unsafe-cdr
                                                                        lst_1)))
                                                                  (let ((val_0
                                                                         (unsafe-car
                                                                          lst_2)))
                                                                    (let ((rest_2
                                                                           (unsafe-cdr
                                                                            lst_2)))
                                                                      (begin
                                                                        (namespace-set-variable!
                                                                         m-ns_0
                                                                         phase_0
                                                                         sym_0
                                                                         val_0)
                                                                        (for-loop_1
                                                                         rest_1
                                                                         rest_2))))))
                                                              (values)))))))
                                                     (for-loop_1
                                                      syms_0
                                                      vals_0)))
                                                  (void)))))))
                                      (eval-for-bindings.1
                                       temp677_0
                                       'define-values
                                       ids_0
                                       temp673_0
                                       phase_0
                                       m-ns_0
                                       ctx_0)))
                                  (begin
                                    (letrec*
                                     ((for-loop_1
                                       (|#%name|
                                        for-loop
                                        (lambda (lst_1)
                                          (begin
                                            (if (pair? lst_1)
                                              (let ((sym_0 (unsafe-car lst_1)))
                                                (let ((rest_1
                                                       (unsafe-cdr lst_1)))
                                                  (begin
                                                    (namespace-get-variable
                                                     m-ns_0
                                                     phase_0
                                                     sym_0
                                                     (lambda ()
                                                       (raise
                                                        (let ((app_0
                                                               (string-append
                                                                "define-values: skipped variable definition during expansion\n"
                                                                "  variable: "
                                                                (symbol->string
                                                                 sym_0))))
                                                          (|#%app|
                                                           exn:fail:contract:variable
                                                           app_0
                                                           (current-continuation-marks)
                                                           sym_0)))))
                                                    (for-loop_1 rest_1))))
                                              (values)))))))
                                     (for-loop_1 syms_0)))
                                  (void))))
                            (if (let ((or-part_0
                                       (parsed-define-syntaxes? p_0)))
                                  (if or-part_0
                                    or-part_0
                                    (semi-parsed-begin-for-syntax? p_0)))
                              (void)
                              (if (let ((or-part_0 (|parsed-#%declare?| p_0)))
                                    (if or-part_0 or-part_0 (syntax?$1 p_0)))
                                (void)
                                (with-continuation-mark*
                                 push-authentic
                                 parameterization-key
                                 (extend-parameterization
                                  (continuation-mark-set-first
                                   #f
                                   parameterization-key)
                                  1/current-namespace
                                  m-ns_0)
                                 (with-continuation-mark*
                                  authentic
                                  current-expand-context
                                  ctx_0
                                  (let ((c_0
                                         (compile-single
                                          p_0
                                          (make-compile-context.1
                                           #f
                                           unsafe-undefined
                                           #f
                                           m-ns_0
                                           phase_0
                                           unsafe-undefined))))
                                    (1/call-with-module-prompt
                                     (lambda ()
                                       (eval-single-top c_0 m-ns_0))))))))))
                        (for-loop_0 rest_0))))
                  (values)))))))
         (for-loop_0 bodys_0)))
      (void))))
(define expand-submodule.1
  (|#%name|
   expand-submodule
   (lambda (compiled-submodules170_0
            declared-submodule-names169_0
            enclosing-is-cross-phase-persistent?167_0
            enclosing-requires+provides166_0
            is-star?164_0
            keep-enclosing-scope-at-phase165_0
            modules-being-compiled171_0
            mpis-to-reset168_0
            s180_0
            self181_0
            ctx182_0)
     (begin
       (begin
         (let ((obs_0
                (begin-unsafe
                 (expand-context/inner-observer
                  (root-expand-context/outer-inner ctx182_0)))))
           (if obs_0
             (begin
               (call-expand-observe obs_0 'enter-prim s180_0)
               (call-expand-observe
                obs_0
                (if is-star?164_0 'prim-submodule* 'prim-submodule)
                #f))
             (void)))
         (call-with-values
          (lambda ()
            (call-with-values
             (lambda ()
               (let ((s_0 (if (syntax?$1 s180_0) (syntax-e$1 s180_0) s180_0)))
                 (if (pair? s_0)
                   (let ((module683_0 (let ((s_1 (car s_0))) s_1)))
                     (call-with-values
                      (lambda ()
                        (let ((s_1 (cdr s_0)))
                          (let ((s_2
                                 (if (syntax?$1 s_1) (syntax-e$1 s_1) s_1)))
                            (if (pair? s_2)
                              (let ((name686_0 (let ((s_3 (car s_2))) s_3)))
                                (let ((_0 (let ((s_3 (cdr s_2))) s_3)))
                                  (let ((name686_1 name686_0))
                                    (values name686_1 _0))))
                              (raise-syntax-error$1 #f "bad syntax" s180_0)))))
                      (case-lambda
                       ((name684_0 _0)
                        (let ((module683_1 module683_0))
                          (values module683_1 name684_0 _0)))
                       (args (raise-binding-result-arity-error 2 args)))))
                   (raise-syntax-error$1 #f "bad syntax" s180_0))))
             (case-lambda
              ((module680_0 name681_0 _0) (values #t module680_0 name681_0 _0))
              (args (raise-binding-result-arity-error 3 args)))))
          (case-lambda
           ((ok?_0 module680_0 name681_0 _0)
            (let ((name_0 (syntax-e$1 name681_0)))
              (begin
                (if (hash-ref declared-submodule-names169_0 name_0 #f)
                  (raise-syntax-error$1
                   #f
                   "submodule already declared with the same name"
                   s180_0
                   name_0)
                  (void))
                (begin
                  (hash-set!
                   declared-submodule-names169_0
                   name_0
                   (syntax-e$1 module680_0))
                  (begin
                    (let ((obs_0
                           (begin-unsafe
                            (expand-context/inner-observer
                             (root-expand-context/outer-inner ctx182_0)))))
                      (if obs_0
                        (call-expand-observe obs_0 'enter-prim s180_0)
                        (void)))
                    (let ((submod_0
                           (let ((temp689_0
                                  (if (expand-context/outer? ctx182_0)
                                    (let ((inner699_0
                                           (let ((the-struct_0
                                                  (root-expand-context/outer-inner
                                                   ctx182_0)))
                                             (if (expand-context/inner?
                                                  the-struct_0)
                                               (expand-context/inner2.1
                                                (root-expand-context/inner-self-mpi
                                                 the-struct_0)
                                                (root-expand-context/inner-module-scopes
                                                 the-struct_0)
                                                (root-expand-context/inner-top-level-bind-scope
                                                 the-struct_0)
                                                (root-expand-context/inner-all-scopes-stx
                                                 the-struct_0)
                                                (root-expand-context/inner-defined-syms
                                                 the-struct_0)
                                                (root-expand-context/inner-counter
                                                 the-struct_0)
                                                (root-expand-context/inner-lift-key
                                                 the-struct_0)
                                                (expand-context/inner-to-parsed?
                                                 the-struct_0)
                                                (expand-context/inner-phase
                                                 the-struct_0)
                                                (expand-context/inner-namespace
                                                 the-struct_0)
                                                (expand-context/inner-just-once?
                                                 the-struct_0)
                                                (expand-context/inner-module-begin-k
                                                 the-struct_0)
                                                (expand-context/inner-allow-unbound?
                                                 the-struct_0)
                                                (expand-context/inner-in-local-expand?
                                                 the-struct_0)
                                                (|expand-context/inner-keep-#%expression?|
                                                 the-struct_0)
                                                empty-free-id-set
                                                (expand-context/inner-declared-submodule-names
                                                 the-struct_0)
                                                (expand-context/inner-lifts
                                                 the-struct_0)
                                                (expand-context/inner-lift-envs
                                                 the-struct_0)
                                                (expand-context/inner-module-lifts
                                                 the-struct_0)
                                                (expand-context/inner-require-lifts
                                                 the-struct_0)
                                                (expand-context/inner-to-module-lifts
                                                 the-struct_0)
                                                (expand-context/inner-requires+provides
                                                 the-struct_0)
                                                (expand-context/inner-observer
                                                 the-struct_0)
                                                (expand-context/inner-for-serializable?
                                                 the-struct_0)
                                                (expand-context/inner-to-correlated-linklet?
                                                 the-struct_0)
                                                (expand-context/inner-normalize-locals?
                                                 the-struct_0)
                                                (expand-context/inner-parsing-expanded?
                                                 the-struct_0)
                                                (expand-context/inner-skip-visit-available?
                                                 the-struct_0))
                                               (raise-argument-error
                                                'struct-copy
                                                "expand-context/inner?"
                                                the-struct_0)))))
                                      (expand-context/outer1.1
                                       inner699_0
                                       #f
                                       (root-expand-context/outer-use-site-scopes
                                        ctx182_0)
                                       (root-expand-context/outer-frame-id
                                        ctx182_0)
                                       'module
                                       (expand-context/outer-env ctx182_0)
                                       (expand-context/outer-scopes ctx182_0)
                                       (expand-context/outer-def-ctx-scopes
                                        ctx182_0)
                                       (expand-context/outer-binding-layer
                                        ctx182_0)
                                       (expand-context/outer-reference-records
                                        ctx182_0)
                                       (expand-context/outer-only-immediate?
                                        ctx182_0)
                                       (expand-context/outer-need-eventually-defined
                                        ctx182_0)
                                       (expand-context/outer-current-introduction-scopes
                                        ctx182_0)
                                       (expand-context/outer-current-use-scopes
                                        ctx182_0)
                                       (expand-context/outer-name ctx182_0)))
                                    (raise-argument-error
                                     'struct-copy
                                     "expand-context/outer?"
                                     ctx182_0))))
                             (expand-module.1
                              #t
                              enclosing-is-cross-phase-persistent?167_0
                              enclosing-requires+provides166_0
                              keep-enclosing-scope-at-phase165_0
                              modules-being-compiled171_0
                              mpis-to-reset168_0
                              s180_0
                              temp689_0
                              self181_0))))
                      (begin
                        (let ((obs_0
                               (begin-unsafe
                                (expand-context/inner-observer
                                 (root-expand-context/outer-inner ctx182_0)))))
                          (if obs_0
                            (call-expand-observe
                             obs_0
                             'exit-prim
                             (extract-syntax submod_0))
                            (void)))
                        (let ((ns_0
                               (begin-unsafe
                                (expand-context/inner-namespace
                                 (root-expand-context/outer-inner ctx182_0)))))
                          (let ((module-name_0
                                 (1/module-path-index-resolve self181_0)))
                            (let ((root-module-name_0
                                   (resolved-module-path-root-name
                                    module-name_0)))
                              (let ((compiled-submodule_0
                                     (let ((temp701_0
                                            (if (expanded+parsed? submod_0)
                                              (expanded+parsed-parsed submod_0)
                                              submod_0)))
                                       (let ((temp702_0
                                              (let ((temp710_0
                                                     (1/resolved-module-path-name
                                                      module-name_0)))
                                                (make-compile-context.1
                                                 temp710_0
                                                 unsafe-undefined
                                                 self181_0
                                                 ns_0
                                                 unsafe-undefined
                                                 unsafe-undefined))))
                                         (let ((temp704_0
                                                (begin-unsafe
                                                 (expand-context/inner-for-serializable?
                                                  (root-expand-context/outer-inner
                                                   ctx182_0)))))
                                           (let ((temp705_0
                                                  (begin-unsafe
                                                   (expand-context/inner-to-correlated-linklet?
                                                    (root-expand-context/outer-inner
                                                     ctx182_0)))))
                                             (let ((temp704_1 temp704_0)
                                                   (temp702_1 temp702_0)
                                                   (temp701_1 temp701_0))
                                               (compile-module.1
                                                #t
                                                modules-being-compiled171_0
                                                #f
                                                temp704_1
                                                temp705_0
                                                temp701_1
                                                temp702_1))))))))
                                (begin
                                  (hash-set!
                                   compiled-submodules170_0
                                   name_0
                                   (cons is-star?164_0 compiled-submodule_0))
                                  (with-continuation-mark*
                                   push-authentic
                                   parameterization-key
                                   (let ((app_0
                                          (continuation-mark-set-first
                                           #f
                                           parameterization-key)))
                                     (extend-parameterization
                                      app_0
                                      1/current-namespace
                                      ns_0
                                      1/current-module-declare-name
                                      (1/make-resolved-module-path
                                       root-module-name_0)))
                                   (eval-module.1
                                    unsafe-undefined
                                    #f
                                    #f
                                    compiled-submodule_0))
                                  (if (not is-star?164_0)
                                    submod_0
                                    (if (expanded+parsed? submod_0)
                                      (if (expanded+parsed? submod_0)
                                        (let ((parsed713_0
                                               (let ((the-struct_0
                                                      (expanded+parsed-parsed
                                                       submod_0)))
                                                 (if (parsed-module?
                                                      the-struct_0)
                                                   (parsed-module25.1
                                                    (parsed-s the-struct_0)
                                                    #t
                                                    (parsed-module-name-id
                                                     the-struct_0)
                                                    (parsed-module-self
                                                     the-struct_0)
                                                    (parsed-module-requires
                                                     the-struct_0)
                                                    (parsed-module-recur-requires
                                                     the-struct_0)
                                                    (parsed-module-provides
                                                     the-struct_0)
                                                    (parsed-module-root-ctx-simple?
                                                     the-struct_0)
                                                    (parsed-module-encoded-root-ctx
                                                     the-struct_0)
                                                    (parsed-module-body
                                                     the-struct_0)
                                                    (parsed-module-realm
                                                     the-struct_0)
                                                    (parsed-module-portal-syntaxes
                                                     the-struct_0)
                                                    (parsed-module-compiled-module
                                                     the-struct_0)
                                                    (parsed-module-compiled-submodules
                                                     the-struct_0))
                                                   (raise-argument-error
                                                    'struct-copy
                                                    "parsed-module?"
                                                    the-struct_0)))))
                                          (expanded+parsed1.1
                                           (expanded+parsed-s submod_0)
                                           parsed713_0))
                                        (raise-argument-error
                                         'struct-copy
                                         "expanded+parsed?"
                                         submod_0))
                                      (if (parsed-module? submod_0)
                                        (parsed-module25.1
                                         (parsed-s submod_0)
                                         #t
                                         (parsed-module-name-id submod_0)
                                         (parsed-module-self submod_0)
                                         (parsed-module-requires submod_0)
                                         (parsed-module-recur-requires
                                          submod_0)
                                         (parsed-module-provides submod_0)
                                         (parsed-module-root-ctx-simple?
                                          submod_0)
                                         (parsed-module-encoded-root-ctx
                                          submod_0)
                                         (parsed-module-body submod_0)
                                         (parsed-module-realm submod_0)
                                         (parsed-module-portal-syntaxes
                                          submod_0)
                                         (parsed-module-compiled-module
                                          submod_0)
                                         (parsed-module-compiled-submodules
                                          submod_0))
                                        (raise-argument-error
                                         'struct-copy
                                         "parsed-module?"
                                         submod_0))))))))))))))))
           (args (raise-binding-result-arity-error 4 args)))))))))
(define expand-non-module*-submodules.1
  (|#%name|
   expand-non-module*-submodules
   (lambda (compiled-submodules186_0
            declared-submodule-names185_0
            modules-being-compiled187_0
            mpis-to-reset184_0
            bodys192_0
            phase193_0
            self194_0
            ctx195_0)
     (begin
       (reverse$1
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (fold-var_0 lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((body_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (let ((fold-var_1
                               (let ((fold-var_1
                                      (cons
                                       (begin
                                         (let ((obs_0
                                                (begin-unsafe
                                                 (expand-context/inner-observer
                                                  (root-expand-context/outer-inner
                                                   ctx195_0)))))
                                           (if obs_0
                                             (call-expand-observe obs_0 'next)
                                             (void)))
                                         (let ((tmp_0
                                                (core-form-sym
                                                 body_0
                                                 phase193_0)))
                                           (if (eq? tmp_0 'module)
                                             (expand-submodule.1
                                              compiled-submodules186_0
                                              declared-submodule-names185_0
                                              #f
                                              #f
                                              #f
                                              #f
                                              modules-being-compiled187_0
                                              mpis-to-reset184_0
                                              body_0
                                              self194_0
                                              ctx195_0)
                                             body_0)))
                                       fold-var_0)))
                                 (values fold-var_1))))
                          (for-loop_0 fold-var_1 rest_0))))
                    fold-var_0))))))
           (for-loop_0 null bodys192_0))))))))
(define make-parse-lifted-require.1
  (|#%name|
   make-parse-lifted-require
   (lambda (add-defined-portal198_0
            declared-submodule-names197_0
            m-ns201_0
            self202_0
            requires+provides203_0)
     (begin
       (lambda (s_0 phase_0)
         (call-with-values
          (lambda ()
            (call-with-values
             (lambda ()
               (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                 (if (pair? s_1)
                   (let ((|#%require726_0| (let ((s_2 (car s_1))) s_2)))
                     (let ((req727_0
                            (let ((s_2 (cdr s_1)))
                              (let ((s_3
                                     (if (syntax?$1 s_2)
                                       (syntax-e$1 s_2)
                                       s_2)))
                                (if (pair? s_3)
                                  (let ((req728_0 (let ((s_4 (car s_3))) s_4)))
                                    (call-with-values
                                     (lambda ()
                                       (let ((s_4 (cdr s_3)))
                                         (let ((s_5
                                                (if (syntax?$1 s_4)
                                                  (syntax-e$1 s_4)
                                                  s_4)))
                                           (if (null? s_5)
                                             (values)
                                             (raise-syntax-error$1
                                              #f
                                              "bad syntax"
                                              s_0)))))
                                     (case-lambda
                                      (()
                                       (let ((req728_1 req728_0))
                                         (values req728_1)))
                                      (args
                                       (raise-binding-result-arity-error
                                        0
                                        args)))))
                                  (raise-syntax-error$1
                                   #f
                                   "bad syntax"
                                   s_0))))))
                       (let ((|#%require726_1| |#%require726_0|))
                         (values |#%require726_1| req727_0))))
                   (raise-syntax-error$1 #f "bad syntax" s_0))))
             (case-lambda
              ((|#%require724_0| req725_0)
               (values #t |#%require724_0| req725_0))
              (args (raise-binding-result-arity-error 2 args)))))
          (case-lambda
           ((ok?_0 |#%require724_0| req725_0)
            (begin
              (let ((temp729_0 (list req725_0)))
                (parse-and-perform-requires!.1
                 add-defined-portal198_0
                 #f
                 #f
                 #f
                 declared-submodule-names197_0
                 #f
                 phase_0
                 #f
                 self202_0
                 #f
                 #t
                 'require
                 temp729_0
                 s_0
                 m-ns201_0
                 phase_0
                 requires+provides203_0))
              (set-requires+provides-all-bindings-simple?!
               requires+provides203_0
               #f)
              s_0))
           (args (raise-binding-result-arity-error 3 args)))))))))
(define defn-extract-syntax
  (lambda (defn_0)
    (let ((app_0
           (list
            'define-values
            (semi-parsed-define-values-ids defn_0)
            (semi-parsed-define-values-rhs defn_0))))
      (datum->syntax$1 #f app_0 (semi-parsed-define-values-s defn_0)))))
(define lifted-defns-extract-syntax
  (lambda (lifted-defns_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (pair? lst_0)
                 (let ((lifted-defn_0 (unsafe-car lst_0)))
                   (let ((rest_0 (unsafe-cdr lst_0)))
                     (let ((fold-var_1
                            (let ((fold-var_1
                                   (cons
                                    (defn-extract-syntax lifted-defn_0)
                                    fold-var_0)))
                              (values fold-var_1))))
                       (for-loop_0 fold-var_1 rest_0))))
                 fold-var_0))))))
        (for-loop_0 null lifted-defns_0))))))
(define maybe-install-portal-syntax!
  (lambda (val_0 sym_0 phase_0 portal-syntaxes_0)
    (if (1/portal-syntax? val_0)
      (add-portal-stx! portal-syntaxes_0 val_0 sym_0 phase_0)
      (void))))
(define add-portal-stx!
  (lambda (portal-syntaxes_0 val_0 sym_0 phase_0)
    (let ((ht_0 (hash-ref portal-syntaxes_0 phase_0 hash2610)))
      (hash-set!
       portal-syntaxes_0
       phase_0
       (hash-set ht_0 sym_0 (1/portal-syntax-content val_0))))))
(define make-add-defined-portal
  (lambda (self_0
           requires+provides_0
           portal-syntaxes_0
           defined-syms_0
           all-scopes-stx_0
           frame-id_0
           m-ns_0)
    (lambda (id_0 phase_0 portal-stx_0 orig-s_0)
      (begin
        (let ((temp739_0 (list id_0)))
          (check-ids-unbound.1 orig-s_0 temp739_0 phase_0 requires+provides_0))
        (let ((temp747_0 (list id_0)))
          (let ((syms_0
                 (select-defined-syms-and-bind!.1
                  #t
                  frame-id_0
                  orig-s_0
                  requires+provides_0
                  #f
                  temp747_0
                  defined-syms_0
                  self_0
                  phase_0
                  all-scopes-stx_0)))
            (begin
              (add-defined-syms!.1 #t requires+provides_0 syms_0 phase_0)
              (let ((sym_0 (car syms_0)))
                (let ((t_0 (portal-syntax1.1 portal-stx_0)))
                  (begin
                    (if phase_0
                      (namespace-set-transformer! m-ns_0 phase_0 sym_0 t_0)
                      (void))
                    (add-portal-stx! portal-syntaxes_0 t_0 sym_0 phase_0)
                    sym_0))))))))))
(define effect_3024
  (begin
    (void
     (add-core-form!*
      'define-values
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-define-values s_0)
              (void)))
          (begin
            (if (eq?
                 (begin-unsafe (expand-context/outer-context ctx_0))
                 'top-level)
              (void)
              (raise-syntax-error$1
               #f
               "not allowed in an expression position"
               s_0))
            (call-with-values
             (lambda ()
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (if (pair? s_1)
                      (let ((define-values4_0 (let ((s_2 (car s_1))) s_2)))
                        (call-with-values
                         (lambda ()
                           (let ((s_2 (cdr s_1)))
                             (let ((s_3
                                    (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                               (if (pair? s_3)
                                 (let ((id7_0
                                        (let ((s_4 (car s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (let ((flat-s_0
                                                   (to-syntax-list.1 s_5)))
                                              (if (not flat-s_0)
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0)
                                                (let ((id_0
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (id_0
                                                                      lst_0)
                                                               (begin
                                                                 (if (pair?
                                                                      lst_0)
                                                                   (let ((s_6
                                                                          (unsafe-car
                                                                           lst_0)))
                                                                     (let ((rest_0
                                                                            (unsafe-cdr
                                                                             lst_0)))
                                                                       (let ((id_1
                                                                              (let ((id_1
                                                                                     (let ((id10_0
                                                                                            (if (let ((or-part_0
                                                                                                       (if (syntax?$1
                                                                                                            s_6)
                                                                                                         (symbol?
                                                                                                          (syntax-e$1
                                                                                                           s_6))
                                                                                                         #f)))
                                                                                                  (if or-part_0
                                                                                                    or-part_0
                                                                                                    (symbol?
                                                                                                     s_6)))
                                                                                              s_6
                                                                                              (raise-syntax-error$1
                                                                                               #f
                                                                                               "not an identifier"
                                                                                               s_0
                                                                                               s_6))))
                                                                                       (cons
                                                                                        id10_0
                                                                                        id_0))))
                                                                                (values
                                                                                 id_1))))
                                                                         (for-loop_0
                                                                          id_1
                                                                          rest_0))))
                                                                   id_0))))))
                                                          (for-loop_0
                                                           null
                                                           flat-s_0)))))
                                                  (reverse$1 id_0))))))))
                                   (let ((rhs8_0
                                          (let ((s_4 (cdr s_3)))
                                            (let ((s_5
                                                   (if (syntax?$1 s_4)
                                                     (syntax-e$1 s_4)
                                                     s_4)))
                                              (if (pair? s_5)
                                                (let ((rhs9_0
                                                       (let ((s_6 (car s_5)))
                                                         s_6)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((s_6 (cdr s_5)))
                                                       (let ((s_7
                                                              (if (syntax?$1
                                                                   s_6)
                                                                (syntax-e$1
                                                                 s_6)
                                                                s_6)))
                                                         (if (null? s_7)
                                                           (values)
                                                           (raise-syntax-error$1
                                                            #f
                                                            "bad syntax"
                                                            s_0)))))
                                                   (case-lambda
                                                    (()
                                                     (let ((rhs9_1 rhs9_0))
                                                       (values rhs9_1)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      0
                                                      args)))))
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0))))))
                                     (let ((id7_1 id7_0))
                                       (values id7_1 rhs8_0))))
                                 (raise-syntax-error$1 #f "bad syntax" s_0)))))
                         (case-lambda
                          ((id5_0 rhs6_0)
                           (let ((define-values4_1 define-values4_0))
                             (values define-values4_1 id5_0 rhs6_0)))
                          (args (raise-binding-result-arity-error 2 args)))))
                      (raise-syntax-error$1 #f "bad syntax" s_0))))
                (case-lambda
                 ((define-values1_0 id2_0 rhs3_0)
                  (values #t define-values1_0 id2_0 rhs3_0))
                 (args (raise-binding-result-arity-error 3 args)))))
             (case-lambda
              ((ok?_0 define-values1_0 id2_0 rhs3_0)
               (call-with-values
                (lambda () (as-expand-time-top-level-bindings id2_0 s_0 ctx_0))
                (case-lambda
                 ((ids_0 syms_0)
                  (let ((exp-rhs_0
                         (let ((temp12_0
                                (as-named-context
                                 (as-expression-context ctx_0)
                                 ids_0)))
                           (expand.1 #f #f rhs3_0 temp12_0))))
                    (if (begin-unsafe
                         (expand-context/inner-to-parsed?
                          (root-expand-context/outer-inner ctx_0)))
                      (parsed-define-values19.1 s_0 ids_0 syms_0 exp-rhs_0)
                      (let ((temp14_0 (list define-values1_0 ids_0 exp-rhs_0)))
                        (rebuild.1 #t s_0 temp14_0)))))
                 (args (raise-binding-result-arity-error 2 args)))))
              (args (raise-binding-result-arity-error 4 args)))))))))
    (void)))
(define effect_2886
  (begin
    (void
     (add-core-form!*
      'define-syntaxes
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-define-syntaxes s_0)
              (void)))
          (begin
            (if (eq?
                 (begin-unsafe (expand-context/outer-context ctx_0))
                 'top-level)
              (void)
              (raise-syntax-error$1 #f "not in a definition context" s_0))
            (call-with-values
             (lambda ()
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (if (pair? s_1)
                      (let ((define-syntaxes18_0 (let ((s_2 (car s_1))) s_2)))
                        (call-with-values
                         (lambda ()
                           (let ((s_2 (cdr s_1)))
                             (let ((s_3
                                    (if (syntax?$1 s_2) (syntax-e$1 s_2) s_2)))
                               (if (pair? s_3)
                                 (let ((id21_0
                                        (let ((s_4 (car s_3)))
                                          (let ((s_5
                                                 (if (syntax?$1 s_4)
                                                   (syntax-e$1 s_4)
                                                   s_4)))
                                            (let ((flat-s_0
                                                   (to-syntax-list.1 s_5)))
                                              (if (not flat-s_0)
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0)
                                                (let ((id_0
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (id_0
                                                                      lst_0)
                                                               (begin
                                                                 (if (pair?
                                                                      lst_0)
                                                                   (let ((s_6
                                                                          (unsafe-car
                                                                           lst_0)))
                                                                     (let ((rest_0
                                                                            (unsafe-cdr
                                                                             lst_0)))
                                                                       (let ((id_1
                                                                              (let ((id_1
                                                                                     (let ((id24_0
                                                                                            (if (let ((or-part_0
                                                                                                       (if (syntax?$1
                                                                                                            s_6)
                                                                                                         (symbol?
                                                                                                          (syntax-e$1
                                                                                                           s_6))
                                                                                                         #f)))
                                                                                                  (if or-part_0
                                                                                                    or-part_0
                                                                                                    (symbol?
                                                                                                     s_6)))
                                                                                              s_6
                                                                                              (raise-syntax-error$1
                                                                                               #f
                                                                                               "not an identifier"
                                                                                               s_0
                                                                                               s_6))))
                                                                                       (cons
                                                                                        id24_0
                                                                                        id_0))))
                                                                                (values
                                                                                 id_1))))
                                                                         (for-loop_0
                                                                          id_1
                                                                          rest_0))))
                                                                   id_0))))))
                                                          (for-loop_0
                                                           null
                                                           flat-s_0)))))
                                                  (reverse$1 id_0))))))))
                                   (let ((rhs22_0
                                          (let ((s_4 (cdr s_3)))
                                            (let ((s_5
                                                   (if (syntax?$1 s_4)
                                                     (syntax-e$1 s_4)
                                                     s_4)))
                                              (if (pair? s_5)
                                                (let ((rhs23_0
                                                       (let ((s_6 (car s_5)))
                                                         s_6)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((s_6 (cdr s_5)))
                                                       (let ((s_7
                                                              (if (syntax?$1
                                                                   s_6)
                                                                (syntax-e$1
                                                                 s_6)
                                                                s_6)))
                                                         (if (null? s_7)
                                                           (values)
                                                           (raise-syntax-error$1
                                                            #f
                                                            "bad syntax"
                                                            s_0)))))
                                                   (case-lambda
                                                    (()
                                                     (let ((rhs23_1 rhs23_0))
                                                       (values rhs23_1)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      0
                                                      args)))))
                                                (raise-syntax-error$1
                                                 #f
                                                 "bad syntax"
                                                 s_0))))))
                                     (let ((id21_1 id21_0))
                                       (values id21_1 rhs22_0))))
                                 (raise-syntax-error$1 #f "bad syntax" s_0)))))
                         (case-lambda
                          ((id19_0 rhs20_0)
                           (let ((define-syntaxes18_1 define-syntaxes18_0))
                             (values define-syntaxes18_1 id19_0 rhs20_0)))
                          (args (raise-binding-result-arity-error 2 args)))))
                      (raise-syntax-error$1 #f "bad syntax" s_0))))
                (case-lambda
                 ((define-syntaxes15_0 id16_0 rhs17_0)
                  (values #t define-syntaxes15_0 id16_0 rhs17_0))
                 (args (raise-binding-result-arity-error 3 args)))))
             (case-lambda
              ((ok?_0 define-syntaxes15_0 id16_0 rhs17_0)
               (call-with-values
                (lambda ()
                  (as-expand-time-top-level-bindings id16_0 s_0 ctx_0))
                (case-lambda
                 ((ids_0 syms_0)
                  (begin
                    (let ((obs_0
                           (begin-unsafe
                            (expand-context/inner-observer
                             (root-expand-context/outer-inner ctx_0)))))
                      (if obs_0
                        (call-expand-observe obs_0 'prepare-env)
                        (void)))
                    (let ((exp-rhs_0
                           (let ((temp26_0 (as-named-context ctx_0 ids_0)))
                             (expand-transformer.1
                              #f
                              #f
                              'expression
                              #t
                              #f
                              unsafe-undefined
                              rhs17_0
                              temp26_0))))
                      (if (begin-unsafe
                           (expand-context/inner-to-parsed?
                            (root-expand-context/outer-inner ctx_0)))
                        (parsed-define-syntaxes20.1 s_0 ids_0 syms_0 exp-rhs_0)
                        (let ((temp28_0
                               (list define-syntaxes15_0 ids_0 exp-rhs_0)))
                          (rebuild.1 #t s_0 temp28_0))))))
                 (args (raise-binding-result-arity-error 2 args)))))
              (args (raise-binding-result-arity-error 4 args)))))))))
    (void)))
(define effect_2355
  (begin
    (void
     (add-core-form!*
      'begin-for-syntax
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0
              (call-expand-observe obs_0 'prim-begin-for-syntax #f)
              (void)))
          (begin
            (if (eq?
                 (begin-unsafe (expand-context/outer-context ctx_0))
                 'top-level)
              (void)
              (raise-syntax-error$1 #f "not in a definition context" s_0))
            (call-with-values
             (lambda ()
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (if (pair? s_1)
                      (let ((begin-for-syntax31_0 (let ((s_2 (car s_1))) s_2)))
                        (let ((form32_0
                               (let ((s_2 (cdr s_1)))
                                 (let ((s_3
                                        (if (syntax?$1 s_2)
                                          (syntax-e$1 s_2)
                                          s_2)))
                                   (let ((flat-s_0 (to-syntax-list.1 s_3)))
                                     (if (not flat-s_0)
                                       (raise-syntax-error$1
                                        #f
                                        "bad syntax"
                                        s_0)
                                       flat-s_0))))))
                          (let ((begin-for-syntax31_1 begin-for-syntax31_0))
                            (values begin-for-syntax31_1 form32_0))))
                      (raise-syntax-error$1 #f "bad syntax" s_0))))
                (case-lambda
                 ((begin-for-syntax29_0 form30_0)
                  (values #t begin-for-syntax29_0 form30_0))
                 (args (raise-binding-result-arity-error 2 args)))))
             (case-lambda
              ((ok?_0 begin-for-syntax29_0 form30_0)
               (begin
                 (let ((obs_0
                        (begin-unsafe
                         (expand-context/inner-observer
                          (root-expand-context/outer-inner ctx_0)))))
                   (if obs_0 (call-expand-observe obs_0 'prepare-env) (void)))
                 (let ((trans-ctx_0
                        (context->transformer-context.1 #t ctx_0 'top-level)))
                   (let ((lift-ctx_0
                          (let ((temp36_0 (make-top-level-lift trans-ctx_0)))
                            (make-lift-context.1 #f temp36_0))))
                     (let ((capture-ctx_0
                            (if (expand-context/outer? trans-ctx_0)
                              (let ((inner37_0
                                     (let ((the-struct_0
                                            (root-expand-context/outer-inner
                                             trans-ctx_0)))
                                       (if (expand-context/inner? the-struct_0)
                                         (let ((lift-key38_0
                                                (generate-lift-key)))
                                           (expand-context/inner2.1
                                            (root-expand-context/inner-self-mpi
                                             the-struct_0)
                                            (root-expand-context/inner-module-scopes
                                             the-struct_0)
                                            (root-expand-context/inner-top-level-bind-scope
                                             the-struct_0)
                                            (root-expand-context/inner-all-scopes-stx
                                             the-struct_0)
                                            (root-expand-context/inner-defined-syms
                                             the-struct_0)
                                            (root-expand-context/inner-counter
                                             the-struct_0)
                                            lift-key38_0
                                            (expand-context/inner-to-parsed?
                                             the-struct_0)
                                            (expand-context/inner-phase
                                             the-struct_0)
                                            (expand-context/inner-namespace
                                             the-struct_0)
                                            (expand-context/inner-just-once?
                                             the-struct_0)
                                            (expand-context/inner-module-begin-k
                                             the-struct_0)
                                            (expand-context/inner-allow-unbound?
                                             the-struct_0)
                                            (expand-context/inner-in-local-expand?
                                             the-struct_0)
                                            (|expand-context/inner-keep-#%expression?|
                                             the-struct_0)
                                            (expand-context/inner-stops
                                             the-struct_0)
                                            (expand-context/inner-declared-submodule-names
                                             the-struct_0)
                                            lift-ctx_0
                                            (expand-context/inner-lift-envs
                                             the-struct_0)
                                            (expand-context/inner-module-lifts
                                             the-struct_0)
                                            (expand-context/inner-require-lifts
                                             the-struct_0)
                                            (expand-context/inner-to-module-lifts
                                             the-struct_0)
                                            (expand-context/inner-requires+provides
                                             the-struct_0)
                                            (expand-context/inner-observer
                                             the-struct_0)
                                            (expand-context/inner-for-serializable?
                                             the-struct_0)
                                            (expand-context/inner-to-correlated-linklet?
                                             the-struct_0)
                                            (expand-context/inner-normalize-locals?
                                             the-struct_0)
                                            (expand-context/inner-parsing-expanded?
                                             the-struct_0)
                                            (expand-context/inner-skip-visit-available?
                                             the-struct_0)))
                                         (raise-argument-error
                                          'struct-copy
                                          "expand-context/inner?"
                                          the-struct_0)))))
                                (expand-context/outer1.1
                                 inner37_0
                                 (root-expand-context/outer-post-expansion
                                  trans-ctx_0)
                                 (root-expand-context/outer-use-site-scopes
                                  trans-ctx_0)
                                 (root-expand-context/outer-frame-id
                                  trans-ctx_0)
                                 (expand-context/outer-context trans-ctx_0)
                                 (expand-context/outer-env trans-ctx_0)
                                 (expand-context/outer-scopes trans-ctx_0)
                                 (expand-context/outer-def-ctx-scopes
                                  trans-ctx_0)
                                 (expand-context/outer-binding-layer
                                  trans-ctx_0)
                                 (expand-context/outer-reference-records
                                  trans-ctx_0)
                                 (expand-context/outer-only-immediate?
                                  trans-ctx_0)
                                 (expand-context/outer-need-eventually-defined
                                  trans-ctx_0)
                                 (expand-context/outer-current-introduction-scopes
                                  trans-ctx_0)
                                 (expand-context/outer-current-use-scopes
                                  trans-ctx_0)
                                 (expand-context/outer-name trans-ctx_0)))
                              (raise-argument-error
                               'struct-copy
                               "expand-context/outer?"
                               trans-ctx_0))))
                       (let ((all-exp-forms_0
                              (letrec*
                               ((loop_0
                                 (|#%name|
                                  loop
                                  (lambda (forms_0)
                                    (begin
                                      (begin
                                        (let ((obs_0
                                               (begin-unsafe
                                                (expand-context/inner-observer
                                                 (root-expand-context/outer-inner
                                                  ctx_0)))))
                                          (if obs_0
                                            (call-expand-observe
                                             obs_0
                                             'enter-list
                                             form30_0)
                                            (void)))
                                        (let ((exp-forms_0
                                               (letrec*
                                                ((loop_1
                                                  (|#%name|
                                                   loop
                                                   (lambda (forms_1 accum_0)
                                                     (begin
                                                       (if (null? forms_1)
                                                         (let ((forms_2
                                                                (reverse$1
                                                                 accum_0)))
                                                           (begin
                                                             (let ((obs_0
                                                                    (begin-unsafe
                                                                     (expand-context/inner-observer
                                                                      (root-expand-context/outer-inner
                                                                       ctx_0)))))
                                                               (if obs_0
                                                                 (call-expand-observe
                                                                  obs_0
                                                                  'exit-list
                                                                  forms_2)
                                                                 (void)))
                                                             forms_2))
                                                         (begin
                                                           (let ((obs_0
                                                                  (begin-unsafe
                                                                   (expand-context/inner-observer
                                                                    (root-expand-context/outer-inner
                                                                     ctx_0)))))
                                                             (if obs_0
                                                               (call-expand-observe
                                                                obs_0
                                                                'next)
                                                               (void)))
                                                           (let ((exp-form_0
                                                                  (let ((temp40_0
                                                                         (car
                                                                          forms_1)))
                                                                    (expand.1
                                                                     #f
                                                                     #f
                                                                     temp40_0
                                                                     capture-ctx_0))))
                                                             (let ((app_0
                                                                    (cdr
                                                                     forms_1)))
                                                               (loop_1
                                                                app_0
                                                                (cons
                                                                 exp-form_0
                                                                 accum_0)))))))))))
                                                (loop_1 forms_0 null))))
                                          (let ((lifts_0
                                                 (begin-unsafe
                                                  (box-clear!
                                                   (lift-context-lifts
                                                    lift-ctx_0)))))
                                            (if (null? lifts_0)
                                              exp-forms_0
                                              (begin
                                                (let ((obs_0
                                                       (begin-unsafe
                                                        (expand-context/inner-observer
                                                         (root-expand-context/outer-inner
                                                          ctx_0)))))
                                                  (if obs_0
                                                    (call-expand-observe
                                                     obs_0
                                                     'module-lift-loop
                                                     lifts_0)
                                                    (void)))
                                                (let ((beg_0
                                                       (let ((temp44_0
                                                              (begin-unsafe
                                                               (expand-context/inner-phase
                                                                (root-expand-context/outer-inner
                                                                 trans-ctx_0)))))
                                                         (wrap-lifts-as-begin.1
                                                          unsafe-undefined
                                                          unsafe-undefined
                                                          lifts_0
                                                          #f
                                                          temp44_0))))
                                                  (let ((exprs_0
                                                         (reverse$1
                                                          (cdr
                                                           (reverse$1
                                                            (cdr
                                                             (syntax-e$1
                                                              beg_0)))))))
                                                    (append
                                                     (loop_0 exprs_0)
                                                     exp-forms_0)))))))))))))
                               (loop_0 form30_0))))
                         (if (begin-unsafe
                              (expand-context/inner-to-parsed?
                               (root-expand-context/outer-inner ctx_0)))
                           (parsed-begin-for-syntax21.1 s_0 all-exp-forms_0)
                           (let ((temp46_0
                                  (cons begin-for-syntax29_0 all-exp-forms_0)))
                             (rebuild.1 #t s_0 temp46_0)))))))))
              (args (raise-binding-result-arity-error 3 args)))))))))
    (void)))
(define effect_1833
  (begin
    (void
     (add-core-form!*
      '|#%require|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-require s_0) (void)))
          (begin
            (if (eq?
                 (begin-unsafe (expand-context/outer-context ctx_0))
                 'top-level)
              (void)
              (raise-syntax-error$1
               #f
               "allowed only in a module or the top level"
               s_0))
            (call-with-values
             (lambda ()
               (call-with-values
                (lambda ()
                  (let ((s_1 (if (syntax?$1 s_0) (syntax-e$1 s_0) s_0)))
                    (if (pair? s_1)
                      (let ((|#%require49_0| (let ((s_2 (car s_1))) s_2)))
                        (let ((req50_0
                               (let ((s_2 (cdr s_1)))
                                 (let ((s_3
                                        (if (syntax?$1 s_2)
                                          (syntax-e$1 s_2)
                                          s_2)))
                                   (let ((flat-s_0 (to-syntax-list.1 s_3)))
                                     (if (not flat-s_0)
                                       (raise-syntax-error$1
                                        #f
                                        "bad syntax"
                                        s_0)
                                       flat-s_0))))))
                          (let ((|#%require49_1| |#%require49_0|))
                            (values |#%require49_1| req50_0))))
                      (raise-syntax-error$1 #f "bad syntax" s_0))))
                (case-lambda
                 ((|#%require47_0| req48_0)
                  (values #t |#%require47_0| req48_0))
                 (args (raise-binding-result-arity-error 2 args)))))
             (case-lambda
              ((ok?_0 |#%require47_0| req48_0)
               (let ((sc_0 (new-scope 'macro)))
                 (let ((ns_0
                        (begin-unsafe
                         (expand-context/inner-namespace
                          (root-expand-context/outer-inner ctx_0)))))
                   (let ((generated-syms_0 (box null)))
                     (begin
                       (let ((temp51_0
                              (reverse$1
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_0)
                                       (begin
                                         (if (pair? lst_0)
                                           (let ((req_0 (unsafe-car lst_0)))
                                             (let ((rest_0 (unsafe-cdr lst_0)))
                                               (let ((fold-var_1
                                                      (let ((fold-var_1
                                                             (cons
                                                              (add-scope
                                                               req_0
                                                               sc_0)
                                                              fold-var_0)))
                                                        (values fold-var_1))))
                                                 (for-loop_0
                                                  fold-var_1
                                                  rest_0))))
                                           fold-var_0))))))
                                  (for-loop_0 null req48_0))))))
                         (let ((temp53_0
                                (namespace-self-mpi/no-top-level ns_0)))
                           (let ((temp56_0
                                  (begin-unsafe
                                   (expand-context/inner-phase
                                    (root-expand-context/outer-inner ctx_0)))))
                             (let ((temp57_0
                                    (make-requires+provides.1
                                     #f
                                     unsafe-undefined
                                     #f)))
                               (let ((temp60_0
                                      (make-top-add-defined-portal
                                       ns_0
                                       ctx_0
                                       generated-syms_0)))
                                 (let ((temp57_1 temp57_0)
                                       (temp56_1 temp56_0)
                                       (temp53_1 temp53_0)
                                       (temp51_1 temp51_0))
                                   (parse-and-perform-requires!.1
                                    temp60_0
                                    #f
                                    #f
                                    #f
                                    hash2610
                                    #t
                                    unsafe-undefined
                                    #f
                                    temp53_1
                                    #f
                                    #f
                                    'require
                                    temp51_1
                                    s_0
                                    ns_0
                                    temp56_1
                                    temp57_1)))))))
                       (if (begin-unsafe
                            (expand-context/inner-to-parsed?
                             (root-expand-context/outer-inner ctx_0)))
                         (parsed-require23.1
                          s_0
                          (reverse$1 (unbox generated-syms_0)))
                         s_0))))))
              (args (raise-binding-result-arity-error 3 args)))))))))
    (void)))
(define effect_2881
  (begin
    (void
     (add-core-form!*
      '|#%provide|
      (lambda (s_0 ctx_0)
        (begin
          (let ((obs_0
                 (begin-unsafe
                  (expand-context/inner-observer
                   (root-expand-context/outer-inner ctx_0)))))
            (if obs_0 (call-expand-observe obs_0 'prim-provide #f) (void)))
          (raise-syntax-error$1
           #f
           "not allowed outside of a module body"
           s_0)))))
    (void)))
(define namespace-init!
  (lambda ()
    (let ((ns_0 (make-namespace)))
      (void
       (begin
         (declare-core-module! ns_0)
         (declare-hash-based-module!.1
          ns_0
          #f
          null
          #f
          #f
          '|#%read|
          read-primitives)
         (let ((temp7_0 '(current-compile)))
           (declare-hash-based-module!.1
            ns_0
            #f
            temp7_0
            #f
            #f
            '|#%main|
            main-primitives))
         (declare-hash-based-module!.1
          ns_0
          #f
          null
          #f
          #f
          '|#%utils|
          utils-primitives)
         (let ((temp14_0 '(dynamic-place)))
           (declare-hash-based-module!.1
            ns_0
            #f
            temp14_0
            #f
            #f
            '|#%place-struct|
            place-struct-primitives))
         (declare-hash-based-module!.1
          ns_0
          #f
          null
          #f
          #f
          '|#%boot|
          boot-primitives)
         (let ((linklet-primitives_0
                (hash-remove
                 (hash-remove linklet-primitives 'variable-reference?)
                 'variable-reference-constant?)))
           (begin
             (declare-hash-based-module!.1
              ns_0
              #t
              null
              #t
              #t
              '|#%linklet-primitive|
              linklet-primitives_0)
             (declare-hash-based-module!.1
              ns_0
              #f
              null
              #t
              #t
              '|#%linklet-expander|
              linklet-expander-primitives)
             (let ((temp30_0
                    (list '|#%linklet-primitive| '|#%linklet-expander|)))
               (declare-reexporting-module!.1 ns_0 #t '|#%linklet| temp30_0))))
         (declare-hash-based-module!.1
          ns_0
          #f
          null
          #t
          #f
          '|#%expobs|
          expobs-primitives)
         (let ((temp37_0
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (table_0 i_0)
                        (begin
                          (if i_0
                            (let ((name_0
                                   (hash-iterate-key main-primitives i_0)))
                              (let ((table_1
                                     (let ((table_1
                                            (call-with-values
                                             (lambda () (values name_0 #t))
                                             (case-lambda
                                              ((key_0 val_0)
                                               (hash-set table_0 key_0 val_0))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))))
                                       (values table_1))))
                                (for-loop_0
                                 table_1
                                 (hash-iterate-next main-primitives i_0))))
                            table_0))))))
                   (for-loop_0
                    hash2725
                    (hash-iterate-first main-primitives))))))
           (let ((temp38_0
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (table_0 i_0)
                          (begin
                            (if i_0
                              (let ((name_0
                                     (hash-iterate-key read-primitives i_0)))
                                (let ((table_1
                                       (let ((table_1
                                              (call-with-values
                                               (lambda () (values name_0 #t))
                                               (case-lambda
                                                ((key_0 val_0)
                                                 (hash-set
                                                  table_0
                                                  key_0
                                                  val_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))
                                         (values table_1))))
                                  (for-loop_0
                                   table_1
                                   (hash-iterate-next read-primitives i_0))))
                              table_0))))))
                     (for-loop_0
                      hash2725
                      (hash-iterate-first read-primitives))))))
             (let ((temp37_1 temp37_0))
               (declare-kernel-module!.1 temp37_1 temp38_0 ns_0))))
         (begin
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (lst_0)
                   (begin
                     (if (pair? lst_0)
                       (let ((name_0 (unsafe-car lst_0)))
                         (let ((rest_0 (unsafe-cdr lst_0)))
                           (call-with-values
                            (lambda ()
                              (if (eq? name_0 '|#%kernel|)
                                (values)
                                (begin
                                  (let ((or-part_0 (eq? name_0 '|#%foreign|)))
                                    (let ((temp41_0
                                           (if or-part_0
                                             or-part_0
                                             (let ((or-part_1
                                                    (eq? name_0 '|#%futures|)))
                                               (if or-part_1
                                                 or-part_1
                                                 (let ((or-part_2
                                                        (eq?
                                                         name_0
                                                         '|#%unsafe|)))
                                                   (if or-part_2
                                                     or-part_2
                                                     (eq?
                                                      name_0
                                                      '|#%terminal|))))))))
                                      (copy-runtime-module!.1
                                       hash2610
                                       hash2610
                                       ns_0
                                       #t
                                       temp41_0
                                       unsafe-undefined
                                       unsafe-undefined
                                       name_0)))
                                  (values))))
                            (case-lambda
                             (() (for-loop_0 rest_0))
                             (args
                              (raise-binding-result-arity-error 0 args))))))
                       (values)))))))
              (for-loop_0 runtime-instances)))
           (void))
         (let ((temp43_0
                (list*
                 '|#%place-struct|
                 '|#%utils|
                 '|#%boot|
                 '|#%expobs|
                 '|#%linklet|
                 runtime-instances)))
           (declare-reexporting-module!.1 ns_0 #f '|#%builtin| temp43_0))
         (1/current-namespace ns_0)
         (1/dynamic-require ''|#%kernel| 0))))))
(define effect_2375
  (begin
    (|#%call-with-values| (lambda () (namespace-init!)) print-values)
    (void)))
(define effect_2254
  (begin
    (|#%call-with-values|
     (lambda () (install-error-syntax->string-handler!))
     print-values)
    (void)))
(define effect_2602
  (begin
    (|#%call-with-values|
     (lambda ()
       (let ((proc_0
              (lambda (mpi_0 ns_0)
                (let ((config-m_0
                       (1/module-path-index-join
                        '(submod "." configure-expand)
                        mpi_0)))
                  (if (1/module-declared? config-m_0 #t)
                    (with-continuation-mark*
                     authentic
                     parameterization-key
                     (extend-parameterization
                      (continuation-mark-set-first #f parameterization-key)
                      1/current-namespace
                      ns_0)
                     (let ((enter_0
                            (1/dynamic-require
                             config-m_0
                             'enter-parameterization)))
                       (let ((exit_0
                              (1/dynamic-require
                               config-m_0
                               'exit-parameterization)))
                         (let ((enter_1 enter_0))
                           (begin
                             (if (if (procedure? enter_1)
                                   (procedure-arity-includes? enter_1 0)
                                   #f)
                               (void)
                               (raise-result-error
                                'configure-expand
                                "(procedure-arity-includes/c 0)"
                                enter_1))
                             (if (if (procedure? enter_1)
                                   (procedure-arity-includes? exit_0 0)
                                   #f)
                               (void)
                               (raise-result-error
                                'configure-expand
                                "(procedure-arity-includes/c 0)"
                                exit_0))
                             (values enter_1 exit_0))))))
                    (values
                     current-parameterization
                     current-parameterization))))))
         (begin-unsafe (set! load-configure-expand proc_0))))
     print-values)
    (void)))
(define datum->kernel-syntax (lambda (s_0) (1/datum->syntax core-stx s_0)))
(define expander-place-init!
  (lambda ()
    (begin
      (syntax-place-init!)
      (scope-place-init!)
      (cache-place-init!)
      (core-place-init!)
      (phase+space-place-init!)
      (module-path-place-init!)
      (module-cache-place-init!)
      (shadow-directory-place-init!)
      (collection-place-init!)
      (performance-place-init!)
      (namespace-init!)
      (install-error-syntax->string-handler!))))
